基于单片机的数字温度计的设计

  

1引言…………………………………………………………………1

1.1数字温度计的设计背景及应用………………………………2

1.2数字温度计的研究现状………………………………………2

1.2.1国内研究现状…………………………………………2

1.2.2国外研究现状…………………………………………3

1.3小结……………………………………………………………3

2数字温度计的设计方案……………………………………………3

2.1数字温度计的功能要求………………………………………3

2.2数字温度计的设计思路………………………………………4

2.3小结……………………………………………………………5

3数字温度计的硬件设计……………………………………………5

3.1单片机主控电路………………………………………………5

  3.2 DS18B20温度测量电路………………………………………6

 3.3 LCD1602温度显示电路………………………………………8

3.4恒温控制电路…………………………………………………9

3.4.1温度报警电路…………………………………………9

3.4.2升温电路………………………………………………9

3.4.3降温电路 ……………………………………………10

3.5小结 …………………………………………………………10

数字温度计的软件设计…………………………………………11

4.1原理图和PCB图 ……………………………………………11

4.2程序设计 ……………………………………………………12

4.2.1主程序设计…………………………………………12

4.2.2温度测量程序设计…………………………………13

4.2.3温度显示程序设计…………………………………14

4.2.3按键控制程序设计…………………………………15

4.3小结 …………………………………………………………16

 5 数字温度计的制作与测试………………………………………16

  5.1数字温度计的实物连接 ……………………………………16

  5.2数字温度计的功能测试 ……………………………………17

    5.3小结 …………………………………………………………18

6 总结………………………………………………………………18

参考文献……………………………………………………………18

致谢…………………………………………………………………19

1 引言

温度计在现代人们的生产和生活中起着不容忽视的重要作用,而目前最常见的温度计是水银温度计,但他有着许多不可忽视的缺点,比如读数的准确性和使用的安全性都存在一定程度的缺陷。而本文所研究的基于单片机的数字温度计采用的温度传感器对环境或人体温度进行测量,有着安全性能更强,测量温度的速度更快,精确度更高,测温范围更广等一系列的优点。在此基础上还能对环境温度加以控制,利用加热片和风扇可以使温度恒定在所设定好的温度范围内,对生产生活有着巨大的帮助。

1.1 数字温度计的设计背景及应用

数字温度计是目前科技迅猛发展下的一大必然产物,温度测量的准确与否关乎着人民的衣食住行,因此对数字温度计的研究也日益深入。温度测量是温度控制的基础和前提,只有获得准确的温度值才能对生产生活提供便利。

温度是一个只能通过测量才能得到的物理量,最早的水银温度计只能通过最简单的热胀冷缩原理,通过汞柱的长短读出当前的温度示数,而汞是一种易挥发的有毒化学物质,因此它不仅有着显示不直观的缺点,还存在着很大的危险性。在此后温度计的发展历程中,很快就出现了不同与水银测量温度的数字温度计,此类温度计一般都基于单片机的控制,具有更高的智能化和数字化程度。它可以通过单片机的控制实现温度数据的采集、处理和显示。但是由于新型温度测量传感器的还未出现,最早的数字温度计采用的是热敏电阻对温度的变化进行测量,通过阻值的不同从而得到不同的电流和电压,但所得到的电流和电压值依旧是模拟量,需要再将已经测量的模拟量通过模数转换电路,即A/D转换成单片机能够接收到处理的数据量。对比与之前的传统温度计,虽然能直观地获取当前温度数值,但电路的组成复杂,且误差较大。此时就需要步骤少,精确度高的直接测量温度器件的出现。DS18B20的出现,这些问题就马上迎刃而解了,利用DS18B20的单总线及无需AD转换器直接与单片机通信的优点,设计出电路简单,温度测量准确,示数直观易读的数字温度计。数字温度计在当前的生产生活中发挥着不可或缺的重要作用,温度值精确程度的不断提高使当前的农业生产更加便利,不再只是简单的靠天吃饭。除了农业上的作用以外,还有在科研方面也有着很大的发展前景,研究人员在已获得精确的温度值条件下才能研发出更多更有效的控制设备。

1.2 数字温度计的研究现状

1.2.1 国内研究现状

2002年,许建明等[1]设计实现了根据8051的作用和特点及A/D模数转换器的原理 ,温度测量的数字化和自动化。

2005年,夏晓玲等[2]设计了利用AT89C2051控制DS1620数字温度计。

2007年,张志勇等[3]设计了一种使用单片机AT89S51制作的数字温度计,它由单片机、传感器和LED数码管等组成。

