基于单片机的冷库温度监控系统设计

摘 要

在日常生活生产过程中,经常要用到温度的检测以及控制,温度是也是日常生产生活中的重要参数之一。在生产过程中,为了进行高效有序的生产任务,我们需要对他的主要参数进行有力的监控以及控制。传统的测温都是以热电偶热电阻测出电压进行转换输出,需要太多硬件支持,过为复杂,本次设计我们采用数字式传感器作为主要的测温元件,刚好解决了这个问题。
  本次课题研究是在STC89C52RC单片机的作为主控芯片,采用美国DALLAS半导体公司推出的改进型DS18B20数字式温度传感器,以及其他两种数字式温度传感器,AHT10数字式温度传感器,DHT22数字式温度传感器。传感器遵循单总线协议和I2C协议,通过电平时序驱动,三种传感器都可直接测出温度值,把采集到的温度发送到LCD1602上进行显示,最后通过串口转换电路发送实时采集到的温度发送到上位机进行实时监控,避免了温度转换电路及其他复杂电路,体现了设计低成本和易使用的特点。设计监控系统的温度范围在-20℃ — +10℃,测量精度为0.5℃。系统加
入了声光报警电路,可设计温度报警上下限,通过按键修改温度上限和下限,设计人性化,一旦温度超限就会通过控制启动声光报警,同时上位机也有相应的报警措施,系统设计精度高,设计合理,功能实用。
关 键 词:STC59C52RC,传感器,温度监测,LCD1602,上位机

第1章 绪论

1.1设计背景及意义
  在社会当下,科技的不断发展也同样带动人们的消费,人们的消费水平提高了,重点也逐渐放在了食物上,对食物的要求也会更高,也同样对食品质量要求严,然而冷藏食物的温度也是食物保存好的一个重要指标,食物在冷藏的保存的情况下就需要实时监控温度,才能确保食物的储存能在一个合适的温度下进行保存。在我国社会发展需求下,大型冷库的需求也会越来越多,需要贮存的食物也是五花八门,不同的食品有自己的工作温度。
  在现实冷藏冷冻的食品当中,人们需要实时准确掌握库房中每个库房的温度情况,这个是必要的,这样才能让工作人员实时了解各个库房中温度的情况下做出相应的判断,当人不在实时监控的情况下,还应该有相应的报警措施用来提醒操作人员做出正确应对,可见,研制一套实用的冷库温度监控系统是多么必要的。
  本课题设计的温度监控系统是一套测量精度高,课题设计系统采用的是52类单片机作为主控芯片,外接几个不同的数字式传感器作为监测测温模块,省去了繁杂的转换电路,设计简便,是一套可用性强的系统,能够实时监控个多冷库中实时的温度,把采集到的温度发送到上位机上显示,提供监测到的温度数据,在众多繁杂的冷库当中,节省人力成本,一个上位机就能同时监控多个监测点的数据,通过数据比较实时采集到的冷库温度以便做出相应的操作,具有一定的应用价值。
1.2国内外研究现状
1.2.1国内研究现状
  在国内,1995年开始,我国开始建造第一座贮藏肉制品冷库,1968年建成第一座水果冷库,1978年建成第一座气调库[4]。当前我国已经有较多的储藏冷库,其中大型冷库一般采用以氨为制冷的集中式制冷系统,这期间系统是比较复杂的,人为不好管理,且难以实现使用自动化技术来控制[4]。在我国现在建成的冷库当中,土建冷库相对来说是较多的,但当时我国的自动化水平技术普遍偏低,达不到自动化控制需求。我国人口基数大,食品需求更是多,对此,食品的保鲜是一个重要的工程,贮存过程中就是为了尽量避免食物流失过多的营养成分。我国在水果储存方面已经拥有多达几百万平方米的冷库储存面积,仓储能力高达200多万吨,其中机械冷藏库超过100万吨,普通冷藏库也多达100万吨[4]。我国贮藏冷库中高温冷库居多,同时低温冷库也占比例不小,冷库也在普通的冷库中慢慢向多品种的气调冷库更迭,对冷库的监测技术也是要求越来越严格,其扮演的角色不可多得。在未来,冷库温度监控系统会被广泛应用,对冷库温度监控系统的研究力度也在加大,这能大大保障未来冷库温度监控在冷冻方面的实施与应用。
