基于AT89C52单片机的DS18B20温度传感器设计报告.doc
《基于AT89C52单片机的DS18B20温度传感器设计报告.doc》由会员分享,可在线阅读,更多相关《基于AT89C52单片机的DS18B20温度传感器设计报告.doc(28页珍藏版)》请在沃文网上搜索。
1、摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本次课程设计主要设计一个基于89C51单片机的数字温度传感器DS18B20开发测温系统,重点学习掌握对传感器在单片机下的硬件连接,软件编程以及各模块系统流程的详尽分析,提高电路设计的技巧。该系统可以方便的实现实现温度采集和显示,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与AT89C52结合实现最简温度检测系统,该系统结构简单,抗干扰能
2、力强,有广泛的应用前景。关键词:单片机;温度采集;AT89C52;DS18B20;目 录1 设计任务12 总体方案设计12.1 方案论证121.1 方案一12.1.2 方案二12.2 总体设计框图及电路23 硬件设计33.1 单片机系统33.2 数字温度传感器模块43.2.1 DS18B20性能43.2.2 DS18B20外形及引脚说明43.2.3 DS18B20接线原理图53.2.4 DS18B20时序图53.2.5 数据处理63.3 1602液晶显示电路74 软件设计84.1 主程序模块84.2 读温度值模块94.3 中断模块104.4 温度报警模块104.5程序开发10 4.6 PCB电
3、路板的制作.195 程序的仿真及产品调试206 总结与讨论23参考文献:24附录:元器件清单1 设计任务采用方案一(温度传感器LM35,3位半A/D转换器)或者方案二(52单片机,温度传感器DS18B20),数码管或者液晶显示,设计一个日常温度数字计。 产品指标及技术要求: 温度显示范围:045摄氏度 数字显示分辨率:0.1摄氏度 精度误差:小于等于0.5摄氏度 电路工作电源可在59V范围内工作2总体方案设计 2.1方案论证 2.1.1方案一采用温度传感器LM35,3位半A/D转换器,数码管或者液晶显示,设计一个日常温度数字计。本方案主要利用硬件电路连接,通过更改电路器件参数,显示出3位半温度
4、,并没有利用软件编程。本方案设计简单,但电路复杂,这种设计需要用到A/D转换电路,增大了电路的复杂性,而且要做到高精度也比较困难。并且基本电路中所需要的器件和芯片成本不便宜。 2.1.2方案二采用AT89C52单片机,温度传感器DS18B20,数码管或者液晶显示,设计一个日常温度数字计。本方案主要利用硬件电路连接,通过软件编程,显示出3位半温度。本方案设计比较难,要同时考虑硬件的连接和软件编程,但电路简单,另外DS18B20具有3引脚的小体积封装,测温范围为-55+125摄氏度,测温分辨率可达0.0625摄氏度,其测量范围与精度都能符合设计要求。并且基本电路中所需要的器件和芯片成本便宜。以上两
5、种方案相比较,第二种方案的电路、软件设计更简单,成本便宜,此方案设计的系统在功耗、测量精度、范围等方面都能很好地达到要求,故本设计采用方案二。 12.2总体设计框图及电路本方案设计的系统由单片机系统、数字温度传感器、液晶1602显示模块、时钟模块组成,其总体架构如下图1。AT89C52单片机1602液晶显示电路温度传感器时钟,复位电路 电路设计:AT89C52单片机最小系统+DS18B20数字温度传感器模块+液晶1602驱动显示模块 图1单片机最小系统 图2 DS18B20数字温度传感器模块 2 图3液晶1602驱动显示模块 3硬件设计3.1 单片机系统 AT89C52单片机引脚介绍 AT89
6、C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的89C52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接11.0592MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件编程定义
7、。 图4 晶振电路图 图5 复位电路图 3 图6 单片机管脚图3.2 数字温度传感器模块 3.2.1 DS18B20性能l 独特的单线接口仅需一个端口引脚进行通信l 简单的多点分布应用l 无需外部器件l 可通过数据线供电l 零待机功耗l 测温范围-55+125,以0.5递增l 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625l 温度数字量转换时间200ms,12位分辨率时最多在750ms内把温度转换为数字l 应用包括温度控制、工业系统、消费品、温度计和任何热感测系统l 负压特性:电源极性接反时,传感器不会因发热而烧毁,但不能正常工作 3.2.2 DS1
8、8B20外形及引脚说明l GND:地l DQ:单线运用的数据输入/输出引脚l VD:可选的电源引脚 4图7 DS18B20外形及引脚 3.2.3 DS18B20接线原理图单总线通常要求接一个约4.7K左右的上拉电阻,这样,当总线空闲时,其状态为高电平。图8 DS18B20接线原理图 3.2.4 DS18B20时序图主机使用时间隙来读写DS18B20的数据位和写命令字的位。1.初始化时序 5图9 DS18B20初始化时序2.DS18B20读写时序图10 DS18B20读写时序 3.2.5 数据处理高速暂存存储器由9个字节组成,其分配如表5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码
9、形式存放在 高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。 6图11 字节分配下表为12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际 温度。 例如+125的数字输出为07D0H,实际温度=07D0H*0.0625=2000*0.0625=125。例如-55的数字输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作
10、运算),实际温度=370H*0.0625=880*0.0625=55。可见其中低四位为小数位。图12 DS18B20温度数据表 3.3 1602液晶显示电路 LCD1602引脚功能说明第1脚:VSS为电源地 第2脚:VDD接5V电源正极 7第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enabl
11、e)端。 第714脚:D0D7为8位双向数据端。 第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极 图13 1602液晶显示电路及实物图4 软件设计 4.1 主程序模块 主程序需要调用3个子程序,分别为:l 实时温度显示子程序:驱动液晶1602把实时温度值送出在液晶屏显示l 中断定时及显示子程序:驱动液晶1602把定时时钟送出在液晶屏显示l 温度设定、报警子程序:设定报警温度值,当温度超过或者低于该值时产生报警,即驱动液晶屏显示不同的界面主程序流程图:显示温度时钟,温度报警对温度传感器进行设置,读取温度,对中断定时数据处理转化返回开始开始 8 4.2 读温度值模块 读温度值模块需要
12、调用4个子程序,分别为:l DS18B20初始化子程序:让单片机知道DS18B20在总线上且已准备好操作l DS18B20写字节子程序:对DS18B20发出命令l DS18B20读字节子程序:读取DS18B20存储器的数据l 延时子程序:对DS18B20操作时的时序控制读温度值模块流程图:入口 跳过读序列号DS18B20初始化启动温度转换DS18B20初始化延时跳过读序列号读取温度值高低位返回 数据转换处理 图14 读温度值子程序流程图 9 4.3 中断模块中断采用T0定时器方式1,初始值定时为50ms,并不断计数。来模拟时钟中断模块流程图:中断入口定时器重置初值计数值加1否,返回计数1秒?1
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C52 单片机 DS18B20 温度传感器 设计 报告