2008年,陈明等[4]设计了80C52单片机为主控,根据DS18B20的特性、内部结构和单总线技术特点设计的高精度数字温度计。

2016年,王林胜等[5]设计采用单片机STC89C52芯片、温度传感器DS18B20芯片、显示温度为4bit的LED数码管来制作温度测量系统。

1.2.2 国外研究现状

2014,Liangyu Su[6]设计了对于传统温度传感器的交互性和控制不稳定等缺点,数字温度计采用高精度数字温度传感器DS18B20芯片。

2018年,Suruchi Dedgaonkar等[7]设计了使用温度传感器DS18B20、MQTT协议、Mosquitto代理一个监控系统。提出了一个基于网络的系统,其中温度传感器值将定期上传,最终用户将远程监控沼气厂的温度

2019年,Koestoer等[8]设计了把DS18B20防水温度传感器和Arduino组合起来的温度测量系统。

2022年,Irmayatul Hikmah等[9]设计了基于NodeMCU ESP8266、DS18B20传感器和MAX30100传感器的温度监控系统。

1.3 小结

本章分析了数字温度计的设计背景和当前以及未来的应用,以及数字温度计的国内外研究现状。

2 数字温度计的设计方案

2.1  数字温度计的功能要求

数字温度计是主要通过单片机STC89C52的主控功能和温度传感器DS18B20的温度测量功能设计出来的,它的最大特点就在于它不仅能对温度进行测量,还能对环境温度进行控制,数字温度计的具体功能如下。

  • 数字温度计的温度测量范围在理论上可以达到-55℃至+125℃,精确值0.1℃。
  • 在LCD1602液晶显示屏显示当前所测量的温度,降温升温功能的开关情况,以及设置上下限时显示所设置的上下限温度值。
  • 有掉电保持的功能,再次给温度计系统上电时沿用原来的温度上下限。
  • 通过按键可连续改变温度上下限。
  • 当温度超过已经设定好的温度上限值时,蜂鸣器发出警报同时风扇开始转动以达到降温功能,按下减少按钮可以关闭蜂鸣器警报。直到温度降达到温度上限值以下,风扇将停止旋转。
  • 当温度不在下限值之上时,取暖片就会开始发挥作用,同时蜂鸣器也开始发出警报,其关闭方式与超过温度上限值时相同。

2.2  数字温度计的设计思路

数字温度计器件的选择也至关重要,首先主控芯片选用的是STC89C52单片机,同时为了单片机能正常工作,设计连接了复位与晶振电路,构成单片机最小系统。对于温度测量的部分,我选择的是DS18B20温度传感器,因为环境温度的实时变化,所以需要对测温元件的要求较高,而热敏电阻等普通温感效应元件需要通过A/D转换芯片把电压或电流等参数转换成单片机内部可识别处理的数字温度值,对模拟量的准确性要求较高,因此所得数据误差较大,不适用于测量环境温度,且DS18B20支持单总线的通信协议。除了主控和温度测量以外,还需要考虑温度显示和掉电存储功能的实现,所以我选用AT24C02外部存储器来实现掉电存储功能,LCD1602作为一种十分常用的显示器件,其优点是示数清晰和功耗较低。当温度达到上限值时采用蜂鸣器进行报警,同时单片机发出指令控制MOS管2N700的通断来打开降温所用的风扇。当温度值不到温度下限值时,继电器驱动加热片开始对环境进行升温。

数字温度计设计结构如图1所示,数字温度计的电路主要分为主控模块、测温模块、显示模块、温控模块(升温和降温电路)这四大块。通过测温模块将温度数据通过单总线传输到主控模块,由单片机内部向显示模块发送指令。于此同时单片机内部还对该温度数值进行分析与设定的温度上下限进行对比再次得出指令输出控制升降温模块。

图1 数字温度计设计结构

2.3  小结

本章了讲述了数字温度计的确切使用方法和功能要求,分析了数字温度计需要的器件的选择,同时给出了设计思路和方案。

3 数字温度计的硬件设计

3.1 单片机主控电路

单片机(Microcontroller Unit,MCU)是一种集成在集成电路芯片上的微电脑系统。这种一体化的设计让单片机在嵌入式系统和控制应用方面大受青睐。CPU是单片机的核心,负责执行程序指令、进行数据处理和控制整个系统的运行。CPU包含运算器和控制器,各负责不同的工作。而CPU每执行一条指令所需要的时间是以机器周期为单位的时间,完成一条指令的时间通常是1到4个机器周期。早期的单片机并不是使用的RAM和ROM存储器,而是OTPROM来存储单片机内部的程序,这种存储器只能写一次程序并且无法更改,如果发生了程序写错的情况也只能更换一个单片机再重新写入程序,这样不仅操作麻烦并且会有很大的浪费。到后期,单片机内部的存储器换成了具有读写功能的RAM存储器,可以随时修改写入的数据并且是无限次的修改,大大提高了工作效率。一般我们使用的51单片机是指IntelMCS-51体系架构下的一系列的单片机,有Atmel的AT89C51、AT89C52,NXP的P89V51,深圳宏晶科技的STC89C52等51单片机[10]。

