欢迎来到天天文库
浏览记录
ID:19792539
大小:227.51 KB
页数:15页
时间:2018-10-06
《【51单片机】温度传感器ds18b20程序lcd1602显示》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、仿真截阁:LCU1LM016LS52SSSSSU1>XTAL1PO.O/ADOP0.1/AD1P0.2/AD2XTAL2P0.3/AD3P04/AD4P0.5/AD5P0.6WD6RSTP0.7/AD7P2XJ/A8P2.1/A9R2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.S/A14P2.7/A15P10/T2P3.0jRXDP1.1/T2EXP3.1/TXDPI.2P3.2A4T0P1.3P3.3/WT1P1AP34H0PI5P35/T1PI.6P3.6W?P17P37W12_29*30霪31■1AT89C52■39■38■37■38■
2、35■34■33■32■21■22■23■24叫叫叫二,♦52t♦52"3«51gflRP1U22»VCCDQONDESDI5S13B20^ESPACK-B^TEXT>±S«"仿真文件M盘地址:http://pan.baidu.eom/s/lqW8sGOK//程序:#include#include#defineucharunsignedchar#defineuintunsignedintsbitPOO=P0A0;sbitPOl=POA1;sbitP02=PO八2;sbitP03=P0A3;sbitP04=POM;sbitP05=P0A5;sb
3、itP06=P0A6;sbitP07=PO八7;sbitP10=PlA0;sbitPl1=P1A1;sbitP12=Pl八2;sbitP13=PlA3;sbitP14=Pl八4;rrvcd=£22Sso<£=9£l!-s4、^JrtqCJpouonJsun}()sno£XEPPPOA{X!C3O<«£=C3)JC2(:qo)snoCMxq3pPOA{一(!§<若=詈jJqo<-Rl=q)JOJtcfeJEqoP3uol)}sun}(pc>)s=30JXUPP^o>/*****************}^^l^}tfl+*************/ZJdcxGPEJSP#******03HOOIsQ*-x-*-x-**//unsignedchara,b;for(b=l;b>0;b-)for(a=47;a>0;a~);}voiddelay2005、us(void)//误差Ous{unsignedchara,b;for(b=l;b>0;b-)for(a=97;a>0;a-);}voiddelay500us()//误差Ous{unsignedchara,b;for(b=71;b>O;b~)for(a=2;a>0;a-);}voidDS18B2O_init()//DS18B20初始化复位(DQ=1;_nop_();_nop_();_nop_();_nop_();//延时几个时钟周期保证DQ引脚稳定在高电TDQ=0;delay500us();//最短为480us的低电平信号复位DQ=1;//拉高总线15-60usdelay3Ous(6、);delay200us();//延时足够时间S位基本上都会成功因此不必再判断是否复位成功DQ=1;//释放总线ucharRead_One_Byte(){uchari;ucharbyte=0;for(i=0;i<8;i++)DQ=1;』op」);_nop_();_nop_();_nop_();//延时几个时钟周期保证DQ引脚稳定在高电平DQ=0;byte»=1;delay20us();DQ=1;//给脉冲产生读吋间间隙delay10us();//延时一定时间后,读DQ的值if(DQ){byte7、=0x80;}//读得DQ为1将1写到dat最高位;读得DQ为()不必处理delay108、0us();DQ=1;}return(byte);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()////////***读収温度值***********/////
4、^JrtqCJpouonJsun}()sno£XEPPPOA{X!C3O<«£=C3)JC2(:qo)snoCMxq3pPOA{一(!§<若=詈jJqo<-Rl=q)JOJtcfeJEqoP3uol)}sun}(pc>)s=30JXUPP^o>/*****************}^^l^}tfl+*************/ZJdcxGPEJSP#******03HOOIsQ*-x-*-x-**//unsignedchara,b;for(b=l;b>0;b-)for(a=47;a>0;a~);}voiddelay200
)snoCMxq3pPOA{一(!§<若=詈jJqo<-Rl=q)JOJtcfeJEqoP3uol)}sun}(pc>)s=30JXUPP^o>/*****************}^^l^}tfl+*************/ZJdcxGPEJSP#******03HOOIsQ*-x-*-x-**//unsignedchara,b;for(b=l;b>0;b-)for(a=47;a>0;a~);}voiddelay200
5、us(void)//误差Ous{unsignedchara,b;for(b=l;b>0;b-)for(a=97;a>0;a-);}voiddelay500us()//误差Ous{unsignedchara,b;for(b=71;b>O;b~)for(a=2;a>0;a-);}voidDS18B2O_init()//DS18B20初始化复位(DQ=1;_nop_();_nop_();_nop_();_nop_();//延时几个时钟周期保证DQ引脚稳定在高电TDQ=0;delay500us();//最短为480us的低电平信号复位DQ=1;//拉高总线15-60usdelay3Ous(
6、);delay200us();//延时足够时间S位基本上都会成功因此不必再判断是否复位成功DQ=1;//释放总线ucharRead_One_Byte(){uchari;ucharbyte=0;for(i=0;i<8;i++)DQ=1;』op」);_nop_();_nop_();_nop_();//延时几个时钟周期保证DQ引脚稳定在高电平DQ=0;byte»=1;delay20us();DQ=1;//给脉冲产生读吋间间隙delay10us();//延时一定时间后,读DQ的值if(DQ){byte
7、=0x80;}//读得DQ为1将1写到dat最高位;读得DQ为()不必处理delay10
8、0us();DQ=1;}return(byte);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()////////***读収温度值***********/////
此文档下载收益归作者所有