基于C8051 温度显示程序.doc

上传人:yyf 文档编号:6285222 上传时间:2020-10-13 格式:DOC 页数:4 大小:22KB
返回 下载 相关 举报
基于C8051 温度显示程序.doc_第1页
第1页 / 共4页
基于C8051 温度显示程序.doc_第2页
第2页 / 共4页
基于C8051 温度显示程序.doc_第3页
第3页 / 共4页
基于C8051 温度显示程序.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于C8051 温度显示程序.doc》由会员分享,可在线阅读,更多相关《基于C8051 温度显示程序.doc(4页珍藏版)》请在三一文库上搜索。

1、.#include#define uchar unsigned char#define uint unsigned intsbit DQ=P34;/ds18b20与单片机连接口sbit RS=P27;sbit RW=P26;sbit EN=P25;unsigned char code str1= temperature: ;unsigned char code str2= ;uchar data disdata5;uint tvalue;/温度值uchar tflag;/温度正负标志/*lcd1602程序*/void delay1ms(unsigned int ms)/延时1毫秒(不够精确的)

2、unsigned int i,j;for(i=0;ims;i+)for(j=0;j0;i-) DQ = 0; /给脉冲信号dat=1;DQ = 1; /给脉冲信号if(DQ)dat|=0x80;delay_18B20(10);精品.return(dat);void ds1820wr(uchar wdata)/*写数据*/unsigned char i=0;for (i=8; i0; i-) DQ = 0;DQ = wdata&0x01;delay_18B20(10);DQ = 1;wdata=1;read_temp()/*读取温度值并转换*/uchar a,b;ds1820rst(); ds1

3、820wr(0xcc);/*跳过读序列号*/ds1820wr(0x44);/*启动温度转换*/ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ ds1820wr(0xbe);/*读取温度*/ a=ds1820rd();b=ds1820rd();tvalue=b;tvalue=8;tvalue=tvalue|a;if(tvalue0x0fff)tflag=0;elsetvalue=tvalue+1;tflag=1;tvalue=tvalue*(0.625);/温度值扩大10倍,精确到1位小数return(tvalue);/*/void ds1820disp()/温度值

4、显示 uchar flagdat;disdata0=tvalue/1000+0x30;/百位数disdata1=tvalue%1000/100+0x30;/十位数disdata2=tvalue%100/10+0x30;/个位数disdata3=tvalue%10+0x30;/小数位if(tflag=0)flagdat=0x20;/正温度不显示符号精品.elseflagdat=0x2d;/负温度显示负号:-if(disdata0=0x30)disdata0=0x20;/如果百位为0,不显示if(disdata1=0x30)disdata1=0x20;/如果百位为0,十位为0也不显示wr_com(

5、0xc0);wr_dat(flagdat);/显示符号位wr_com(0xc1);wr_dat(disdata0);/显示百位wr_com(0xc2);wr_dat(disdata1);/显示十位 wr_com(0xc3);wr_dat(disdata2);/显示个位 wr_com(0xc4);wr_dat(0x2e);/显示小数点 wr_com(0xc5);wr_dat(disdata3);/显示小数位/*主程序*/void main() init_play();/初始化显示while(1)read_temp();/读取温度ds1820disp();/显示如有侵权请联系告知删除,感谢你们的配合!精品

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1