#include
#define uint unsigned int
#define uchar unsigned char
sfr P1ASF=0x9d;
sfr ADC_RES=0xbd;
sfr ADC_CONTR=0xbc;
#define ADC_POWER 0x80
#define ADC_FLAG 0x10
#define ADC_START 0x08
#define ADC_SPEEDLL 0x00 //0000 0000
#define ADC_SPEEDL 0x20//0010 0000
#define ADC_SPEEDH 0x40//0100 0000
#define ADC_SPEEDHH 0x60 //0110 0000
void delay(uint z); ///延迟函数
void initADC(); //初始化AD功能
uint code Ttable[42][2]={// 该数组保存了热敏电阻的温度值(2-43摄氏度)℃对应25.7K;超出无效
{2,257},{3,246},{4,236},{5,225},{6,216},
{7,207},{8,198},{9,190},{10,182},{11,174},
{12,167},{13,160},{14,154},{15,148},{16,142},
{17,136},{18,131},{19,126},{20,121},{21,116},
{22,112},{23,107},{24,103},{25,100},{26,96},
{27,92},{28,89},{29,86},{30,82},{31,80},{32,77},
{33,74},{34,71},{35,69},{36,66},{37,64},{38,62},
{39,60},{40,58},{41,56},{42,54}
};
uchar code table[13]={//共阴 数码管数字0-9
0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D,0x7D, 0x07, 0x7F, 0x6F/*0-9*/,
0x00/*无*/, 0x02/*|*/, 0x39/*C*/,};
uchar code table_wela [4]=数码管位置0-3
0xef,0xdf,0xbf,0x7f};//1110 1111; 1101 1111; 1011 1111; 0111 1111
ucharshow[4];
void delay(uint z)
{
uint x,y;
for(x=20;x>0;x--)
for(y=z;y>0;y--);
}
/****************************************************
函数名称 : void adc_isr() interrupt 5
功能描述 : AD 中断 , 获取 AD 数据
输 入 : 无
输 出 : show
全局变量 : show
调用模块 : delay **************************/
void Adc_isr() interrupt 5//Interrupt Service Routines=ISR中断服务程序
{
uchar i;
uint m;
m=ADC_RES; // 计算此时热敏电阻阻值
m=(100*m)/(255-m); // 计算此时的温度值
for(i=41;i<42;i--)
{
if(m>=Ttable[i][1]&&m
{
show[0]=(Ttable[i][0] 1)/10; //十位
show[1]=(Ttable[i][0] 1); //个位
show[2]=11; ///温度符号
show[3]=12;
break;
}
}
ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|0x01; // 重新 使能 AD 转换
}
/******************************************************
函数名称 : void initADC()
功能描述 : 初始化 AD 功能
输 入 : 无
输 出 : 无
全局变量 : 无
调用模块 : delay *********************************************************/
void initADC()
{
P1ASF=0xff;
ADC_RES=0;
delay(800);
ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|0x01;// 使能 P11 为 AD 输入
IE=0xa0;//1010 0000等价于: EA=1; EADC=1;
delay(5);
}
void main()
{
……………………
…………限于本文篇幅 请从51黑下载剩余代码…………