仓库温湿度控制系统姓名学号专业班级提交日期目录摘要 (2)1 仓库温湿度控制系统设计任务和性能指标 (3)1.1 设计任务 (3)1.2 性能指标 (3)2 系统总体设计........ .. (3)3 硬件设计 (4)3.1 单片机最小系统 (4)3.2 LCD1602显示模块 (5)3.3 温湿度传感器模块 (6)3.3.1 SHT10温湿度传感器的介绍 (6)3.3.2 SHT10与单片机的接口电路 (7)3.4 报警模块 (7)3.4 按键模块 (8)3.4 控制模块 (8)4 软件设计 (9)4.1 主程序流程图 (9)4.2SHT10子程序流程图 (10)4.3 LCD1602子程序流程图 (10)4.4 输出控制子程序流程图 (11)4.5键盘扫描子程序流程图 (11)5仿真与调试 (12)5.1 调试环境 (12)5.2不足与优化 (13)6 总结 (13)7 参考文献 (13)附件1系统仿真图 (14)摘要防潮、防霉、防腐、防爆是仓库日常工作的重要内容,是衡量仓库管理质量的重要指标。
它直接影响到储备物资的使用寿命和工作可靠性。
为保证日常工作的顺利进行,首要问题是加强仓库内温度与湿度的监测工作。
传统的方法是用湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。
为解决这种传统温湿度检测主要以人为基础、依靠人工轮流值班,人工巡回查看等方式来测量和记录环境状况信息的模式,避免许多由人为因素造成的重大事故,解决效率低下不利于人才充分利用的问题,让测量更具有科学性,本设计提供了一套更方便和精确度更高的测控系统。
本设计是基于AT89C52单片机的仓库温湿度自动控制系统,采用SHT10作为温湿度传感器,LCD1602液晶屏进行显示。
SHT10使用类似于I2C总线的时序与单片机进行通信,因为它高度集成,已经包括A/D转换电路,所以使用方便,而且准确、耐用。
LCD1602能够分两行显示数据,第一行显示温度,第二行显示湿度。
这个控制系统能够测量仓库中的温度和湿度,并将其显示在液晶屏LCD1602上,同时将其与设定值进行对比,如果超出上下限,将进行报警并通过串口向PC端发送信息以及启动温湿度调节设备。
此外,还可以通过独立式键盘对设定的温湿度的上下限数值进行修改。
经过整机调试,实现了仓库温湿度控制的模拟。
1 仓库控制系统设计任务和性能指标1.1设计任务为了保护仓库储存的物品的质量,创造适宜储存的环境,当库内温湿度适宜物品储存时,控制设备不用采取措施,温湿度传感器只是对库内进行检测。
当库内温湿度不适宜物品储存时,报警装置进行报警,控制设备采取相应的措施对仓库温湿度进行调节,只至温湿度在限定的范围内。
1.2性能指标本文要设计的仓库温湿度自动控制系统,要能够及时、准确地对仓库的温度、湿度进行采集,将其显示在LCD1602液晶显示器上,然后与设定的上下限值进行比较,如果超出限制则启动温度、湿度控制设备,并通过蜂鸣器报警,直到温湿度回到规定的范围。
另外,还要能够通过按键修改设定的温湿度上下限,来满足不同物品的储存条件。
为了满足仓库储存的需要,此次设计要达到一下指标:(1)工作环境:仓库;(2)温度测量误差:±1℃;(3)测温范围:-10~+55℃;(4)湿度测量误差:±5%RH;(5)测湿范围:0~100%RH;(6)能否通过键盘电路修改上下限:能;(6)有无温湿度报警:有;2 系统总体设计本设计核心部件为AT89C51,信号采集及处理部分由SHT10构成,进入单片机后经处理后通过LCD1602显示温湿度,信号显示采用的液晶屏为5×7点阵,一行可显示16字,两行,第一行显示温度,第二行显示湿度。
通过上位机部分对测量的温湿度进行上下值的设定,应用RS-485通信方式完成测控电路与上位PC机的数据交换。
当测量超过限定值,通过超限报警处理电路对其进行处理分别显示不同的二极管灯亮,蜂鸣器产生长鸣,串口向PC端发送具体的报警信息,控制设备采取相应的措施使温湿度到达设定的范围内。
硬件中包括五个按键,对温湿度上下限进行修改。
开机后,所有器件初始化,温湿度传感器SHT11开始进行温湿度测量和计算,最后通过LCD液晶显示器显示结果。
在测量结果中有超过设定的温湿度上下限的,通过温湿度控制部分作出反应。
整体电路框图如图1所示:图1 整体电路框图3硬件设计3.1单片机最小系统图2 单片机最小系统单片机最小系统包括单片机、电源电路、时钟电路和复位电路。
时钟电路用于产生单片机工作时候所必须的时钟信号,单片机在时钟信号的节拍下逐条地执行指令。
单片机有两种时钟信号产生方式,一种是内部时钟方式,另一种是外部时钟方式。
外部时钟方式是把已有的时钟信号从XTAL1或XTAL2送入单片,一般用于有多个单片机的情况,所以本设计中时钟电路采用内部时钟方式,选用12M的晶振和两个30pF 的电容与片内的高增益反相放大器构成一个自激振荡器。
电源电路后面的模块中会单独提到,用5V的直流电源。
下面着重论述一下复位电路。
图3 上电+手动复位电路单片机的复位主要有上电复位和手动复位,之所以要进行复位,目的就是为了让单片机进入初始状态,比如让PC指向0000H,这样单片机才能从头运行程序。
因此上电的时候就要让单片机复位一次;在运行过程中,如果程序出错,也需要进行手动复位。
本设计中的复位电路就是上电+手动复位电路,复位时要让STC89C52RC的RST引脚得到2个机器周期以上的高电平。
先说说上电复位的工作原理,当单片机上电时,电源+5V 的Vcc通过10K的电阻对10uF的电容进行充电。
刚上电时,有较大的电流从Vcc经电容、电阻流向GND,由于电容两端的电压不可突变,因此仍然为0V,于是电阻的两端分得5V 的电压,即RST引脚此时的电势为5V。
随着充电的继续进行,电流会逐渐减小,电阻两端的电压UR=IR也逐渐减小,即RST引脚的电势逐渐减小。
过了一定时间,RST引脚两端的电压下降到不再是高电平,只要这个充电的时间大于单片机两个机器周期,就能使单片机复位。
程序运行过程中如果跑飞了、程序运行出错或操作错误使系统处于死锁状态时,就需要用到手动复位。
手动复位就是在上电复位电路的电容两边并联一个微动开关,需要手动复位时将其按下,使之接通,RST获得高电平,而且人按动按钮的时间肯定是超过两个机器周期的,于是单片机复位。
3.2 LCD1602显示模块测量到的温湿度值将显示到液晶屏LCD1602上,它可以显示2行,每行16个字符。
LCD1602共有三个存储器,它们是CGROM、CGRAM和DDRAM。
CGROM用来保存LCD1602内部固化的一些字符的字模,比如英文的26个字母的大小写;CGRAM用来保存用户自己取的字模,比如,如果要显示汉字,就必须自己去汉字字模,在这里我们都用英语字母,故不用CGRAM;DDRAM用来存储要显示的字符的字模,它和屏幕上的位置是对应的,第一行为00H 到0FH,第二行为40H到4FH。
在这里需要注意的是,在向LCD1602写入显示数据存储器地址时,根据控制指令的格式,最高位D7为1,所以写入的数据为,第一行80H到8FH,第二行C0H到CFH。
它与单片机的接口电路如下图所示:图4 LCD1602与单片机的接口电路3.3 温湿度传感器模块3.3.1 SHT10温湿度传感器的介绍SHT11是瑞士Scnsirion公司推出的一款数字温湿度传感器芯片。
该传感器内1个奄容式聚合体溺瀑元件和1个能隙式测温元件组成,并嗣1个14位A/D转换器以及1个2-wire数字接口在单芯片中无缝结合,使得该产品具有功耗低、反应快、抗干扰能力强等优点。
(1)SHT10的主要特点◆相对湿度和温度的测量兼有露点输出;◆全部校准,数字输出;◆接口简单(2-wire),响应速度快;◆越低功耗,自动休眠;◆出色的长期稳定性;◆超小体积(表面贴装);◆测湿精度土4.5%RH,测温精度土0.5℃(25℃)。
◆测温范围-40~123℃,测湿范围0~100%RH(2)SHT10的命令与时序①)SHTl0命令②;命令时序发送一组“传输启动”序列进行数据传输初始化,如图5所示。
其时序为:当SCK为高电平时DATA翻转保持低电乎,紧接着SCK产生1个发脉冲,随后在SCK为高电平时DATA翻转保持高电平。
紧接着的命令包括3个地址位(仅支持“000”)和5个命令位。
SHTl0指示正确接收命令的时序为:在第8个SCK时钟的下降沿之后将DATA拉为低电平(ACK位),在第9个SCK时钟的下降沿之后释放DATA(此时为高电平)。
图5 命令时序③复位时序如果与SHTl0的通信发生中断,可以通过随后的信号序列来复位串口,如图6所示。
保持DATA为高电平,触发SCK时钟9次或更多,接着在执行下次命令之前必须发送一组“传输启动”序列。
这些序列仅仅复位串口,状态寄存器的内容仍然保留。
图6 复位时序④状态寄存器读写时序SHTl0通过状态寄存器实现初始状态设定。
图7 读时序图8 写时序3.3.2 SHT10与单片机的接口电路图9 SHT10与单片机的接口电路SHT10采用类似于I2C的两线制串行总线,一根是时钟线,一根是数据线。
为避免信号冲突,微处理器应驱动DATA 在低电平。
需要一个外部的上拉电阻(例如:10kΩ)将信号提拉至高电平。
上拉电阻通常已包含在微处理器的I/O 电路中。
3.4 报警模块当仓库的温湿度超过上下限时,除了需要启动温湿度调节器之外,还需要进行报警,这里用到的是蜂鸣器、LED和串口。
蜂鸣器为一种采用一体化结构的电子器件,采用了直流电压来供电。
蜂鸣器分为有源蜂鸣器和无源蜂鸣器。
本设计中使用的是有源蜂鸣器,在它两端加载5V的直流电压就可以使之鸣叫。
LED在这个模块中主要是显示温湿度不在限定范围内,不同的LED亮,显示对应的物理量超限。
串口主要是当温室度超限,单片机不停地向PC端发出具体超限的物理量。
报警电路图10所示图10 报警电路图蜂鸣器工作电流一般为10mA,而单片机的I/O口只能承受几毫安的电流,因此需要加三极管进行驱动。
如上图所示,单片机的I/O口中的P3.5接PNP型三极管的基极,当P3.5为低电平时,三极管导通,5V的电压加载到蜂鸣器两端,于是蜂鸣器鸣叫;当P3.5高电平时,三极管截至,蜂鸣器不鸣叫。
串口的2、3号脚分别接单片机的P3.0和P3.1,便于与PC机进行通信。
四个LED正极直接与VCC相连,当负极出现低电平时,对应的LED亮。
3.5 按键模块按键电路图如下图所示图11 按键电路图键盘分为编码式和非编码式键盘。
其中,非编码式键盘又包括矩阵式键盘和独立式键盘。