1.2.2国外研究现状
  在国外,上世纪末期时制冷系统就已经变得常见,70年代之前采用以氨气为制冷剂的制冷系统,70年代末逐渐采用以R22为制冷剂的分散式的制冷系统[4]。技术虽然在更迭换代,但冷库温度监控管理技术的发展趋势不变,温度的采集系统也越来越完善,精度也越来越高,数字式的温度传感器高速发展,得以让温度的检测更简变,电路越来越简单,但是测出来的数据也是精度越来越高,让数据更完善。冷库是冷藏业发展的基础,能够有效贮存一些因温度过高或过低发生腐烂变质的食品,水产等运输行业等也有了保障,有效保证了食品的质量,保鲜食品,让食品在适宜的温度下贮藏更久也得以保存它的基本风味不变,避免了因销售不及时或者处理不及时等产品出现腐烂变质等情况的发生。当冷库监控系统投入使用后,能够有效实时显示各个冷库内的实时温度,通过记录分析相关数据,找到最具价值的贮存产品的温度,有力保障产品。

第2章 系统设计方案与论证

2.1课题设计要求
1、 用液晶显示对温度等大小进行显示;
2、 各点温度监控范围为-20-10℃;
3、 对冷库实现不小于3个点的温度监测;
4、 温度采集的精度:0.5℃,显示分辨率0.1℃;
5、 对监测温度进行数据比较和分析,实现冷库状态的评价;
6、 设置温度的阀值,超限报警提示;
7、 选择合适的通信方式实现上位机通信功能,并实现冷库温度的显示等;
2.2总体系统方案初步设计与选择
2.2.1热电偶温差电路
  选取热电偶温度差线路测量温度,气温检测部分是可以运用低温热电偶,热电偶的组成是由两个焊接固定的异金属构成,热电偶所产出的热电势由两种方式组成,一种是金属接触所产生的,另外一种是单一的温差电势组成。将带有两种以下不同结构材料温度的导体或半导体材料A和材料B连接在起来,构成的一个连续闭合回路,就构成热电偶温度t端为连接感温端的称为热测量端,温度t0端则为连接热仪表温端称它为温参比端或感冷端,当两个导体材料A和导体B上的每两个执着点的t和温度t0点之间都存在一定温差时,就可能在闭合回路过程中产生一个电动势EAB(t,t0),因而能在闭合回路过程中迅速形成电流,这种现象被称为热电效应,热电动势就是这样形成的[1]。热电偶样也是根据热效应的工作方式来实现,热电势的变化大小一般与电压t和热电偶t0之比差的变化大小直接有关。当一个热电偶两端的相邻两个热电极材料温度已知时,由热电偶两端回路间热电势值的分布理论可以知该热电偶回路两端之间的热电势差可以用下式来表示:
EAB(t,t0)=EAB(t)-EAB(t0)[1];
式中 EAB(t,t0)-热电偶的热电势[1];
EAB(t)-温度为t时工作端的热电势[1];
EAB(t0)-温度为t0时冷端的热电势[1];
  从上式可看出!当工作端的被测介质温度发生变化时,热电势随之发生变化,因此,只要测出EAB(t,t0)和知道EAB(t0)就可得到EAB(t),将热电势送入显示仪表进行指示或记录,或送入微机进行处理,即可获得测量端温度t值[1]。数
据采集部分则使用带有A/D 通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D 转换电路,感温电路比较麻烦[1]。
2.2.2数字温度传感电路
  数字式温度传感器通过对外界物理量的转化,就比如将外界的温度物理量和湿度物理量,通过敏感元件设计相应的电路转换成计算机或者能够对温度直接采集并以数字形式读取的设备,与传统的热敏电阻传感器相比较,热电偶传感器有所不同的是,数字式温度传感器使用集成芯片,它们多采用单总线技术和I2C协议技术,能够减少数据端口的使用,对外的抗干扰能力也有所提高,提高测量所得数据的精度,数字式温度传感器,顾名思义就是能够以数字信号提供给主机进行处理,让数据的采集与处理变得更简便。集成电路快速发展,使得原本需要更多电路设计去完成的设计,如今只需要将它们集成在一个芯片上,这样就简便了电路的设计,有效降低了成本,让搭建电路变得简单而有效,使得调试也变得简单化起来,大大缩短了设计周期。
2.2.3方案选择
  设计中,正确采集温度是设计核心,测量结果精度需要符合设计要求,同时也要体现出测量的简便。以上两种电路方案中,能够看出热电偶温差电路测温装置测温范围小,测温电路复杂,线性误差大;采用第二种数字温度传感电路设计方案,测温电路较于第一种更简单,测量精确度更高,实用方便,故而采用第二种数字温度传感电路方案。
2.3系统总体方案实现
  按本系统的功能实现要求,系统的设计可分为六大方面去完成,分别主控单片机、温度采集模块、显示模块、声光报警模块、按键控制电路模块、串口通信模块。系统总设计方案如下图 21所示。在这里插入图片描述

