DS18B20温度传感器1602液晶显示_第1页
DS18B20温度传感器1602液晶显示_第2页
DS18B20温度传感器1602液晶显示_第3页
DS18B20温度传感器1602液晶显示_第4页
DS18B20温度传感器1602液晶显示_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、一条口线即可实现双向通讯,广泛适用于各种温度控制领域。原理图如下:巾央叩 PU -JftD 1 rn Jan? rilKb, 咱.血口 i FD.SADS fh w FC.6A&- LCIZ1- .RXLXTK-I1mizR旷匕襁 HKU ,二 v-d ,士的H 2FJ1叫T咽母FOUW三 LIBPljfflTT 事,i.iiEl 七5fllnjTJir Ulf M程序如下:#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitRS=P3A0;sbitEN=P3A2;sbitRW=P3A1;sb

3、itwela=P3A3;sbitDQ=P3A4;uchari;uintnum;uintshi,ge,xiaoshu;ucharcodet0="Thetemperature"ucharcodet1="isucharcodewendu=”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-);/*液晶写指令 */void write_com(uchar

4、 com) .wela=1;P2=com;wela=0;RS=0;EN=0;RW=0;delay(10);EN=1;delay(10);EN=0;/*液晶写数据指令*/void write_date(uchar date) .wela=1;P2=date;wela=0;RS=1;EN=0;RW=0;delay(10);EN=1;delay(10);EN=0;/*液晶初始化指令*/void init() write_com(0x38);delay(20);write_com(0x0f);delay(20);write_com(0x06);delay(20);write_com(0x80);for

5、(i=0;i<16;i+)write_date(t0i); delay。;write_com(0x80+0x40);for(i=0;i<16;i+)write_date(t1i); delay。;/*DS18B20温度读取模块*/voidtmpDelay(intu)/延时函数while(u-);voidInit_DS18B20()/初始化ds1820unsignedcharx=0;DQ=1;/DQ复位tmpDelay(8);/稍做延时DQ=0;/单片机将DQ拉低tmpDelay(80);/精确延时大于480usDQ=1;/拉高总线tmpDelay(14);x=DQ;稍做延时后,如果

6、x=0则初始化成功x=1则初始化失败tmpDelay(20);unsignedcharReadOneChar()/读一个字节unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i-)DQ=0;/给脉冲信号dat>>=1;DQ=1;/给脉冲信号if(DQ)dat|=0x80;tmpDelay(4);return(dat);voidWriteOneChar(unsignedchardat)/写一个字节unsignedchari=0;for(i=8;i>0;i-)DQ=0;DQ=dat&0x01;tmpDelay(5);DQ=1

7、;dat>>=1;unsignedintReadtemp()/读取温度unsignedchara=0;unsignedcharb=0;unsignedintt=0;floattt=0;Init_DS18B20();WriteOneChar(0xCC);/跳过读序号列号的操作WriteOneChar(0x44);/启动温度转换Init_DS18B20();WriteOneChar(OxCC);/跳过读序号列号的操作WriteOneChar(OxBE);/读取温度寄存器a=ReadOneChar();/连续读两个字节数据b=ReadOneChar();t=b;t<<=8;t

8、=t|a;/两字节合成一个整型变量tt=t*0.0625;/得到真实十进制温度值,因为DS18B2M以精确到0.0625度,所以读回数据的最低位代表的是0.0625度t=tt*10+0.5;/放大十倍,这样做的目的将小数点后第一位也转换为可显示数字,同时进行一个四舍五入操作。return(t);voidmain()init();num=Readtemp();shi=num/100;ge=num/10%10;xiaoshu=num%10;write_com(0xc0+5);write_date(wendushi);write_com(0xc0+6);write_date(wenduge);write_com(0xc0+7);write_date(0x2e);write_com(0xc0+8);write_date(wenduxiaoshu);while(1);实验仿真结果:UE.rawirL吧办泡 叮箝 ?2.W112 空洒9 立H RfltfQ ! !i ii ! it i r s I; r LOTI理碑一“三丁I h tfinip*ratur e口 皿产口1口不03口new口鼻口FffWTO田以曳 日由Fis E5.d|.+ 3 t." rU3LCD1LM332L_LVCC dq GNP The te

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论