仓库温湿度控制系统设计方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
仓库温湿度控制系统
姓名
学号
专业班级
提交日期
目录
摘要 (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 的直流电源。
下面着重论述一下复位电路。
报警模块
键盘输入
LCD1602 显示
SHT10温湿度传感器
控制部分
AT89C52 单片机
图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 按键电路图
键盘分为编码式和非编码式键盘。
其中,非编码式键盘又包括矩阵式键盘和独立式键盘。
矩阵式键盘较为复杂,一般用于按键数目较多,而单片机可用的I/O口又比较有限时。
本控制系统中只需要用到5个按键,数目较少,并且可用的I/O口充足,故采用独立式键盘,一个按键对应一个单片机的I/O口管脚。
本设计中总共用到5个按键式开关,它们用来改变设定的温湿度上下限数值。
从K1到K5,分别控制进入温度上下限设置、进入湿度上下限设置、数值加、数值减、确认并退出。
本设计中的键盘是低电平有效。
未按键时,上拉电阻保证了单片机的I/O口是确定的高电平;当某个键按下时,I/O口变为低电平。
本设计可以直接设定温湿度参数的上下限值,从而达到对温湿度控制报警的功能。
3.6 控制模块
控制模块电路图如下所示
图12 控制模块电路图
控制模块主要由直流电机、继电器、加热丝等构成。
由于单片机的输出电流一般为30-40mA,输出的低电平为0.1V左右,而直流电机的驱动电流为200mA,驱动电压为5V,继电器的驱动电流约为90Ma,所以要用三级管放大,通过继电器使电机开关吸合,避免电机不能正常工作。
控制模块的主要功能是当温湿度不在限定范围时,控制设备开始工作,使温湿度达到自己限定的范围内。
4软件设计
4.1 主程序流程图
开始
图13 主程序流程图
4.2 SHT10子程序流程图
结束
图14 SHT10子程序流程图4.3 LCD1602子程序流程图
图15 LCD1602子程序流程图4.4 输出控制子程序流程图
图16 输出控制子程序
4.5 键盘扫描子程序流程图
图17 键盘扫描子程序
为了防止抖动,按键电路中都要消抖的措施,本设计中是采用的软件消抖,在单片机检测到某个键按下后,延时10ms再监测,如果仍然按下,才视为按下了该键。
K1、K2、K3、K4、K5分别对应单片机的P2.3-P2.7引脚。
按下K1,也就是使P2.3为低电平时,进入温度上限的设置,再按一次进入温度下限的设置;按下K2,进入湿度上限的设置,再按一下进入温度下限的设置。
在每个设置里面,按K3增加限值,按K4减小限值。
设置好以后,按K5退出设置。
5.仿真与调试
5.1 调试环境
本设计用到了Keil uVision4和Proteus7.8两种软件进行联合调试。
实验中使用C语言在Keil uVision4进行编写源代码,并通过编译检查源程序中的代码是否正确。
原理图是在
Proteus7.8提供的环境中绘画。
在Keil uVision4编译无误后生成HEX文件,并将其导入
到原理图中,在原理图没有错误后就可以进行仿真。
通过仿真可以进行调试,使设计达到
要求。
5.2 不足与优化
不足:按键会出现抖动,延时时间过短致使按键按下时单片机可能没来得及响应。
SHT10测量温湿度最大误差可达到±4.5,对于一些温湿度要求较高的物品还存在较大的误差。
优化方案:对于按键出现抖动的情况,我们可以增大延时时间来,解决这个问题。
对于一些对温湿度要求比较高的物品,我们可以使用其它精度比较高而且比较有经济效益的的传感器,同时可以采取多点测量的方法来解决。
6.总结
这次的课程设计是利用单片机AT89C52来设计仓库温湿度控制系统,设计中使用LCD1602进行对当前温度和湿度进行显示,使用温湿度传感器SHT10对温湿度测量,当温湿度超限时,蜂鸣器发出报警信号,同时,控制设备进行相应的操作使温湿度回到限定的范围内。
通过模拟,基本实现了对仓库温湿度的控制。
这次课程设计让我学习和了解了很多东西。
通过查找资料,我了解了SHT10温湿度传感器的使用方法,并对里面的一些函数和设计思路有了一定的认识,同时,了解了LCD1602后,我知道了1602该如何使用,并能够初步的使用它。
由于使用SHT10温湿度传感器时,单片机的P3.6和P3.7分别于SHT10的DATA和SCK直接相连,而单片机与SHT10的接口电路中,数据端DATA接了一个上拉电阻,让我加深了单片机内部的P1、P2、P3口有上拉电阻。
另外在这次实验中我知道蜂鸣器分为有源和无源两种,也知道了它们接入电路的区别。
这次课程设计体会最深的对软件和硬件的调试,软件调试过程中遇到了很多麻烦,如按键延时过短,导致单片机没来得及响应使液晶显示屏上还是按键按下前的字符,通过改正延时时间的长度,最终把这个问题解决了;在硬件调试中也遇到了一些问题,如蜂鸣器没有声音,最后经过查阅资料,是因为蜂鸣器的电压和电流不够,通过三极管的放大作用,最终蜂鸣器发出声音,其次还可以通过改变蜂鸣器的频率改变声音的音调。
通过这次课程设计,我知道我们在遇到问题时,我们应该多动脑,同时应该多查阅资料以便解决问题。
同时,在这次课程设计中,我知道我们的知识面很小,我们在今后学习中应该多阅读一些书来丰富我们的知识,这样在以后遇到问题时,我们能够快速的处理。
7.参考文献
[1] 张毅刚. 单片机原理及应用(第二版). 高等教育出版社,2009
[2] 陆荣鑑,李品,孙周. SHT10传感器在温湿度监测系统中的应用[J]. 传感器与微系统,2012,(31)
[3] 孙环,滕召胜. 基于SHT10 单片集成传感器温湿度检测模块设计[J]. 国外电子测量技术,2006,(25)
[4] 童诗白.华成英. 模拟电子技术基础[M].北京.高等教育出版社,2000
[5] 郭天祥. 51单片机C语言教程.北京:电子工业出版社, 2008
[6] 隋清江. 基于PROTEUS的LCD1602接口设计与仿真[J]. 仿真技术,2010,(7)
[7] 刘天时,刘赏,付春. 一种单片机键盘电路设计与消抖处理[J]. 计算机与网络,2010,(10)
[8] 赵亮. 跟我学51单片机(四)独立-矩阵键盘应用与设计[J]. 电子制作,2011,(4)
[9] 黄震宇. 温湿度控制系统设计[J]. 粮油装备与自动控制,2008,(15)
[10] 于志赣,刘国平. 液显LCD1602 模块的应用[J]. 计算机技术应用,2009,(4)
[11] 赵亮. 液晶显示模块LCD1602应用[J]. 电子制作,2007,(3)
[12]谭浩强. C语言程序设计(第四版).清华大学出版社, 2010
[13]李泉溪. 单片机原理与应用实例仿真(第二版).北京航空航天大学出版社, 2011 附录一系统仿真图
单片机课程设计期末成绩评定表
指导教师签字:
年月日。