图 21系统框图
  单片机的控制模块主要是完成指令的发送以及数据的接收处理任务。本设计采用的是STC89C52RC芯片作为主控
芯片。温度监测模块主要是将监测到的温度值传给单片机处理。采集的温度采用LCD1602显示,单片机将经过处理的
数据发送到液晶显示上实时显示。报警电路模块主要运用的是声光报警,设置温度阈值,当温度超过阈值时,执行
相关程序,指示灯发亮、蜂鸣器做出相应报警。串口通信模块可将实时接收到的数据传输到上位机上,实时监控显
示,同时上位机也设置报警提示指示灯用于提醒温度过载报警。
2.4主控芯片的选择
  单片机是种数字集成芯片,在很多领域都能看见它的身影,本次所介绍的单片机是52类单片机,在51的基础上进行了升级。STC89C52RC单片机是由STC公司所生产研制的是一种具有低功耗、高性能设计的COMS8微控制器,具有8K字节系统和可编程的Flash存储器[2]。STC89C52RC单片机,升级过后做了多处细节修改,修改过后的单片机相比于传统系列的单片机增加了许多功能,自然而然性能也就提升了。STC89C52RC单片机可以按照旧的方法对系统进行主要程序编程,也同时可以直接实现在线编程,方便用户使用。其还具备一大优点是还可以将通用的微处理器芯片和高性能Flash存储器技术结合应用在一起,特别是在使用时可以被反复多次擦写,它高性能的Flash存储器能够极大有效的降低产品了设计开发制造成本[2]STC89C52RC最简单且最基本的一个工作原理电路是通过在单片机外围电路串接上的一个晶振电路且外加了一个复位电路,单片机本身也因此就完全可以直接开机进行正常运行工作了。
2.4.1STC89C52RC单片机引脚功能
VCC接电源、GND接地。
  P0口:P0口有八个输入输出以及数据并在一起的引脚,最低为是P0.0,最高位是P0.7。P0口采用的输出方式是开漏输出,当P0口要用做外部数据存储时,P0口也能作为通用的数据输入输出端口。P0口作为数据或者地址端口时,不需要外接上拉电阻,只有当P0口作为通用输入输出端口时需要外接上拉电阻,因为其本身就是开漏输出模式,输
出能力弱,同时P0口带负载能力为8个TTL电平。
  P1口:P1口是最低位为P1.0,最低位为P1.7,其内部带上拉电阻,是个8位的准双向I/O口,同时P0口带负载能力为4个TTL电平。当P1口为高位时,此时内部为高,用作为输入,P1口为低位时,这个时候外部被下拉,作为输出电流。
  P2口:P2口中,P2.0为最低位,P2.7为最高位,同时也是一个内部自带上拉电阻的端口,每个P2口带负载能力为4个TTL电平。当P2口为高位时,其内部的上拉电阻被置高,此时作为输入状态,当P2口的作为低位时,此时它的外部被拉低作低位,作为输出状态,输出电流。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 
  P3口:P3口中,P3.0为最低位,P3.7为最高位,同时内部自带上拉电阻,8位准双向I/O口,每个P3口带负载能力为4个TTL电平。当P3口为高位时,内部的上拉电阻也会被置为高位,此时用作输入状态,当P3口为低位时,外部电平就会被拉低,此时就可以作为输出状态。
  除了以上单片机常用的端口还存在着其他的地址/数据复用端口,P3.0为RXD(串行输入),P3.1为TXD(串行输
出),P3.2为 (外部中断0),P3.3为 (外部中断1),P3.4为T0(定时器0外部输入),P3.5为T1 (定时器1外部输
入),P3.6为 (外部数据存储器写选通),P3.7为 (外部数据存储器写选通)。
2.5数字式温度传感器的选型
2.5.1DS18B20温度传感器
  DS18B20,温度转换时间较短,同时也是一种精度高抗干扰能力强的数字温度传感器。 DS18B20测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1[7]。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入[7]。计数器1和温度寄存器被预置在-55℃所对应的一个基数值[7]。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温。
