18b20在液晶lcd1602上面显示

18b20在液晶lcd1602上面显示

ID:14156268

大小:53.00 KB

页数:16页

时间:2018-07-26

18b20在液晶lcd1602上面显示_第1页
18b20在液晶lcd1602上面显示_第2页
18b20在液晶lcd1602上面显示_第3页
18b20在液晶lcd1602上面显示_第4页
18b20在液晶lcd1602上面显示_第5页
资源描述:

《18b20在液晶lcd1602上面显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、18b20在液晶LCD1602上面显示/*-----------------------------------------------名称:51单片机培训专题8---数字温度传感器DS18B20论坛:http://bxmcu.vicp.net:8080//编写:bjw日期:2011/11/03修改:无内容:1:自己编写程序在液晶LCD1602上面显示2:温度可以上下限报警,报警用灯指示3:温度上下限值可以通过按键任意设定。------------------------------------------------*/#include#

2、include#include#defineucharunsignedchar#defineuintunsignedint;sbitKeyPort=P3;//定义按键端口sbitDQ=P3^2;//ds18b20端口sbitled1=P2^0;sbitled2=P2^1;sbitkey1=P1^0;sbitkey2=P1^1;sbitkey3=P1^2;sbitkey4=P1^3;sbitkey5=P1^4;sbitkey6=P1^5;sbitrs=P2^4;//定义端口sbitrw=P2^5;sbiten=P2^6;

3、unsignedintReadTemperature(void);bitInit_DS18B20(void);unsignedcharReadOneChar(void);voidWriteOneChar(unsignedchardat);bitLCD_Check_Busy(void);voidLCD_Write_Com(unsignedcharcom);voidLCD_Write_Data(unsignedcharData);voidLCD_Clear(void);voidLCD_Init(void);voiddelay_us(unsignedchart);

4、voiddelay_ms(unsignedchart);voiddisplay(floattemperature1);voidchuli();bitReadTempFlag;//定义读时间标志voidInit_Timer0(void);//定时器初始化uchartable[]="temperature";ucharbiao;//计算key1的次数ucharTEMPH=30,TEMPL=20;voidmain(void){inttemp;floattemperature;LCD_Init();//初始化液晶delay_ms(20);//延时有助于稳定LCD_C

5、lear();//清屏Init_Timer0();while(1)//主循环{uchari;LCD_Write_Com(0x80+2);for(i=0;i<11;i++)//显示temperature{LCD_Write_Data(table[i]);delay_ms(30);}chuli();//对按键进行处理if(biao==0)//无按键时的读取{if(ReadTempFlag==1){ReadTempFlag=0;temp=ReadTemperature();if(temp&0x8000){temp=~temp;//取反加1temp+=1;tempe

6、rature=(float)temp*0.0625*(-1);display(temperature);}else{temperature=(float)temp*0.0625;if(temperature>=TEMPH)//上限报警{display(temperature);led1=0;}else{display(temperature);led1=1;}if(temperature<=TEMPL)//下限报警{display(temperature);led2=0;}else{display(temperature);led2=1;}}}}}}void

7、chuli(){if(key1==0)//按下第一个键时,进入上限/下限处理{delay_ms(5);if(key1==0){biao++;}while(!key1);}if(biao==1)//按下第一次时,显示TEMPH{LCD_Write_Com(0x80+0x40);LCD_Write_Data(0x54);LCD_Write_Data(0x4d);LCD_Write_Data(0x50);LCD_Write_Data(0x48);if(key2==0)//TEMPH++;{delay_ms(5);if(key2==0){TEMPH++;}while

8、(!key2);}if(key3==0)//TEMP

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。