资源描述:
《电烤箱温度控制系统程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、电烤箱温度控制系统程序52070329徐高飞头文件adc0809.h:ADC0809应用程序#include#include#include#defineucharunsignedchar#defineuintunsignedintsbitadwr=P3^6;sbitadrd=P3^7;ucharadval[10];//取十次温度值uintadval_sum;//十次温度值之和floatadval_aver,voltage,temp;//延时子函数延
2、时Zmsa=d;voiddelayms(uintz)c=a<<5;{c&=0x40;//c:0D6000000uintx,y;b
3、=c;//b:D7D6000000for(x=z;x>0;x--)a=d;for(y=110;y>0;y--);c=a<<3;}c&=0x20;b
4、=c;//b:D7D6D500000//加和函数对十次温度值求和a=d;uintadd(uchara[10])c=a<<1;{c&=0x10;uchari=0;b
5、=c;//b:D7D6D5D40000uintsum=0;a=d;f
6、or(i=0;i<10;i++)c=a>>1;sum=sum+a[i];c&=0x08;returnsum;b
7、=c;//b:D7D6D5D4D3000}a=d;c=a>>3;//字节转换函数c&=0x04;/*将从P0口读到的数据a:D0D1D2D3D4D5D6D7b
8、=c;//b:D7D6D5D4D3D200调整为b:D7D6D5D4D3D2D1D0*/a=d;ucharexchange(uchara)c=a>>5;{c&=0x02;ucharb,c,d;b
9、=c;//b:D7D6D5D4D3D2D1
10、0d=a;a=d;b=0x00;c=a>>7;a=d;c&=0x01;c=a<<7;b
11、=c;//b:D7D6D5D4D3D2D1D0c&=0x80;//c:D70000000returnb;b
12、=c;//b:D70000000}1/7电烤箱温度控制系统程序52070329徐高飞//ADC0809转换函数floatmeasure_temp(){uchari,j;for(j=0;j<10;j++){P2=0xd0;P0=0x00;adwr=1;_nop_();adwr=0;_nop_();adwr=1;//
13、ADC0809开始转换delayms(1);adrd=1;_nop_();adrd=0;_nop_();i=P0;//开始读取数据adrd=1;adval[j]=exchange(i);}adval_sum=add(adval);adval_aver=adval_sum/10;voltage=(float)adval_aver/256*5.00;//电压值temp=voltage*40+20;//需要根据实际测出温度和电压的关系式returntemp;}2/7电烤箱温度控制系统程序52070329徐高飞头
14、文件lcd1602.h:LCD应用程序#include#include#include#defineucharunsignedchar#defineuintunsignedintxdataunsignedcharlcdwir_at_0xb000;//液晶写指令地址,液晶显示屏CS接138译码器Y5xdataunsignedcharlcdwdr_at_0xb001;//液晶写数据地址xdataunsignedcharlcdrir_at_0xb002;/
15、/液晶读状态地址xdataunsignedcharlcdrdr_at_0xb003;//液晶读数据地址/*检查LCD状态函数*/bitlcd_checkbusy(){unsignedcharlcdstate;lcdstate=lcdrir;//读取lcd的状态lcdstate&=0x80;return((bit)lcdstate);}/*写LCD命令函数*/voidlcd_wrcmd(unsignedcharlcdwr)/*写LCD命令函数*/{while(lcd_checkbusy());lcdwir=
16、lcdwr;}/*写数据函数*/voidlcd_wrdata(charlcddata)/*在当前显示位置显示数据*/{while(lcd_checkbusy());lcdwdr=lcddata;}//液晶初始化函数voidlcd_init(){lcd_wrcmd(0x01);//清屏lcd_wrcmd(0x38);//设置显示模式:两行5×7,光标开lcd_wrcmd(0x0c);//整体显示,关光标,不闪烁}3/7电烤箱温度