1)DS18B20功能特点
(1)采用单线接口,顾名思义,只用一根信号线与主控芯片连接即可与主控芯片实现双向通讯,使用用户也可容易
搭建电路;
(2)传输串行数据,无需添加过多的元件即可完成测量;
(3)可直接通过信号线供电,让其系统结构变得简单化,更可靠;
(4)可实现一根数据线挂多个传感器,同时测量多个点位;
(5)测温范围为-55℃+125℃,在-10℃85℃范围内误差为±0.5℃[8];
(6)可编辑数据为9~12位,转换12位温度时间为750ms(最大);
(7)在使用时,人们可以设定上限温度报警和下限温度报警的阈值;
(8) DS18B20的分辩率由用户通过EEPROM设置为9~12位。[8]
2)DS18B20接口定义
(1)GND为电源地。
(2)DQ为数字信号的输入/输出端。
(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
3)DS18B20初始化
(1)先将数据线拉高电平置为1,稍做延时,再拉低为0。做精确延时750ms左右后拉高数据线电平置1;
(2)判断,等待主机的回应,若主机回应0表示传感器接收到主机回应,若无回应表接收不到回应;
(3)最后稍做延时,然后将数据线的电平置为1结束初始化。
4)DS18B20写操作
(1)进行读写操作时,首先需要将数据线从高电平1置0,稍作延时15微秒;
(2)对数据线进行判断,高电平写入1,低电平写入0,周期性复写;
(3)完成一个周期的复写需要延时45微秒左右,重复上述步骤,直到数据被发送完,最后将数据线置为高电平
1。
5)DS18B20读操作
(1)数据线从高电平1拉低置低电平0,稍作延时1微秒,再把数据线拉高,此时产生一个读操作信号;
  (2)数据线被主机从高电平1拉低置低电平0,延时时间15微秒到60微秒,此时主机读取数据,读取周期最短时
间不能小于60微秒。
2.5.2AHT10传感器
  AHT10,它输出的信号是经过标定的,是新一代的数字传感器,通信方式是标准的I2C协议通信。其配备一个全
新设计的ASIC专用芯片、一个经过改进的MEMS半导体电容式湿度传感元件和一个经过标准的片上温度传感元件,它
的性能得以大大提升,经过改良后的传感器在恶劣的环境下使得性能更加稳定,每一个传感器都经过校准和测试,
让它的性价比更高,应用在各种相关的环境监测控制。
1)AHT10功能特点
(1)数字输出,I2C接口,供电电压为DC2.3-3.3V。
(2)优异的长期稳定性。
(3)响应迅速、抗干扰能力强。
(4)适用范围广、性价比高。
(5)测量湿度范围0~99.9%RH,湿度精度±3%RH(典型值).
(6)测量范围温度-40~85℃,温度精度0.5℃(典型值)。
2)AHT10功能引脚定义
(1)VIN为供电电源输入端。
(2)GND为地线。
(3)SCL为I2C通信模式时钟信号。
(4)SDA为I2C通信模式数据信号。
3) AHT10传感器启动流程
  (1)传感器上电,电压选择介于1.8V到3.6V之间,上电完成后传感器需要20毫秒的的时间来达到空闲状态,这个
时候的SCL为高电平,等待准备接收主机MCU发送的命令[6]。
  (2)启动/停止时序,每个传输序列都以Start状态作为开始,Stop状态作为结束。如下图所示启动传输状态,
SCL为高电平时,SDA从高电平向低电平转换(Start之后,BUS总线一般被认为处于占线状态)
  下图为停止传输状态,SCL高电平时,SDA线电平由低到高,如图 25所示(Stop之后,
  (3)发送命令,在启动后发送初始化命令0xE1代表温湿度测量,读取流程,需要在上电后等待40ms,接着发送
0xAC触发测量命令,等待80ms待测量完成,然后读取。
4)AHT10传感器的温湿度转换
(1)相对湿度转换
相对湿度RH都可以根据SDA输出的相对湿度信号SRH通过如下公式计算获得(结果以%RH表示)。
(2)相对温度转换
温度T都可以通过将温度输出信号Sτ代入到下面的公式计算得到(结果以温度°C表示) 。
2.5.3DHT22传感器
   DHT22数字式温度传感器是一种已经校准的温湿度复合型传感器,本次使用的是单总线通信协议的传感器,它
