仓库温湿度控制系统.docx
《仓库温湿度控制系统.docx》由会员分享,可在线阅读,更多相关《仓库温湿度控制系统.docx(22页珍藏版)》请在冰豆网上搜索。
仓库温湿度控制系统
仓库温湿度控制系统
专业班级
提交日期
摘要2
1仓库温湿度控制系统设计任务和性能指标3
1.1设计任务3
1.2性能指标3
2系统总体设计3
3硬件设计4
3.1单片机最小系统4
3.2LCD1602显示模块5
3.3温湿度传感器模块6
3.3.1SHT10温湿度传感器的介绍6
3.3.2SHT10与单片机的接口电路7
3.4报警模块7
3.4按键模块8
3.4控制模块8
4软件设计9
4.1主程序流程图9
4.2SHT10子程序流程图10
4.3LCD1602子程序流程图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)温度测量误差:
土1C;
(3)测温围:
-10~+55C;
(4)湿度测量误差:
±5%R;H
(5)测湿围:
0〜100%RH
(6)能否通过键盘电路修改上下限:
能;
(6)有无温湿度报警:
有;
2系统总体设计
本设计核心部件为AT89C51,信号采集及处理部分由SHT10构成,进入单片机后经处理后通过LCD1602显示温湿度,信号显示采用的液晶屏为5X7点阵,一行可显示16字,两行,第一行显示温度,第二行显示湿度。
通过上位机部分对测量的温湿度进行上下值的设定,应用RS-485通信方式完成测控电路与上位PC机的数据交换。
当测量超过限定值,通过超限报警处理电路对其进行处理分别显示不同的二极管灯亮,蜂鸣器产生长鸣,串口向PC端发送具体的报警信息,控制设备采取相应的措施使温湿度到达设定的围。
硬件中包括五个按键,对温湿度上下限进行修改。
开机后,所有器件初始化,温湿度传感器SHT11开始进行温湿度测量和计算,最后通过LCD液晶显示器显示结果。
在测量结果中有超过设定的温湿度上下限的,通过温湿度控制部分作出反应。
整体电路框图如图1所示:
报警模块
AT89C52
单片机
键盘输入
SHT10温湿
度传感器
LCD1602
显示
控制部分
图1整体电路框图
3硬件设计
3.1单片机最小系统
lOiaF
山5
—C1
卜3OpF
=C3
J
._is、
——
界
RJTO叫玄
E>ATJ^lg77
»cki?
zr
vc-c
1*0OACW
2*0.1■JJZS1
PB2ALJ2
POUALM
PO5AD5
POJSAJZH5-
Fft”AI>?
P1.D.T5
r41
PJZtH-CIni.J^CEXOP】.*
EX】RLJ.CEJi2fl齐匸-F咒呂J*l.CEX4
F*2D3呂
H金.L沁PQ工AJO^^.311
P2.dA12P215AISF^.frAidP2A15
GKD
图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.2LCD1602显示模块
测量到的温湿度值将显示到液晶屏LCD1602上,它可以显示2行,每行16个字符。
LCD1602共有三个存储器,它们是CGROM、CGRAM和DDRAM。
CGROM用来保存LCD1602部固化的一些字符的字模,比如英文的26个字母的大小写;CGRAM用来保存用户自己取的字模,比如,如果要显示汉字,就必须自己去汉字字模,在这里我们都用英语字母,故不用CGRAM;DDRAM用来存储要显示的字符的字模,它和屏幕上的位置是对应的,第一行为00H到0FH,第二行为40H到4FH。
在这里需要注意的是,在向LCD1602写入显示数据存储器地址时,根据控制指令的格式,最高位D7为1,所以写入的数据为,
第一行80H到8FH,第二行C0H到CFH。
它与单片机的接口电路如下图所示:
图4LCD1602与单片机的接口电路
3.3温湿度传感器模块
3.3.1SHT10温湿度传感器的介绍
SHT11是瑞士Scnsirion公司推出的一款数字温湿度传感器芯片。
该传感器1个奄容式聚合体溺瀑元件和1个能隙式测温元件组成,并嗣1个14位A/D转换器以及1个2-wire数字接口在单芯片中无缝结合,使得该产品具有功耗低、反应快、抗干扰能力强等优点。
(1)SHT10的主要特点
♦相对湿度和温度的测量兼有露点输出;
♦全部校准,数字输出;
♦接口简单(2-wire),响应速度快;
♦越低功耗,自动休眠;
♦出色的长期稳定性;
♦超小体积(表面贴装);
♦测湿精度土4.5%RH,测温精度土0.5C(25C)。
♦测温围-40~123C,测湿围0~100%RH
(2)SHT10的命令与时序
命令
OOOOM
OOO11
T*tit
OOIO1
Mt找烝疔舒
OO111
斗衩毎阳TZ##
OO11O
O1V111lOjt
欣塞竝"Hfit口.iW除3烝离呑彌力
网认*F6命令WT铃待主少1Lz
M1IJIO
①)SHTI0命令
2;命令时序
o
图5命令时序
DAIA
SCK
发送一组“传输启动”序列进行数据传输初始化,如图5所示。
其时序为:
当SCK为高电平时DATA翻转保持低电乎,紧接着SCK产生1个发脉冲,随后在SCK为高电平时DATA翻转保持高电平。
紧接着的命令包括3个地址位(仅支持“000”)和5个命令位。
SHT10指示正确接收命令的时序为:
在第8个SCK时钟的下降沿之后将DATA拉为低电平(ACK位),在第9个SCK时钟的下降沿之后释放DATA(此时为高电平)
3复位时序
如果与SHTl0的通信发生中断,可以通过随后的信号序列来复位串口,如图6所示。
保持DATA为高电平,触发SCK时钟9次或更多,接着在执行下次命令之前必须发送一组“传输启动”序列。
这些序列仅仅复位串口,状态寄存器的容仍然保留。
data
图6复位时序
4状态寄存器读写时序
SHTIO通过状态寄存器实现初始状态设定
图7读时序
图8写时序
3.3.2SHT10与单片机的接口电路
SHT10采用类似于I2C的两线制串行总线,一根是时钟线,一根是数据线。
为避免信号冲突,微处理器应驱动DATA在低电平。
需要一个外部的上拉电阻(例如:
10kQ)将
信号提拉至高电平。
上拉电阻通常已包含在微处理器的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按键模块
按键电路图如下图所示
键盘分为编码式和非编码式键盘。
其中,非编码式键盘又包括矩阵式键盘和独立式键盘。
矩阵式键盘较为复杂,一般用于按键数目较多,而单片机可用的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主程序流程图
串口设置
SHTlj
}复位
初始化LCD1602
图13主程序流程图
4.2SHT10子程序流程图
1
r
发送启动时序
1
r
发送控制字
开始
测量结束?
No
4.3LCD1602子程序流程图
fYes
接收数据
F
接收校验位
图14SHT10子程序流程图
结束
4.4输出控制子程序流程图
温湿度是否留有足够的裕量?
结束
No
温度、湿度是否超
出上下限?
温湿度是否回到限定值内?
停止报警
Yes
图16输出控制子程序
启动温湿度调节设备
停止温湿度控制设备
蜂鸣器报警
Yes
Yes
返回主程序
4.5键盘扫描子程序流程图
No
图17键盘扫描子程序
为了防止抖动,按键电路中都要消抖的措施,本设计中是采用的软件消抖,在单片机检测到某个键按下后,延时10ms再监测,如果仍然按下,才视为按下了该键。
K1、K2、K3、K4、K5分别对应单片机的P2.3-P2.7引脚。
按下K1,也就是使P2.3为低电平时,进入温度上限的设置,再按一次进入温度下限的设置;按下K2,进入湿度上限的设置,再按一下进入温度下限的设置。
在每个设置里面,按K3增加限值,按K4减小限值。
设置好以后,按K5退出设置。
5.仿真与调试
5.1调试环境
本设计用到了KeiluVision4和Proteus7.8两种软件进行联合调试。
实验中使用C语言在KeiluVision4进行编写源代码,并通过编译检查源程序中的代码是否正确。
原理图是在Proteus7.8提供的环境中绘画。
在KeiluVision4编译无误后生成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
⑸郭天祥.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
附录一系统仿真图
>rr*c
向FC机发送佶息
亘
-E
iL-
*
T
rfl-
—
iKST
F1C
i*
T^7
L?
1
=—fr—S
1^11-
r
rasirT
razm
ra.*x>十rrjs^fFr:
?
'fr
2S
13JR
神1J!
~~^2~
U2
■H'Z
W—」」h
<
阵温度问度值
b
w
T»
TE-
单片机课程设计期末成绩评定表
姓名
学号
专业班级
报告题目:
报告答辩记录:
成绩类别
考勤成绩
(10%)
答辩成绩
(20%)
报告成绩
(50%)
实物成绩
(20%)
总分(百分制)
成绩
评语:
指导教师签字: