用DS18B20设计电子温度计.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用DS18B20设计电子温度计

任务一 用DS18B20设计电子温度计 一、认识数字温度传感器 DS18B20的测温范围为-55℃~125℃,12 位温度读数,分辨率为1/16℃,温度转换时 间最多为750ms。 2、DS18B20的序列号 每片DS18B20均有一个唯一产品序列号,固化在内部的64位激光ROM中,其格式如下: 二、读写时序 DS18B20与单片机之间的数据传送是靠严格的时序来实现的: bit reset(void) { bit err; DQ=0; delay15(40); DQ=1; delay15(4); err=DQ; delay15(18); return(err); } void wrbyte(uchar d) { uchar i; dat=d; for(i=8;i0;i--) { DQ=0; delay15(1); DQ=dat0; dat=dat1; delay15(1); DQ=1; } } 三、基本操作指令 DS18B20提供了一系列的指令来控制传感器的工作,上电后,传感器处于空闲状态,需单片机向其发送指令,控制它进行相应的操作。 2、SKIP ROM [CCH] 单片机可用这一命令同时访问总线上的所有设备而不需送出ROM序列码信息。 例如:发出SKIP ROM命令后接着送出CONVERT命令,可使总线上的所有DS18B20同时进行温度转换。 4、CONVERT T [44H] 该命令开始一次温度转换。转换结束后,数据保存在暂存器中2个字节的温度寄存器TMSB、TLSB中。 设计思想: 1、单片机首先对DS18B20进行复位操作。 将温度值转换为十进制的方法 温度值为二个字节的十六位二进制数,高字节的低四位和低字节的高四位组成一个字节转换成十进制数后就是温度的百、十、个位值。 (如果是负数首先对其求补即可)。 调试方法与步骤: 电子温度计的硬件电路较为简单,重点是程序的调试。在Keil环境下对工程进行编译,进入调试状态后全速运行,LED显示器将显示当前的温度值,如果用手指贴在温度传感器上,所显示的温度值会随之上升,当手指离开传感器时,温度值会随之下降。 2、如果t的值与当前温度相差很大,应检查程序中对DQ脚的定义与实际电路是否一致,或者程序对DS18B20的复位、读、写函数是否有问题。 任务二 单片机控制字符型液晶显示模块 这里首先介绍字符型液晶模块RT1602。 RT1602液晶模块内带标准字库,内部的字符发生存储器(CGROM)已经存储了192个5×7点阵字符,可显示2行×16列共32个点阵字符,其外观如图所示: RS:寄存器选择,高电平时选择数据寄存器、低 电平时选择指令寄存器。 二、显示模块的指令功能 液晶屏幕上的每个字符位置与内部数据存储器(DDRAM)之间有着一一对应关系。 二、显示模块的指令功能 RT1602液晶模块内部的控制器共有11条控制指令,单片机对液晶模块的控制都是通过指令编程来实现的。 三 、液晶模块与单片机的连接 液晶模块与单片机的连接可采用总线方式,也可采用模拟I/O口方式。 lcd_cmd(0x01); lcd_cmd(0x3c); lcd_cmd(0x0C); lcd_cmd(0x80); p=str1; while(*p) lcd_dat(*p++); lcd_cmd(0xc0); p=str2; while(*p) lcd_dat(*p++); while(1); } 2、模拟I/O口方式 模拟I/O口方式就是根据图6-9所示的读写时序,用单片机的I/O口线来模拟数据总线、读/写控制信号,相应的电路如图所示。 void lcd_cmd(uchar cmd) { LCD=cmd; RS=0; //选择命令寄存器 RW=0; //执行写数据操作 E=1; _nop_(); //延时 E=0; //使能信号有效 while(1) { LCD=0xff; //总线变高 RS=0; //选择命令寄存器 RW=1; //读操作 E=0; //使能信号有效 _n

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档