有专用的数字模块采集技术,使得传感器稳定、可靠,单线制串行接口,使得系统集成变得简易,拥有较小的体
积、低功耗,传输距离较远,适用于各种应用场所。

  1. DHT22功能特点
    (1)全部校准,数字输出。
    (2)稳定性较强。
    (3)较长的信号距离传输。
    (4)功耗低,能适应各种环境下工作。
    (5)响应快、抗干扰能力强。
    (6)测量范围大,性价比高。
    (7)温度范围:测量范围—40~ +80℃,精度为±0.5℃,分辨率为0.1℃[12]。
    (8)湿度范围:测量范围0~99.9%RH,精度为±2%RH,分辨率为0.1%RH[12]。
    2)DHT22功能引脚定义
    (1)1脚VCC供电引脚,3—5V DC。
    (2)2脚为SDA串行数据双向口。
    (3)3脚为GND接地脚。
    (4)4脚为NC空引脚。
    (1)DHT22上电后至少延时两秒,等待不稳定状态过后才开始读取数据。
    (2)此时主机与DHT22连接的I/O口设置为输出模式并输出1ms的低电平。
      (3)主机输出起始信号后需要释放总线,此时主机的I/O口需要输出30us的高电平,上拉电阻的存在使得I/O口一
    直是高电平[12]。
      (4)接收应答位,根据I/O口的电平状态来判断应答信号,当I/O口先经过80us的电平再经过80us的高电平,此时
    为应答信号,若超过最大应答时间85us则判定为超时。
      (5)主机发送一次开始信号后,DHT22从低速模式转为高速模式,开始信号结束后,DHT22送出40位数据,此时主
    机接收40位数据位,数据为格式为16位的湿度数据+16位的温度数据+8位的校验位[12]。
      (6)校验位接收,湿度高8位+湿度低8位+温度高8位+温度低8位=末8位=校验和,则表示接收到的数据是正确的
    2.6显示和通信方式的选择
      显示方式的选择有多种,常见的显示器有CTR、LCD、以及LED等显示方式,LCD显示也是一种常见的显示器件,
    本次设计选择低成本的LCD1602作为显示模块,它能够显示16*2个字符,稳定工作电压4.5V—5.5V,它有电路结构简
    单、体积小、便捷等特点,也符合设计要求,可作为显示模块显示数据。
      由于51类单片机没有集成的USB控制器,不支持USB直接下载,所以本次采用的是USB转TTL,集成在USB上,TTL
    指的是晶体管逻辑电路的电平,转换以后就能够实现下载传输数据,同时实现与上位机之间数据传输。
    2.7本章小结
      本章明确介绍了课题要求,依照课题确定基本的课题设计方案,对可行性方案进行不同的论证,对不同方案进
    行取舍,根据要求确定选择STC89C52RC作为主控芯片、DS18B20、AHT10、DHT22三个数字传感器作为符合精度要求和
    分辨率要求的传感器,以及显示模块采用LLCD1602,电源采用USB转TTL电源接口,及串口通信模块。

第3章 系统硬件结构基础设计

3.1系统硬件总体设计
  如图所示,主控芯片使用STC89C52RC芯片,采用三个数字式温度传感器作为测温模块,三个传感器经过其内部
计算分别将采集到的温度数据传回单片机,单片机设置相应的温度阈值,蜂鸣器和LED灯组成声光报警。采集完成后
的温度数据经过处理显示在LCD1602,单片机将数据处理经串口发送至上位机显示,如图 31所示。在这里插入图片描述

图 31 系统硬件结构图
3.2单片机最小系统设计
  单片机的最小系统指的是单片机能够正常工作的最小硬件电路单元,其中包含单片机的复位电路和时钟电路。
在这里,复位电路决定工作的复位状态,通俗一点来讲,复位电路就是当单片机运行程序发生错误而导致不能再继
续正常工作时,按下复位电路中的按键,这样单片机就能重新开始执行程序,死机或者执行错误的程序就得以释
放,硬件得以重新开始工作,这样就能使单片机恢复其正常工作。
  时钟电路,时钟在单片机中非常重要,时钟的频率能够影响单片机的速度,为单片机工作提供一个稳定准确的
时钟源。时钟也分两种,一种是内部时钟,另一种是外部时钟。时钟电路中通常选两个电容大小30PF的瓷片电容,
分别连在XTAL1和XTAL2上,然后并联一个的晶振,本次设计的时钟电路为12MHZ的晶振,晶振的频率越高,系统的时
钟频率也就会越高,单片机运行的速度也会加快,如图 32所示。在这里插入图片描述

图 32 单片机最小系统电路图
3.3电源电路设计
  此次设计采用的是USB线外接电源,USB转TTL电平接口,只要将USB插头接到电脑,下载一个串口驱动,就能实
现与单片机间的串口通信,同时设置一个电源开关S1,保证用的时候电源开启,不用的时候保持关闭状态。1脚接电
源地,2脚接电源输入,3脚和4脚分别连接到单片机的P3.0接口(RXD)、P3.1接口(TXD),用于数据与单片机的通信。
因单片机高电平为+5V,低电平为0V,而我选择的电源是从计算机上接下来,同时也能实现单片机与上位机的通信,
因此电平需要转换才能够使用。起初选择CH340G作为电平转换芯片,但这会增加硬件电路的复杂性,最后考虑去掉
CH340G电平转换芯片,采用集成在USB上的方式,避免电路出错,减少一些不必要的麻烦
3.4显示电路设计
  在众多显示方式中选择LCD1602液晶显示,在不同厂家生产的LCD1602,其特性也是基本一样的,当然也有很多