单片机是集成度极高的微控制器,已经成为现代家电控制系统的核心部件。在冰箱的温度管理、空调的温度调节、洗衣机的洗衣流程控制等方面,单片机通过精确的数据处理和智能决策,显著提升了家电的性能和用户体验。有的内部甚至不止一个单片机而是好几个单片机一起作用,比如我们一直使用的计算机。除此之外,单片机在工业控制、医用器械、汽车、智能系统等领域中也发挥着不可或缺的作用。

单片机主控电路如图2所示,STC89C52的RST引脚外接复位电路,XTAL1和XTAL2引脚连接12MHz晶振。单片机时钟源来源于外接晶振回路,为单片机完成指令提供了所需的时钟信号,晶振电路通常由12MHz晶振和两个22pF电容组成。其中复位电路的作用是在单片机上电或发生非正常情况时,可以使单片机CPU等内部的寄存器恢复到最初始的状态。

图2 单片机主控电路

3.2  DS18B20温度测量电路

DS18B20温度传感器是一个新型的单根输入输出数据线的数字温度传感器,最大的好处是可以直接获得温度的数值,读出被测量的温度而不需要通过A/D转换器。DS18B20数字温度传感器除接线方便外,DS18B20的封装也远不止一种,如管道式,螺纹式,磁铁吸附式,不锈钢封装式[11],有LTM8877、LTM8874等。此外,DS18B20还有着超高性价比、超小体积、正负温度均能测量等众多优点。其温度测量范围是-55℃~125℃,测量所得值可根据使用情况和要求设置不同分辨率,不同的分辨率可获得9~12位数值的温度值,分别为7位整数位、1位符号位和1~4位小数位。

DS18B20温度测量电路如图3所示,单片机与DQ数据输入/输出引脚相连,并且当测量温度不超过100摄氏度时可采用寄生电源方式,DS18B20可以从单总线上获取测温时所需要的能量,即DS18B20的VDD、VDD引脚接地且DQ引脚连接单片机。而本文研究的数字温度计采用的DS18B20温度感应器电路不采用单片机进行供电,而是外部的电源为其供电,此时的VDD连接的不是地而是外部3~5.5V电源Vcc,这是考虑到温度计可能会在超过100摄氏度的环境中进行使用。而DS18B20的GND引脚与外部地相接即可。

3 DS18B20温度测量电路

DS18B20内部有三大部分,分别是64位激光ROM、温度测量传感器和非易失性的温度报警触发器TH和TL[12]。掉电存储电路如图4所示,为了保证已经设置的温度上下限在下次上电使用时不再重新设置,即掉电存储功能,本文设计的硬件电路将在单片机外部外接一个EEPROM存储器AT24C02。

图4 掉电存储电路

3.3  LCD1602温度显示电路

LCD1602液晶显示屏有着体积很小,功耗很低,价格便宜等一系列优点。LCD1602液晶显示屏是字符型的液晶显示器,一共能显示16×2即32个字符,一般工作在4.5~5.5V的电压下[13]。LCD1602在使用之前,应先将字符写到相对应的RAM地址以显示内容。由于LCD1602显示速度较慢,每次操作前必须检查读忙标志位80H,确保其为低电平,才能进行指令和数据的写操作write_com和write_data,否则指令写入失效,这样可以避免数据丢失或显示错误,保证正常工作。

LCD1602温度显示电路如图5所示,地和LCD1602的VSS引脚接,VDD引脚接在5V电源VCC上,当VO接到电源时,显示屏的对比度最弱此时显示屏最暗,反之VO接地时对比度是最高的最亮的,在VO与电源和地之间接上一个10KΩ的电位器来调整显示屏的亮度即对比度,用以达到最好的显示效果。R/S寄存器选择端引脚与P2.7负责了数据和指令寄存器的选择、R/W读写选择端引脚与P2.6负责指令的读还是写操作和EN使能端引脚与P2.5相连。D0~D7引脚是8位数据输入输出引脚,依次与单片机的P0.0~P0.7通过一个排阻相连,连接排阻的目的是防止显示屏电压过高导致损坏。BLA引脚和BLK引脚,这两个引脚分别与5V电源和外部地相接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值