ds18b20温度传感器+1602液晶显示

ds18b20温度传感器+1602液晶显示

ID:33714403

大小:297.07 KB

页数:6页

时间:2019-02-28

ds18b20温度传感器+1602液晶显示_第1页
ds18b20温度传感器+1602液晶显示_第2页
ds18b20温度传感器+1602液晶显示_第3页
ds18b20温度传感器+1602液晶显示_第4页
ds18b20温度传感器+1602液晶显示_第5页
资源描述:

《ds18b20温度传感器+1602液晶显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、单片机轻松入门之十DS18B20温度传感器+1602液晶显示本文旨在介绍单片机入门的基础知识,为初接触或即将接触单片的新手提供一个入门指导。本文章会陆续推出,隔几天一个章节。所使用单片机为ATMEL公司的AT89C52,软件为PROTEUS和KEIL;只提供原理图和KEIL环境下的注释,希望对广大即将接触单片机的人有所帮助,如果有错误欢迎回帖指出与本人交流或QQ联系(QQ:1260514656)。DS18B20数字温度传感器是由美国DALLAS公司生产的,体积小,使用方便,测温范围-55℃~+125℃,测温分辨率0.5℃,工作电压DC3-5V

2、,不需要任何外围元件,采用SPI单线接口方式,在与微处理器连接时仅需要一条口线即可实现双向通讯,广泛适用于各种温度控制领域。原理图如下:程序如下:#include#defineucharunsignedchar#defineuintunsignedintsbitRS=P3^0;sbitEN=P3^2;sbitRW=P3^1;sbitwela=P3^3;sbitDQ=P3^4;uchari;uintnum;                 uintshi,ge,xiaoshu;ucharcodet0[]="Thetempera

3、ture";ucharcodet1[]="is            ";ucharcodewendu[]="0123456789";   voiddelay(uintx){uintm,n;for(m=x;m>0;m--)  for(n=10;n>0;n--);}voiddelay1(uintx){uinta,b;for(a=x;a>0;a--)  for(b=110;b>0;b--);}/*****************液晶写指令***************/voidwrite_com(ucharcom){wela=1;P2=com;w

4、ela=0;RS=0;EN=0;RW=0;delay(10);EN=1;delay(10);   EN=0;}/*****************液晶写数据指令***************/voidwrite_date(uchardate){wela=1;P2=date;wela=0;RS=1;EN=0;RW=0;delay(10);EN=1;delay(10);EN=0;}/*****************液晶初始化指令***************/voidinit(){write_com(0x38);delay(20);write_

5、com(0x0f);delay(20);write_com(0x06);delay(20);write_com(0x80);for(i=0;i<16;i++)  {   write_date(t0[i]);   delay(0);  }write_com(0x80+0x40);for(i=0;i<16;i++)  {   write_date(t1[i]);   delay(0);  }}/*************DS18B20温度读取模块*************/voidtmpDelay(intu)//延时函数{while(u--);}

6、voidInit_DS18B20()//初始化ds1820{unsignedcharx=0;DQ=1;    //DQ复位tmpDelay(8);//稍做延时DQ=0;   //单片机将DQ拉低tmpDelay(80);//精确延时大于480usDQ=1;   //拉高总线tmpDelay(14);x=DQ;     //稍做延时后,如果x=0则初始化成功x=1则初始化失败tmpDelay(20);}unsignedcharReadOneChar()//读一个字节{unsignedchari=0;unsignedchardat=0;for(i

7、=8;i>0;i--){  DQ=0;//给脉冲信号  dat>>=1;  DQ=1;//给脉冲信号  if(DQ)  dat

8、=0x80;  tmpDelay(4);}return(dat);}voidWriteOneChar(unsignedchardat)//写一个字节{unsignedchari=0;for(i=8;i>0;i--){  DQ=0;  DQ=dat&0x01;  tmpDelay(5);  DQ=1;  dat>>=1;}}unsignedintReadtemp()//读取温度{unsignedchara=0;unsi

9、gnedcharb=0;unsignedintt=0;floattt=0;Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操

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

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

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