不同的厂家有字符颜色不同、背光颜色不同的LCD液晶显示。LCD液晶显示功耗低、使用简单,能够显示各类数据,
其可以显示16*2个字符,以0x80、0xc0分别作为其第一行和第二行首地址,以0x8f、0xcf分别作为其第一行和第二
行的末地址。
  显示电路设计,VSS接电源地,VDD接电源正极,VO是液晶显示偏压信号端,连接一个可调电阻调节液晶显示的
对比度,RS为数据和命令端,RW为数据读写端,E为使能端,DB0-DB7为数据端连接在单片机的P0口[2]。P0口没有高
电平输出能力,需接上拉电阻来提高其的电平驱动能力。
3.5温度监测电路设计
  根据方案论证选择数字式温度传感器设计监测电路,DS18B20、DHT22是以单总线通信协议的工作方式驱动传感
器工作,而AHT10是以I2C通信协议的工作方式来驱动传感器工作。DS18B20的数据端口连接到单片机的P1.7引脚,
DHT22数据端口连接到单片机的P1.6引脚,AHT10的数据端SDA和时钟端SCL分别连接到单片机的P1.1和P1.0引脚上,
3.6声光报警电路设计与按键电路设计
3.6.1声光报警电路设计
当监测到的温度值超过设置的阈值时,为了能更好的让人发现异常,采取声光报警的方式,让人能够迅速从听觉和
视觉上得到异常信息的报警电路。LED2、LED3和LED4分别接在单片机的P1.2、P1.3、P1.4,作为三个数字式温度传
感器的报警提醒装置。P1.5接蜂鸣器,作为声音报警,当三个传感器采集到温度传回单片机经过处理后,单片机通
过原先设定的阈值判断,控制LED的亮灭报警和蜂鸣器的声音报警,实现超过上限阈值或者下限阈值都实现报警,
3.6.2按键电路设计
  按键电路设计采用的是三个触角轻触开关组合,K2、K3和K4分别连到单片机的P2.4、P2.3和P2.2引脚,K2引脚
实现温度显示界面与温度设置阈值界面以及上下限阈值的切换,K3和K4则实现温度阈值的加和减,
3.7本章小结
本章确定了硬件电路的总体设计,分模块对电路进行设计,对不同模块的电路设计进行有效的论证与讲述。

第4章 系统软件综合设计

本次设计使用的软件Keil系列软件,以及Visual Basic软件来完成。Keil软件是Software公司出品的51系列兼
容单片机C的语言软件开发系统,C语言拥有功能强大、可读性高、可维护性大等特点,可见优势明显[3]。Visual
Basic是微软公司旗下开发的一种通用的基于对象的程序设计语言,其不需要编写大量代码去描述界面元素的外观和
位置,而是把预先建立的对象添加到界面上就行,能够生成类型安全和面向对象的应用程序[10]。
4.1主程序设计
  主程序是程序中重要的部分,程序的开始执行得先经过编译,编译是从主函数开始编译的。本次设计中,程序
分模块化处理,这样处理的使得程序容易区分、移植性高、容易维护。程序设计包含LED1602显示部分、三个传感器
的驱动程序部分、I2C通信协议部分、按键扫描部分、延时函数部分以及主程序驱动函数在这里插入图片描述
,程序的最终确定如图 41所示。

图 41 程序设计模块图
首先上电,单片机以及硬件初始化,温度传感器采集数据后发送至单片机处理调用显示子程序,将采集的温度数据
在LCD1602上显示并通过串口发送至上位机显示,主程序流程图如图 42所示。在这里插入图片描述

图 42 主程序设计流程图
4.2温度采集程序设计
传感器上电后初始化,然后执行读写数据,发送温度转换指令,获取温度值,如图 43所示在这里插入图片描述

图 43 温度采集程序流程图
4.3温度报警电路程序设计
  单片机上电,程序调用传感器子程序,写入主程序命令,写入数据子程序,传感器发送温度转换命令,再到温
度采集,判断采集温度是否大于设置阈值,调用声光报警子程序,若温度传感器采集的温度超过设定的上限下限阈
值,蜂鸣器和指示灯灯就会做出相应的提示报警,报警程序流程图如图 44所示在这里插入图片描述

图 44 声光报警电路程序流程图
4.4上位及程序设计
  本次上位机设计主要是将传感器采集到的温度数据实行显示。是单片机通过以串口的方式,把监测到温度数据
