欢迎来到天天文库
浏览记录
ID:14791336
大小:195.13 KB
页数:18页
时间:2018-07-30
《简易数字温度计设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、目录摘要21系统设计21.1设计任务21.2设计要求22系统方案论证22.1主控模块的论证与选择22.2显示模块的论证与选择32.3按键模块的论证与选择33系统理论分析与计算33.1DS18B20的理论分析与计算34电路与程序设计44.1电路的设计44.2程序的设计75测试方案与测试数据85.1测试方案85.2测试条件与仪器95.3测试结果96总结9附录主要源程序1017摘要:本系统利用单片机AT89C52采用程序设计方法来测试温度,还可以通过两个按键设置温度报警上限,当测试温度超过设定的温度上限时,蜂鸣器器就会报警且绿灯关闭,红灯点亮;当温度低于上限时蜂鸣器关闭且红灯关闭,绿
2、灯点亮。并通过液晶屏1602显示其测试温度以及设置的上限温度。关键词:STC89C52、LCD1602、DS18B20简易数字温度计设计1系统设计1.1设计任务设计一数字温度测量系统,能自动实现实际温度的测量与显示。1.2设计要求1.2.1基本功能(1)测温范围-30℃~+120℃。(2)测量误差在±0.5℃之内。(3)能正常显示测量的温度。1.2.2扩展功能(1)增加温控功能,并可修改设置温控的上下限。(2)增加温控报警功能。2系统方案论证本系统主要由主控模块、显示模块、按键模块、蜂鸣器模块、LED模块、传感器模块组成,下面分别论证这几个模块的选择。2.1主控模块的论证与选择
3、方案一:AT89C52单片机是一种高性能8位单片微型计算机。内核本身具有丰富的指令集,足够实现本次作品的全部基本功能和部分拓展功能,相比17Atmega16我们对AT89C52更为熟悉,且芯片价格较低,性价比高。方案二:采用ATmega16芯片作为主控芯片。由于对芯片的不熟悉,导致如果想要实现温度计全部基本功能和部分拓展功能,较为困难。综上所述,选择方案一。2.2显示模块的论证与选择方案一:采用LCD1602显示。LCD1602相对便宜,虽然其本身不能显示中文,但是温度计只需显示数字和一些英文,符合这次设计要求。方案二:采用LCD12864显示。LCD12864屏幕显示细腻直观
4、,且可以显示中文,但是相对昂贵。综上所述,选择方案一。2.3按键模块的论证与选择方案一:采用4X4矩阵按键。尽管按键一目了然,但连线复杂,扫描过程烦琐,会耗费大量的系统资源。方案二:独立按键,我们只使用了两个按键来调节上限,大大节省了系统硬件资源,便于系统扩展。综上所述,选择方案二。3系统理论分析与计算3.1DS18B20的理论分析与计算DS18B20通过编程,可以实现最高12位的温度存储值,在寄存器中,以补码的格式存储,如图1所示。17图1DS18B20温度数据格式寄存器一共2个字节,LSB是低字节,MSB是高字节,其中MSb是字节的高位,LSb是字节的低位。大家可以看出来,
5、二进制数字,每一位代表的温度的含义,都表示出来了。其中S表示的是符号位,低11位都是2的幂,用来表示最终的温度。DS18B20的温度测量范围是从-55度到+125度,而温度数据的表现形式,有正负温度,寄存器中每个数字如同卡尺的刻度一样分布,如图2所示。图2DS18B20温度值二进制数字最低位变化1,代表温度变化0.0625度的映射关系。当0度的时候,那就是0x0000,当温度125度的时候,对应十六进制是0x07D0,当温度是零下55度的时候,对应的数字是0xFC90。反过来说,当数字是0x0001的时候,那温度就是0.0625度了。4电路与程序设计4.1电路的设计4.1.1系
6、统总体框图系统总体框图如图3所示17STC89C52独立按键*2LCD1602DS18B20温度传感器最小系统蜂鸣器模块LED*2图3系统总体框图4.1.2控制按键&LED电路按下S1能增加温度报警上限,按下S2能减少温度报警上限。测试温度低于上限时,绿灯LED1亮。当温度超过设定的上限时,红灯LED2亮。图4控制按键&LED4.1.3蜂鸣器电路当测试温度超过设定温度时,蜂鸣器开启;当测试温度低于设定温度时,蜂鸣器关闭。蜂鸣器电流相对较大,因此需要用三极管驱动,并且加了一个1K欧的电阻作为限流电阻。此外还加了一个D1二极管,这个二极管叫做续流二极管。图5蜂鸣器电路174.1.4
7、显示电路显示电路使用LCD1602,第一行显示”Temperature”第二行显示测试温度和温度上限,两者中间显示一个”>”或”<”。RP1为上拉排阻。图6显示电路4.1.5传感器电路图7传感器电路174.1.6总体电路图8整体电路4.1.7电源使用5V直流电源。4.2程序的设计4.2.1程序功能描述(1)能够测试-30℃~+120℃的温度。(2)按下S1能增加温度报警上限,按下S2能减少温度报警上限。(3)测试温度低于上限时,绿灯亮,蜂鸣器关闭。当温度超过设定的上限时,红灯亮且蜂鸣器响起。
此文档下载收益归作者所有