资源描述:
《基于51单片机的Pt100的温度计程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#defineucharunsignedchar#defineuintunsignedint#defineADC0801XBYTE[0x7fff]#definedisp_datP1#defineLED_nP2sbitINTR=P3^2;constuchartab[]={0xc0,0xf9,0xa4,0xb0,//0~30x99,0x92,0x82,0xf8,//4~70x80,0x90,0xff,0x86//8、9、mie};constuchartab_dot[]={0x40,0x79,0x24
2、,0x30,//0.~3.0x19,0x12,0x02,0x78,//4.~7.0x00,0x10,0xff,0x86//8.、9.、mie、E};ucharT[4]={1,0,4,5};uchartem[11]={10,10,20,13,11,11,15,21,18,29,11};ucharT_num=20,sam_n=0;/************************函数声明***********************/voiddelay(intn);//延时函数voidinit_T0(void);//定时器T0初始化voiddisp_seg(uchar
3、n,uchard_dat);//显示函数ucharAD_dat(void);//AD转换函数ucharmedian(uchar*dat,ucharnum_d);//中值滤波函数floataccount_res(void);//电阻值计算函数floattemperature(void);//计算温度函数voidadj_t(void);//调整显示数据函数voiddisp(void);//温度显示程序voidrenovate(void);//更新显示数据/*********************主程序*********************/main(){init
4、_T0();//初始化T0while(1){disp();//调用显示函数renovate();//更新显示数据};}/*****************温度显示函数*****************/voiddisp(void){uchari;for(i=0;i<4;i++){disp_seg(i,T[i]);}}/***、、、、、、、、************更新显示数据函数*******、、、、、、、、、、、、、、、、。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。******
5、**/voidrenovate(void){if(sam_n==11)//去完11个采样值{sam_n=0;//清零采样计数器adj_t();//调用数据调整程序}}/******************延时函数********************/voiddelay(intn){inti,j;for(i=0;i6、0x00;ET0=1;//允许定时器T0中断EA=1;//开总中断TR0=1;//启动定时器T0}/*******************显示函数*******************/voiddisp_seg(ucharn,uchard_dat){LED_n=0xff;//清位控制状态disp_dat=0xff;//清显示数据LED_n=~(0x01<7、**************AD转换函数*********************/ucharAD_dat(void){uchartemp;ADC0801=0;//启动AD转换while(INTR);//等待转换结束temp=ADC0801;//读取转换值return(temp);}/*******************中值滤波函数*********************/ucharmedian(uchar*dat,ucharnum_d)//需要排序的数组{uchari,j,temp;for(i=0;i8、r(j=0