送至上位机上进行显示。上位机的设计主要是用Visual Basic软件来实现,使用Visual Basic中的通信控件MSComm
来实现上位机与下位机之间的通信,通信控件MSComm是软件里提供的标准的通信控件,有着串行通讯的属性且提供
RS232数据通信协议,方便用户使用,通信流程图如图 45所示在这里插入图片描述

图 45 上位机程序设计图
   程序界面的设计相对简单化,界面的设计包括串口的选择、串口的打开与关闭状态、时钟计时、指示灯、温度
显示以及通信控件。首先添加Frame框架,在框架里添加两个label分别设计属性端口和状态,添加一个Combo作为通信选择端口,设置COM4为初始端口,时钟控件作为时间计时,MSComm控件作为通信传输,添加4个形状作为状态灯和
报警灯,再添加三个Text文本控件作为通信数据的接收,基本的界面设计如图 46所示在这里插入图片描述

图 46 上位机界面设计图
各主要控件的功能介绍与使用如下:
   Combo控件实现通信端口的选择,当通信端口是打开状态,COM口端根据private sub下串口端设计添加的串口
数可选择。打开串口与关闭串口使用command控件的Click事件来实现,当串口是关闭状态时,此时command的
caption属性设置为“打开状态”,此时Portopen串口false表示关闭状态,状态指示灯为黑色关闭状态。当command
的caption属性设置为“关闭状态”,此时portopen串口ture表示开启状态,可接收单片机发送的数据,状态指示灯
为红色状态打开状态。时钟控件作为数据的传输间隔时间,主要参数interval设置数据传输时间的间隔。通信控件
MSCoom有两种通信方法,分别是查询法和驱动法。本次用到的是查询法,它适合比较小的应用程序,是执行完一串
口操作后,一直检查CommEvent属性,检查是否发生,主要编写数据的接收程序与单片机进行通信,通信中Settings
用来设置返回的波特率、校验位、数据位和停止位,波特率是根据单片机上所使用的晶振来判断,对不同的晶振有不同的通信速率。
4.5本章小结
  本章介绍了系统软件各个模块的设计与描述。从用到的开发软件,按照硬件电路各个模块设计相应的驱动程序,最后进行对上位机的程序设计,实现整个系统的驱动。

第5章 系统综合调试

5.1系统软硬件综合调试
  本次课题设计用来完成硬件电路绘制以及PCB板制作的是Altium Designer,其综合了电子产品所需的开发技
术,软件通过原理图设计、PCB的编辑与绘制和最后的布线输出制图文件,软件功能较为完善,为电子电路设计者提
供了较为方便的设计软件,熟练使用这一软件必定能提高设计者的设计效率。本次设计缺少电路仿真,因设计中的
元件仿真软件不存在模型,所以缺少仿真过程。
  LCD1602液晶显示及电源测试:USB接口连接电脑,此时开关闭合状态,当开关打开LCD1602液晶显示发光证明电
源电路是有效的,如图 51所示。在这里插入图片描述

图 51 通电调试图
  数字温度传感器模块测试:编写相应驱动程序,测试三个传感器对温度的采集情况。检测通电后,传感器是否
工作,确定传感器工作后,稍微等待,传感器就能采集到相应温度显示在LCD1602上显示,测试通过,能够正常采集
测试温度,如图 52所示。在这里插入图片描述

图 52 显示电路测试图
  按键模块测试:K2按键,作为设计中的界面切换按键以及上下限阈值的切换按键,当K2按键按下就能够切换到
温度上下限阈值切换界面停留在上限阈值设置,K2按键再次按下时此时跳到下限阈值设置,当K3或者K4按键按下
时,上下限阈值就会相应的加一或者减一,K2按键再次按下就会回到起初的温度显示界面,温度报警测试:当把温度的上限阈值设置到28℃以下时,此时LED灯亮、蜂鸣器会发出声响,同时多设置几个上限阈
值就能够确定报警电路是否正常,经过测试,报警电路正常,
  整体测试:经过代码的整合后,上电测试,三个传感器也能够正确采集数据,送至单片机处理后LCD1602也能够
正常显示,声光报警电路模块也正常,上位机接至COM3端口与单片机通信,实时显示传感器采集到的数据,同时上位机程序也和硬件电路有着同样的报警提示,能够提供报警信息,测试结果如图 55所示,上位机接收数据结果如图 56所示。在这里插入图片描述

图 55 完整硬件电路测试图在这里插入图片描述

图 56 上位机显示界面图
5.2存在的问题及解决方法
  (1)在原理图设计时,有一部分没有考虑到,在电源输入端接一个LED电源指示灯,没考虑LED灯的工作电压,
后面把指示灯去掉,限流电阻换成导线,这样就解决了这个问题,对本体电路没有影响。
  (2)在程序设计时,有部分传感器没有做出回应,在反复检查程序时才发现是传感器写完读写数据后没有设置
