【51单片机】温度传感器DS18B20程序LCD1602显示.doc

【51单片机】温度传感器DS18B20程序LCD1602显示.doc

ID:56379911

大小:210.50 KB

页数:11页

时间:2020-06-22

【51单片机】温度传感器DS18B20程序LCD1602显示.doc_第1页
【51单片机】温度传感器DS18B20程序LCD1602显示.doc_第2页
【51单片机】温度传感器DS18B20程序LCD1602显示.doc_第3页
【51单片机】温度传感器DS18B20程序LCD1602显示.doc_第4页
【51单片机】温度传感器DS18B20程序LCD1602显示.doc_第5页
资源描述:

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

1、仿真截图://仿真文件网盘地址:pan.baidu./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;sbi

2、tP12=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;

3、sbitP36=P3^6;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--);}voidde

4、lay30us()//误差0us{unsignedchara,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{unsignedchar

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

6、Read_One_Byte(){uchari;ucharbyte=0;for(i=0;i<8;i++){DQ=1;_nop_();_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(by

8、te);}voidWrite_One_Byte(ucharbyte){uchari=0;for(i=0;i<8;i++){DQ=1;_nop_();_nop_();_nop_();_nop_();//延时几个时钟周期保证DQ引脚稳定在高电平DQ=0;DQ=byte&0x01;//写所给数据最低位delay30us();byte>>=1;}}intRead_Temp()////////***读取温度值***********/////每次读写均要先复位{intt;floattep;uchara,b;DS18B20

9、_init();Write_One_Byte(0xcc);//跳过ROM命令单个传感器所以不必读取ROM里的序列号Write_One_Byte(0x44);//开始转换DS18B20_init();Write_One_Byte(0xcc);//跳过ROM命令Write_One_Byte(0xbe);//读寄存器,共九字节,前两字节为转换值a=Read_One_Byte();//a存低字节b=Read

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

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

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