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