【51单片机】温度传感器ds18b20程序 lcd1602显示

【51单片机】温度传感器ds18b20程序 lcd1602显示

ID:29359455

大小:201.50 KB

页数:11页

时间:2018-12-18

【51单片机】温度传感器ds18b20程序 lcd1602显示_第1页
【51单片机】温度传感器ds18b20程序 lcd1602显示_第2页
【51单片机】温度传感器ds18b20程序 lcd1602显示_第3页
【51单片机】温度传感器ds18b20程序 lcd1602显示_第4页
【51单片机】温度传感器ds18b20程序 lcd1602显示_第5页
资源描述:

《【51单片机】温度传感器ds18b20程序 lcd1602显示》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用标准文案仿真截图://仿真文件网盘地址:http://pan.baidu.com/s/1qW8sGQK//程序:#include#include#defineucharunsignedchar#defineuintunsignedintsbitP00=P0^0;sbitP01=P0^1;sbitP02=P0^2;sbitP03=P0^3;sbitP04=P0^4;sbitP05=P0^5;sbitP06=P0^6;sbitP07=P0^7;sbitP10=P1^0;sbitP11=P1^1;sbitP1

2、2=P1^2;sbitP13=P1^3;sbitP14=P1^4;精彩文档实用标准文案sbitP15=P1^5;sbitP16=P1^6;sbitP17=P1^7;sbitP20=P2^0;sbitP21=P2^1;sbitP22=P2^2;sbitP23=P2^3;sbitP24=P2^4;sbitP25=P2^5;sbitP26=P2^6;sbitP27=P2^7;sbitP30=P3^0;sbitP31=P3^1;sbitP32=P3^2;sbitP33=P3^3;sbitP34=P3^4;sbitP35=P3^5;sbitP36=P3^6

3、;sbitP37=P3^7;//******DS18B20******#defineDQP17/*************精确延时函数*****************/voiddelay10us(void)//误差0us{unsignedchara,b;for(b=1;b>0;b--)for(a=2;a>0;a--);}voiddelay20us(void)//误差0us{unsignedchara,b;for(b=1;b>0;b--)for(a=7;a>0;a--);}voiddelay30us()//误差0us{unsignedchara,

4、b;for(b=3;b>0;b--)for(a=3;a>0;a--);}精彩文档实用标准文案voiddelay100us()//误差0us{unsignedchara,b;for(b=1;b>0;b--)for(a=47;a>0;a--);}voiddelay200us(void)//误差0us{unsignedchara,b;for(b=1;b>0;b--)for(a=97;a>0;a--);}voiddelay500us()//误差0us{unsignedchara,b;for(b=71;b>0;b--)for(a=2;a>0;a--);}v

5、oidDS18B20_init()//DS18B20初始化复位{DQ=1;_nop_();_nop_();_nop_();_nop_();//延时几个时钟周期保证DQ引脚稳定在高电平DQ=0;delay500us();//最短为480us的低电平信号复位DQ=1;//拉高总线15-60usdelay30us();delay200us();//延时足够时间复位基本上都会成功因此不必再判断是否复位成功DQ=1;//释放总线}ucharRead_One_Byte(){uchari;ucharbyte=0;for(i=0;i<8;i++){DQ=1;_n

6、op_();精彩文档实用标准文案_nop_();_nop_();_nop_();//延时几个时钟周期保证DQ引脚稳定在高电平DQ=0;byte>>=1;delay20us();DQ=1;//给脉冲产生读时间间隙delay10us();//延时一定时间后,读DQ的值if(DQ){byte

7、=0x80;}//读得DQ为1将1写到dat最高位;读得DQ为0不必处理delay100us();DQ=1;}return(byte);}voidWrite_One_Byte(ucharbyte){uchari=0;for(i=0;i<8;i++){DQ=1;_n

8、op_();_nop_();_nop_();_nop_();//延时几个时钟周期保证DQ引脚稳定在高电平DQ=0;DQ=byte&0x01;//写所给数据最低位delay30us();byte>>=1;}}intRead_Temp()////////***读取温度值***********/////每次读写均要先复位{intt;floattep;uchara,b;DS18B20_init();Write_One_Byte(0xcc);//跳过ROM命令单个传感器所以不必读取ROM里的序列号Write_One_Byte(0x44);//开始转换DS1

9、8B20_init();Write_One_Byte(0xcc);//跳过ROM命令Write_One_Byte(0xbe);//读寄存

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

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

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