用DS18B20测温度并用LCD12864液晶屏显示.docx

用DS18B20测温度并用LCD12864液晶屏显示.docx

ID:52828853

大小:12.97 KB

页数:8页

时间:2020-03-30

用DS18B20测温度并用LCD12864液晶屏显示.docx_第1页
用DS18B20测温度并用LCD12864液晶屏显示.docx_第2页
用DS18B20测温度并用LCD12864液晶屏显示.docx_第3页
用DS18B20测温度并用LCD12864液晶屏显示.docx_第4页
用DS18B20测温度并用LCD12864液晶屏显示.docx_第5页
资源描述:

《用DS18B20测温度并用LCD12864液晶屏显示.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、本程序实现的功能:用DS18B20测温度,并用LCD12864液晶屏显示#include#include#defineuintunsignedint#defineucharunsignedcharsbitrs=P1^1;sbitrw=P1^2;sbiten=P1^3;sbitpsb=P1^4;sbitds=P1^5;ucharcodetable0[]="Currenttemp:";ucharcodetable1[]="当前温度:";ucharcodetable2[]="摄氏度";uc

2、hartable[4];uinttemp;floatf_temp;voiddelay(uinttms){uinti,j;for(i=tms;i>0;i--)for(j=110;j>0;j--);}voidinit_ds(){uinti;ds=0;i=103;while(i>0)i--;ds=1;i=4;while(i>0)i--;}voidtempwritebyte(ucharcom)//由时序图知,向DS18B20写入数据时,写0和写1的时序恰好相反{//所以如下程序用if和else分别写入0和1;而当从DS18B20读

3、数据时,uinti,j;//读0和读1的时序基本相同,所以读0和读1的程序合二为一,不用分别写出bitbb;for(i=0;i<8;i++){bb=com&0x01;//最低位开始写入DS18B20com=com>>1;if(bb){ds=0;j++;j++;ds=1;j=8;while(j>0)j--;}else{ds=0;j=8;while(j>0)j--;ds=1;j++;j++;}}}voidtempchange(){init_ds();delay(1);tempwritebyte(0xcc);tempwriteb

4、yte(0x44);}uchartempreadbyte()//由时序图知,向DS18B20写入数据时,写0和写1的时序恰好相反{//所以如下程序用if和else分别写入0和1;而当从DS18B20读数据时,uchari,j,m,n;//读0和读1的时序基本相同,所以读0和读1的程序合二为一,不用分别写出bitdat;for(i=0;i<8;i++){ds=0;j++;j++;ds=1;j++;j++;dat=ds;j=8;while(j>0)j--;m=dat;//把一位数据赋给一个字节,且从最低位开始读数n=(m<<7

5、)

6、(n>>1);}returnn;//必须将n值返回去,以赋给a和b}voidget_temp(){uchara,b;init_ds();delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempreadbyte();b=tempreadbyte();temp=b;temp<<=8;temp=temp

7、a;f_temp=temp*0.0625*10+0.5;//保留一位小数,且最低位四舍五入temp=f_temp;//returntemp;}voidwr_data(da

8、te){rs=1;rw=0;en=0;P0=date;delay(3);en=1;delay(3);en=0;}voidwr_com(ucharcom){rs=0;rw=0;en=0;P0=com;delay(3);en=1;delay(3);en=0;}voidlcd_init(){psb=1;wr_com(0x30);delay(3);wr_com(0x0c);delay(3);wr_com(0x06);delay(3);//wr_com(0x01);//delay(3);}voidlcd_pos(ucharX,uch

9、arY){if(X==0)X=0x80;elseif(X==1)X=0x90;elseif(X==2)X=0x88;elseif(X==3)X=0x98;wr_com(X+Y);}voiddisplay()//显示第一行为currenttemp:{//第二行为当前温度:uchari;//第三行为xxx摄氏度table[0]=temp/100+'0';table[1]=temp/10%10+'0';table[2]='.';table[3]=temp%10+'0';lcd_pos(2,2);for(i=0;i<4;i++)w

10、r_data(table[i]);lcd_pos(2,4);i=0;while(table2[i]!=''){wr_data(table2[i]);i++;}lcd_pos(0,0);i=0;while(table0[i]!=''){wr_data(table0[i]);i++;}lcd_pos

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

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

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