南京信息职业技术学院毕业设计论文作者陈龚学号*****s34 系部电子信息工程系专业电子信息工程技术/电子商务题目小型仓库温湿度监测系统指导教师丁宁评阅教师徐瑞亚完成时间:2010 年 4 月10 日毕业设计(论文)中文摘要毕业设计(论文)外文摘要目录一、引言 (5)1.1设计目的 (5)1.2设计要求 (5)二、系统总体设计 (6)2.1信号采集 (6)2.1.1温湿度传感器 (7)2.1.2 SHT11性能特点 (7)2.1.2 SHT11的功能管脚及实物 (8)2.1.3 SHT11内部结构和工作原理 (8)2.1.5 硬件设计 (9)2.1.6 软件设计 (11)2.2单片机AT89S51 (16)2.2.1 单片机AT89S51的结构及组成 (17)2.2.2 单片机AT89S51的引脚 (17)2.2.3 存储器 (21)2.2.4 Flash 闪速存储器的编程 (22)2.2.5 单片机最小系统的硬件电路 (27)2.3通信模块 (29)2.3.1 RS-232、RS-485及其接口电路 (30)2.3.2 串口的基本接线方法 (31)2.4电源模块 (33)2.4.1 芯片LM7805 (33)2.5硬件设计综述 (34)三、软件设计 (34)3.1AT89S51软件设计 (35)3.1.1 软件结构设计 (35)3.2PC机数据接收界面设计 (37)四、系统调试 (38)结论致谢参考文献一、引言1.1设计目的防潮、防霉、防腐是仓库日常工作的重要内容,是衡量仓库管理质量的重要指标。
它直接影响到储备物资的使用寿命和工作可靠性。
为保证日常工作的顺利进行,首要问题是加强仓库内温度与湿度的监测工作。
但传统的方法是用与湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。
这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。
因此我们需要一种造价低廉、使用方便且测量准确的温湿度测量仪。
1.2设计要求一、基本功能➢检测温度、湿度➢实时显示温度、湿度➢设定温湿度限定值➢过限报警二、主要技术参数➢温度检测范围: 0℃~+100℃(可软件调整)➢测量精度:±1℃➢湿度检测范围: 0%-100%RH(可软件调整)➢检测精度:±1%RH➢显示方式:后台实时显示➢报警方式:后台报警二、系统总体设计本设计是以AT89S51为CPU的一套检测系统,其中涉及到温湿度检测、矩阵键盘、报警电路、单片机、后台显示等部分的设计。
图2-1 系统总体框图本设计由信号采集、信号分析、信号处理和电源四个部分组成的。
(一)信号采集由多个数字式温湿度传感器SHT11组成;(二)信号分析由单片机AT89S51组成;(三)信号处理由后台软件组成。
2.1信号采集本设计利用传感器技术进行信号采集,为单片机提高数据。
传感器是实现测量与控制的首要环节,是测控系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。
工业生产过程的自动化测量和控制,几乎主要依靠各种传感器来检测和控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。
本设计使用了数字式温湿度传感器SHT11。
2.1.1温湿度传感器温湿度的测量在仓储管理、生产制造、气象观测、科学研究以及日常生活中被广泛应用,传统的模拟式湿度传感器一般都要设计信号调理电路并需要经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性、一致性等方面往往不尽人意。
SHT11是瑞士Sensirion公司生产的具有I2C总线接口的单片全校准数字式相对湿度和温度传感器。
该传感器采用独特的CMOSens TM技术,具有数字式输出、免调试、免标定、免外围电路及全互换的特点。
该传感器将CMOS芯片技术与传感器技术结合起来,从而发挥出它们强大的优势互补作用。
2.1.2SHT11性能特点SHT11温湿度传感器的主要特性如下:●将温湿度传感器、信号放大调理、A/D转换、I2C总线接口全部集成于一芯片(CMOSens TM技术);●可给出全校准相对湿度及温度值输出;●带有工业标准的I2C总线数字输出接口;●具有露点值计算输出功能;●具有卓越的长期稳定性;●湿度值输出分辨率为14位,温度值输出分辨率为12位,并可编程为12位和8位;●小体积(7.65×5.08×23.5mm),可表面贴装;●具有可靠的CRC数据传输校验功能;●片内装载的校准系数可保证100%互换性;●电源电压范围为2.4~5.5V;●电流消耗,测量时为550μA,平均为28μA,休眠时为3μA;2.1.2SHT11的功能管脚及实物图 2-1 SHT11 引脚说明图 2-2 SHT11 实物SHT11温湿度传感器采用SMD(LCC)表面贴片封装形式,管脚排列如图2-2所示,其引脚说明如下:(1)GND:接地端;(2)DATA:双向串口数据线;(3)SCK:串口时钟输入;(4)VDD电源端:2.4~5.5V电源端;(5~8)NC:空管脚2.1.3SHT11内部结构和工作原理温湿度传感器SHT11将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上,其内部结构如图2-3所示。
该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。
这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大;然后进入一个14位的A/D转换器;最后经过二线串口数字接口输出数字信号。
SHT11在出厂前,都会在恒湿或恒温环境巾进行校准,校准系数存储在校准寄存器中;在测量过程中,校准系数会自动校准来自传感器的信号。
此外,SHT11内部还集成了一个加热元件,加热元件接通后可以将SHT11的温度升高5℃左右,同时功耗也会有所增加。
此功能主要为了比较加热前后的温度和湿度值,可以综合验证两个传感器元件的性能。
在高湿(>95%RH)环境中,加热传感器可预防传感器结露,同时缩短响应时间,提高精度。
加热后SHT11温度升高、相对湿度降低,较加热前,测量值会略有差异。
图2-3 SHT11内部结构框图2.1.5 硬件设计2.1.5.1 SHT11与微控制器的连接SHT11通过I2C接口与微控制器连接,具体电路如图2-4所示。
其中,串口时钟输入线(SCK):SCK用于微控制器与SHTll之间的通信同步,而且由于SHTll 接口包含了完全静态逻辑,所以并不存在最小SCK频率限制,即微控制器可以以任意低的速度与SHTll通信。
串口数据线(DATA):DATA引脚是三态门结构,用于内部数据的输出和外部数据的输入。
DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿后有效,所以微控制器可以在SCK高电平时读取数据,而当其向SHTll发送数据时则必须保证DATA线上的电平状态在SCK高电平段稳定;为了避免信号冲突,微控制器仅驱动DATA在低电平,在需要输出高电平的时候,微控制器将引脚置为高阻态,由外部的上拉电阻(如4.7k)将信号拉至高电平(如图2-4所示),从而实现高电平输出。
图 2-4 典型I2C接口电路2.1.5.2 硬件电路图 2-5 AT89S51和SHT11的硬件连接图SHTll是两线制的数据传输方式,具有I2C总线接口,在多点测量应用系统中通常是将多个SHTll分别独立地连接到微控制器I/O口上,微控制器通过对每一个SHTll进行测量操作,得到每一点的温湿度数据。
但这样的连接方式存在两个主要缺点:(1)由于每个SHTll占用微控制器两个I/O口,所以微控制器有限的I/O口资源将制约着单个微控制器上所能测量的最大点数;(2)由于每个SHTll的测量所需时间是固定不变的,采用单独操作的逐个测量方式在多点测量系统中必然导致数据采集时间过长、控制滞后,从而影响控制系统性能的提高。
多个SHTll传感器和AT89S51的连接方式采取如下方案:各SHTll的SCK线接到AT89S51的同一个I/O口上,而DATA线则分别接到不同I/O口线上,需要注意的地方是:DATA数据线需要外接上拉电阻。
这种连接方式有几个优点:首先,n个传感器只占用n+1个I/O口,比前述方式节省了n-1个I/O口,解决了多点测量系统中微控制器I/O口资源短缺和尽可能增加测量点之间的矛盾问题;其次,由于多个SHTll共用一条时钟线所以在每次测量中可以同时发出测量命令,多个传感器同时进行测量,只需一次等待时间则完成了整体数据的收集,大大缩短了数据采集时间,为控制系统快速响应提供了条件。
硬件连接如图2-5所示,本设计需要测试4个不同地方的温湿度情况,所以选择了4个SHT11传感器。
2.1.6 软件设计2.1.6.1 工作时序SHTll测量过程包括4个部分:启动传输、发送测量命令、等待测量完成和读取测量数据,其中可能会涉及到启动传输时序、命令发送时序、读取数据时序和通信复位时序。
微控制器首先用一组“启动传输”时序来表示数据传输的初始化,其时序图如图2-6所示:当SCK时钟高电平时DATA翻转为低电平;在DATA 为低电平期间,SCK变为低电平,再翻转为高电平;随后是在SCK时钟高电平时DATA翻转为高电平。
图2-6 “启动传输”时序在“启动传输”时序之后,微控制器可以向SHTll发送命令。
命令字节包括高3位的地址位(目前只支持000)和低5位的命令位。
SHTll传感器共有5条用户命令,具体命令格式见表2-1所列表 2-1 SHTxx命令集SHTll通过在数据传输的第8个SCK时钟周期下降沿之后,将DATA拉低来表示正确接收到命令,并第9个SCK时钟周期的下降沿之后释放DATA线(即恢复高电平),图2-7以微控制器发送湿度测量命令‘0000010l’为例说明发送命令的时序。
图2-7 命令发送时序微控制器发送一组测量命令后需要根据测量数据精确度8/12/14bit分别等待大约11/55/210ms,而SHTll则通过拉低DATA表示测量结束,并且把测量结果存储在SHT11内部的存储器内,然后自动进入空闲状态,等微控制器执行完其他任务后再来读取。
测量数据读取前,微控制器先重新启动SCK,即SHTll拉低DATA,接着2字节的测量数据和1字节的CRC校验将由SHTll传送给微控制器。
2字节的测量数据是从高字节的高位开始传送,并以CRC校验字节的确认为表示通信结束。
微控制器需要通过拉低DATA来确认接收的每个字节,若不使用CRC校验位则微控制器可以在接收完测量数据的最低位后保持DATA为高电平来终止通信,图2-8给出了数据读取时序图。