应答位,没有应答位,这样传感器就不能及时收到主机的回应,导致传感器不能及时采集信息,后经过添加应答
位,传感器才能够正常采集发送数据
(3)在PCB画板时没及时确定变阻器的模型,导致所用变阻器还得更换,原则上没有影响。

第6章 数据测量与分析

6.1数据测量统计
  因测试范围有限,取当前十分钟内所采集到的室内温度和室外温度,取平均温度对比做误差分析,如表 61十分
钟室内温度监控表表所示:
表 61 十分钟室内温度监控误差分析表
  
温度(℃)
DS18B20 26.2 26.3 26.3 26.4 26.4 26.4 26.5 26.4 26.5
AHT10 26.6 26.6 26.6 26.7 26.6 26.8 26.8 26.9 26.8
20
DHT22 26.3 26.3 26.4 26.4 26.4 26.5 26.4 26.4 26.5
相对误差(%) 0.60% 0.30% 0.30% 0.30% 0.30% 0.30% 0.50% 0.30% 0.50%
0.50% 0.50% 0.50% 0.10% 0.50% 0.30% 0.30% 0.70% 0.30%
0.30% 0.30% 0.10% 0.10% 0.10% 0.40% 0.10% 0.10% 0.40%
  表中DS18B20室内十分钟监控温度的平均值为26.38℃,AHT10室内十分钟测得温度的平均值为26.72℃,DHT22室
内十分钟测得温度的平均值为26.39℃,假设真值为平均值,将监控所得温度数据与平均值逐一做误差分析。  
温度(℃)
DS18B20 21.9 21.8 21.7 21.7 21.6 21.6 21.5 21.6 21.4
AHT10 24.0 24.0 23.8 23.5 23.2 23.4 23.3 23.5 23.4
DHT22 23.5 23.4 23.4 23.2 23.1 23.0 23.0 23.1 23.2
相对误差(%) 1.30% 0.80% 0.40% 0.40% 0.10% 0.10% 0.60% 0.10% 1.00%
2.80% 2.80% 2.00% 0.70% 0.60% 0.30% 0.10% 0.70% 0.30%
1.80% 1.70% 1.70% 0.50% 0.10% 0.40% 0.40% 0.10% 0.50%
表 62 十分钟内室外温度监控误差分析表
  表中DS18B20室外十分钟监控温度的平均值为21.62℃,AHT10室内十分钟测得温度的平均值为23.33℃,DHT22室
内十分钟测得温度的平均值为23.09℃,假设真值为平均值,将监控所得温度数据与平均值逐一做误差分析。
  小结:通过表6-1所监控得的温度数据来看,此时的温度数据趋于平稳,各个温度传感器所测得的数据也比较准
确,相互之间的干扰较小,相对误差较小。再通过表6-2所监控得的数据来看,测得的温度一开始也都比较平稳,但
是中间偶尔有相差较大的情况的出现,可能是外界对不同传感器之间的工作存在干扰,比如风一会大一会小,传感
器之间工作需要时间,所以就出现了一下高然后又慢慢回到趋于平均值的那个温度,误差也慢慢变小,数据回归相
对准确,综上所述,不同场合将会决定传感器所测数值的准确。
6.2本章小结
  通过对传感器采集的温度做对比得出了传感器测量相对误差,传感器之间影响较小,只有在条件干扰下才会较
之前有些不稳定。社会的高速发展下,科技创新走在前沿,未来也一定会有更高精度的传感器呈现在我们的面前,
用于生活中的各个领域,以满足人们生活、产业发展以及各式各样工作的需求。

第7章 结论

本次设计研究的重点是在如何提高对温度测量的精度与准确性,提高其的抗干扰能力。基于本设计,不仅局限
于冷库温度的监控,在温度测量与监控的其他领域同样能够发挥其的作用。设计采用的是常用的芯片STC89C52RC作为主控芯片,结合三个不同的数字式温度传感器,声光报警系统,按键控制模块,以及最后的上位机同时构成一个基于单片机的冷库温度监控系统设计。设计最后单片机采用以串口通信的方式与计算机进行通信,能够把采集的温
度数值与LCD1602一起实时显示,这样的作法大大降低了人的工作,增强了设计的实用性。
  设计中也有一些难点,对传感器进行选型时需要根据所要求的精度、分辨率进行挑选,查找了大量的资料才找
到与要求相同的传感器,这也让自己的工作完成得更充实。使用Altium Designer进行电路设计,以及画PCB板,从
不熟悉到慢慢熟悉这个软件,也让自己拓充了知识范围。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值