ds18b20温度计 c程序 lcd1602显示

ds18b20温度计 c程序 lcd1602显示

ID:9946157

大小:102.50 KB

页数:5页

时间:2018-05-16

ds18b20温度计 c程序 lcd1602显示_第1页
ds18b20温度计 c程序 lcd1602显示_第2页
ds18b20温度计 c程序 lcd1602显示_第3页
ds18b20温度计 c程序 lcd1602显示_第4页
ds18b20温度计 c程序 lcd1602显示_第5页
资源描述:

《ds18b20温度计 c程序 lcd1602显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2007-12-1419:05温度值精确到0.1度,lcd1602显示仿真电路图如下c程序如下:#include#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3^7;//ds18b20与单片机连接口sbitRS=P3^0;sbitRW=P3^1;sbitEN=P3^2;unsignedcharcodestr1[]={"temperature:"};unsignedcharcodestr2[]={"             "};uch

2、ardatadisdata[5];uinttvalue;//温度值uchartflag;//温度正负标志/*************************lcd1602程序**************************/voiddelay1ms(unsignedintms)//延时1毫秒(不够精确的){unsignedinti,j;  for(i=0;i

3、;  RS=0;  RW=0;  EN=0;  P2=com;  delay1ms(1);  EN=1;  delay1ms(1);  EN=0;}voidwr_dat(unsignedchardat)//写数据//{delay1ms(1);;  RS=1;  RW=0;  EN=0;  P2=dat;  delay1ms(1);  EN=1;  delay1ms(1);  EN=0;}voidlcd_init()//初始化设置//{delay1ms(15);wr_com(0x38);delay1ms(5);  

4、wr_com(0x08);delay1ms(5);   wr_com(0x01);delay1ms(5);    wr_com(0x06);delay1ms(5);     wr_com(0x0c);delay1ms(5);}voiddisplay(unsignedchar*p)//显示//{while(*p!=''){wr_dat(*p);p++;delay1ms(1);}}init_play()//初始化显示{lcd_init();   wr_com(0x80);display(str1);wr_com(

5、0xc0);display(str2);  }/******************************ds1820程序***************************************/voiddelay_18B20(unsignedinti)//延时1微秒{  while(i--);}voidds1820rst()/*ds1820复位*/{unsignedcharx=0;DQ=1;         //DQ复位delay_18B20(4);//延时DQ=0;         //DQ拉低del

6、ay_18B20(100);//精确延时大于480usDQ=1;         //拉高delay_18B20(40);  }  uchards1820rd()/*读数据*/{unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){  DQ=0;//给脉冲信号   dat>>=1;   DQ=1;//给脉冲信号   if(DQ)   dat

7、=0x80;   delay_18B20(10);}  return(dat);}voidds1820wr(ucharwdat

8、a)/*写数据*/{unsignedchari=0;   for(i=8;i>0;i--)  {DQ=0;    DQ=wdata&0x01;    delay_18B20(10);    DQ=1;    wdata>>=1;  }}read_temp()/*读取温度值并转换*/{uchara,b;ds1820rst();   ds1820wr(0xcc);//*跳过读序列号*/ds1820wr(0x44);//*启动温度转换*/ds1820rst();   ds1820wr(0xcc);//*跳过读序列号*/

9、ds1820wr(0xbe);//*读取温度*/a=ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue

10、a;   if(tvalue<0x0fff)  tflag=0;   else  {tvalue=~tvalue+1;tflag=1;  }tvalue=tvalue*(0.625);//温度值扩大10倍,

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

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

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