1、1 前言粮食是一个国家生存的根本,为了防备战争、灾荒及其它突发性事件,粮食的安全储藏具有重要意义。根据国家粮食保护法规,必须定期抽样检查粮仓各点的粮食温度与湿度,以便及时采取相应的措施,防止粮食的变质。但大部分粮仓目前还是采取人工测温的方法,这不仅使粮仓工作人员工作量增大,且工作效率低,尤其是大型粮仓的温度检测任务如不能及时彻底完成,则有可能会造成粮食大面积变质。据有关资料统计,目前,我国各个地方及垦区的各种大型粮仓都还存在着程度不同的粮食储存变质问题。我国每年因粮食变质而损失的粮食达数亿斤,直接造成的经济损失是惊人的1。对粮仓粮食安全储藏的主要参数是粮仓的温度和湿度,这两者之间又是互相关联的
2、。粮食在正常储藏过程中,含水量一般在12%以下是安全状态,不会产生温度突变,一旦粮仓进水、结露等使粮食的含水量达到20%以上时,由于粮粒受潮,胚芽萌发,新陈代谢加快而产生呼吸热,使局部粮食温度突然升高,必然引起粮食“发烧”和霉变,并可能形成连锁反应,从而造成不可挽回的损失2。此次设计的是粮仓温湿度实时检测系统,是对一个粮仓的温湿度进行控制,以保证粮仓储粮的安全。粮仓温湿度控制系统是以MCS-51系列单片机为核心构成控制系统。本课题完成了整个系统的硬件设计,提出了一种可以应用于中小型粮仓的温湿度控制系统。2 系统总体分析与设计2.1 系统功能及系统的组成和工作原理2.1.1 总体方案根据设计功能
3、要求,系统可分如下部分:温度监控:对粮仓温度进行测量,并通过升温或降温达到储粮的最佳温度。湿度监控:对粮仓湿度进行测量,并通过喷雾或去湿达到储粮的最佳湿度。控制处理:当温度、湿度越限时报警,并根据报警信号提示采取一定手段控制。显示: LED就地显示输入值和相应的温湿度。2.1.2 实施措施实际环境温度与给定界限比较, 执行加热/制冷措施。实际环境湿度与给定界限比较, 执行加湿/去湿措施。越限报警:当温湿度越限时声音报警。键盘与显示:负责用户的输入及相关数据的显示。2.2 系统方案论证和选择 当将单片机用作测控系统时,系统总要有被测信号通过输入通道,由单片机拾取必要的输入信息。对于测量系统而言3
4、,如何准确获得被测信号是其核心任务;而对测控系统来讲,除对被控对象状态的信号测试外,还要将测试数据与控制条件对比并实时控制相应执行设备。传感器是实现测量与控制的首要环节,是测控系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。工业生产过程的自动化测量和控制,几乎主要依靠各种传感器来检测和控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。2.2.1 温度传感器的选择 方案一:采用热电阻温度传感器。热电阻是利用导体的电阻随温度变化的特性制成的测温兀件。现应用较多的有铂、铜、镍等热电阻。其主要的特点为精度高、
5、测量范围大、便于远距离测量。 铂的物理、化学性能极稳定,耐氧化能力强,易提纯,复制性好,工业性好,电阻率较高,因此,铂电阻用十工业检测中高精密测温和温度标准。缺点是价格贵,温度系数小,受到磁场影响大,在还原介质中易被站污变脆。按IEC标准测温范围-200650 ,百度电阻比WC (100) =1.3850时,R0为100和104,其允许的测量误差A级为士(0. 15+0.002|t| ),B级为士(0. 30+0.005|t|)。铜电阻的温度系数比铂电阻大,价格低,也易于提纯和加工;但其电阻率小,在腐蚀性介质中使用稳定性差。在工业中用于-50+180测温。 方案二:采用模拟集成温度传感器AD5
6、90,它的测温范围在-55+150之间,而且精度高。M档在测温范围内非线性误差为士0.35。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会损坏。使用可靠。它只需直流电源就能工作,而且,无需进行线性校正,所以使用也非常方便,接口也很简单。作为电流输出型传感器和电压输出型相比,它有很强的抗外界干扰能力。AD590的测量信号可远传百余米。方案三:采用数字化温度传感器DS18B206。DS18B20是Dallas半导体公司研制的一款数字化温度传感器,支持“一线总线”接口,即只通过一根信号线完成数据、地址和控制信息的传输。该器件只有3个引脚(即电源VDD、地线GND、数据线DQ)
7、,且不需要外部元件,内部有64位光刻ROM, 64位器件序列号出厂前就被光刻于ROM中,可作为器件地址序列码,便于实现多点测量。全部传感元件及转换电路集成在形如一只三极管的集成电路内;现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。该电路的检测温度范围为-55125 ;精度为士0. 5(在-1085范围);可以分别在93.75 ms和750 ms内完成9位和12位的数字温度值读入7。 根据设计要求:使用挂接在单总线上的多个单线数字温度传感器为检测元件,且考虑到硬件设计的性价比。故,采用方案三。
8、2.2.2 湿度传感器的选择 测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏原件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化而进行湿度测量的8。 方案一:采用HOS-201湿敏传感器。HOS-201湿敏传感器为高湿度开关传感器,它的工作电压为交流1V以下,频率为50Hz1KHz,测量湿度范围为0100%RH,工作温度范围为0509 ,阻抗在75%RH(25)时为1M 。这种传感器原是用于开关的传感器,不能在宽频带范围内检测湿度,因此,主要用于判断规定值以上或
9、以下的湿度电平。然而,这种传感器只限于一定范围内使用时具有良好的线性,可有效地利用其线性特性。 方案二:采用HS1100/HS1101湿度传感器。HS1100/HS1101电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。不需校准的完全互换性,高可靠性和长期稳定性,快速响应时间,专利设计的固态聚合物结构,由顶端接触(HS1100)和侧面接触(HS1101)两种封装产品,适用于线性电压输出和频率输出两种电路,适用于制造流水线上的自动插件和自动装配过程等。相对湿度在1%-100%RH范围内;电容量由16pF变到200pF,其误差不大于士2%RH;响应时间小于5S;温
10、度系数为0. 04 pF/。可见精度是较高的。 方案三:采用数字湿度传感器(如SHT11等)。数字湿度传感器将传感器、信号放大调理、A/D转换、I2C总线接口全部集成于一个芯片中。应用该方案不需外接A/D转换芯片,可以大大简化硬件电路,并能提高电路的可靠性10。 综合比较三个方案,方案一虽然满足精度及测量湿度范围的要求,但其只限于一定范围内使用时才具有良好的线性,而且还不具备在本设计系统中对温度-40+60的要求;方案二,虽然不是数字式传感器,与单片机的接口需要外接A/D转换器件,但其性能较优,使用简单,只要合理选择转换电路等也可以有较高的性价比。本系统中,我们选择方案二来作为本设计的湿度传感
11、器。3 系统硬件设计本系统硬件包括:温度检测、湿度检测、A/D转换、单片机及附属电路、控制接口(空调、风机、加湿机)、键盘及显示、报警电路、通信串口等部分的设计。系统整体电路框图如图3.0.1所示。ATMEL89S52单片机温度采集装换模块湿度采集装换模块键盘接口电路报警电路风机接口电路加湿机接口电路空调机接口电路电源与显示电路RS232通信接口图3.0.1 系统整体电路框图3.1 数据采集电路设计3.1.1 温度采集电路1)DS 18B20介绍: DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济。Dallas半导体公司的数字化温度传感器DS1
12、820是世界上第一片支持“一线总线”接口的温度传感器11。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测控,如环境控制、设备或过程控制、测温类消费电子产品等。支持3-5.5V的电压范围。 DS18B20具有如下特点:(1)独特的单线接口只需1个接口引脚即可通信。(2)在DS18B20中的每一个器件上都有独一无二的序列号,可实现多点测量。(3)不需要外部元件即可实现测温。(4)由数据线供电,不需外接电源。(5)测量范围从-55至+125,在-10+85围内保证0
13、. 5的精度。(6)用户可以从9位到12位选择数字温度计的分辨率。(7)内部有温度上、下限告警设置。(8)用户可定义的非易失性的温度告警设置图3.1.1:是TO-92封装和SSOP封装的DS18B20的外部结构图12。图3.1.1 DS18B20外观DS18B20引脚功能描述如下:GND:地信号。DQ: 数据输入/输出引脚。开漏单总线引脚。当被用在寄生电源下,可向器件供电。VDD:电源引脚,可选择使用。当工作于寄生电源时,此引脚必须接地。NC: 空引脚。DS18B20内部结构如图3.1.2所示:图3.1.2 DS18B20内部结构图 DS18B20内部结构主要由六部分组成:电源电路、64位光刻
14、ROM及1-wire接口、温度传感器、非易失的温度报警触发器TH和TL13、配置寄存器和CRC校验码产生器。 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的14。 DS18B20高速存储器包含了9个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是
15、温度的高八位。第三个和第四个字节是TH,TL的易失性拷贝,第五个字节是配置寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余校验字节。其中,配置寄存器的内容如下:“TM Rl RO 1 1 1 1 1” 低5位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动15。Rl和RO用来设置分辨率,如下表3.1.1所示:(DS18B20出厂时被设置为12位)表3.1.1 分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms101
16、1位375ms1112位750msDS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0. 0625 /LSB16形式表达,其中S为符号位。如下表3.1.2所示。表3.1.2 12位的温度转化形式表bit7bit6bit5bit4bit3bit2bit1bit0LS Byte232221202-12-22-32-4bit15bit14bit13bit12bit11bit10bit9bit8MS ByteSSSSS262524这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得
17、的温度大于0,这5位为0,只要将测到的数值乘于0. 0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0. 0625即可得到实际温度。 根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 DS18B20依靠一个单线接口通信17。在单线接口情
18、况下,必须先建立ROM操作协议,才能使用存贮器和控制操作。因此,控制器必须首先提供五种ROM操作命令之一:(1)Read ROM(读ROM);(2)Match ROM(匹配ROM);(3)Search ROM(搜索ROM);(4)Skip ROM(跳过ROM);(5)Alarm Search(告警搜索)。这些命令对每一器件的64位光刻ROM部分进行操作。如果在单线上有许多器件,那么可以挑选出一个特定的器件并给总线上的主机指示存在多少器件及其类型。在成功地执行了ROM操作序列之后可,使用存贮器和控制操作,然后控制器可以提供六种存贮器和控制操作命令之一。 一条控制操作命令指示DS18B20完成一次
19、温度测量,测量的结果将放入DS18B20的高速缓存器中,用一条读缓存储器内容的存储器操作命令可以读出此结果。温度告警触发器TH和TL各由一个字节的EEPROM构成。如果不对DS18B20使用告警搜索指令,这些寄存器可用作通用用户存储器使用。 单线总线的空闲状态是高电平。无论任何理由需要暂停某一执行过程时,如果还想恢复执行的话,总线必须停留在空闲状态。在恢复期间,如果单线总线处于非活动状态(高电平状态),位与位之间的恢复时间可以无限长。如果总路线停留在低电平超过480uS,总线上的所有器件都将被恢复。2)接口电路AT89S52与DS18B20的接口电路如图3.1.3所示。 图中,DS18B20的
20、I/0端口DQ通过一个4. 7K的外部上拉电阻与单片机连接。多片DS18B20共用一条总线,通过光刻序列号的区分实现多点测温。本设计中DS18B20采用寄生电源方式,故GND与VDD端均接地。图3.1.3 AT89S52与DS18B20的接口电路3.1.2 湿度采集电路1)HS1100/HS1101湿度传感器介绍: 测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏原件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化fu进行湿度测量的。 HS1100/HS1101湿
21、度传感器特点:不需校准的完全互换性,高可靠性和长期稳定性,快速响应时间,专利设计的固态聚合物结构18,由顶端接触(HS1100)和侧面接触(HS1101)两种封装产品,适用于线性电压输出和频率输出两种电路,适肩于制造流水线上的自动插件和自动装配过程等。图3.1.4 湿敏电容工作的温、湿度范化 图3.1.5 温度-电容相应曲线相对湿度在1%100%RH范围内;电容量由16pF变到200pF,其误差不大于士2%RH;响应时间小于5S;温度系数为0. 04 pF/。可见精度是较高的。2)湿度测量电路设计: HS1100/HS1101电容传感器,在电路构成中等效于一个电容器件,其容量随着所测空气湿度的
22、增大而增大。如何将电容的变化量准确地转为计算机易于接受的信号,常有两种方法:一是将该湿敏电容置于运放与阻容组成的桥式振荡电路中,产生的正弦波电压信号经整流、直流放大、再A/D转换为数字信号;另一种是将该湿敏电容置于555振荡电路中,将电容值的变化转为与之成反比的电压频率信号,可直接被计算机所采集。 频率输出的55519测量振荡电路如图3.1.6所示。集成定时器555芯片外接电阻Rl,R3与湿敏电容C,构成了对C的充电回路。7端通过芯片内部的晶体管对地短路又构成了对C的放电回路,并将引脚2、6端相连引入到片内比较器,便成为一个典型的多谐振荡器,即方波发生器。另外,R21是防止输出短路的保护电阻。
23、图3.1.6 频率输出的555振荡电路 该振荡电路两个暂稳态的交替过程如下:首先电源Vcc通过Rl、R3向HS1100充电,经t充电时间后,Uc达到芯片内比较器的高触发电平,约0. 67Vcc,此时输出引脚3端由高电平突降为低电平,然后通过R3放电,经t放电时间后,Uc下降到比较器的低触发电平,约0. 33Vs。 此时输出,此时输出引脚3端又由低电平突降为高电平,如此翻来覆去,形成方波输出。其中,充放电时间为:t充电=C (R1+R3) Ln2t放电=CR3 Ln2因而,输出的方波频率为:f=1/ (t放电+t充电)=1/ C (R1+2R3) Ln2可见,空气湿度通过555测量电路就转变为与
24、之呈反比的频率信号,表3.1.3给出了其中的一组典型测试值。表3.1.3 空气湿度与电压频率的典型值湿度频率湿度频率%RHHz%RHHz0735160660010722470646820710080633030697690616840685310060335067283)多路湿度检测信号的实现为了能够实现湿度信号的多点测量,本设计采用2片8选1模拟开关CD4051组成矩阵测量网络,可实现64路湿度信号的采集。 矩阵测量网络由湿度一频率变换电路及2片CD4051组成,其硬件电路如图3.1.7所示。图3.1.7 湿度矩阵测量网络图中,CD4051有3条地址码控制线,通过单片机的控制每片CD4051
25、可实现8选1功能,每片2片CD4051组合使用就可实现64路湿度信号的采集。U2的INH端直接接地,Ul的INH端通过单片机端口控制,在进行湿度信号采集的时候该端口置为低电平,允许多路开关选通20。Ul的X端子与单片机P3. 4端口相连,实现湿度信号的采集。4)多路开关介绍 多路开关,又称“多路模拟转换器”。多路开关通常有n个模拟量输入通道和一个公共的模拟输入端,并通过地址线上不同的地址信号把n个通道中任一通道输入的模拟信号输出,实现有n线到一线的接通功能。反之,当模拟信号有公共输出端输入时,作为信号分离器,实现了1线到n线的分离功能。因此,多路开关通常是一种具有双向能力的器件。 在本设计中,
26、选用的是8选1多路开关CD405121,它是一种单片、COMS, 8通道开关。该芯片由DTL/TTL-COMS电平转换器,带有禁止端的8选1译码器输入,分别加上控制的8个COMS模拟开关TG组成。CD4051的管脚图如图3.1.8所示。图3.1.8 CD4051的管脚图图中功能如下:通道线,IN/OUT (4、2、5、1、12、15、14、13):该组引脚作为输入时,可实现8选1功能,作为输出时,可实现1分8功能。XCOM (3):该引脚作为输出时,则为公共输出端;作为输入时,则为输入端。A、B、C (11、10、9):地址控制引脚。INH (6):禁止输入引脚。若INH为高电平,则为禁止各通
27、道和输出端OUT/IN接至;若INH为低电平,则允许各通道按表3.1.4关系和输出段OUT/IN接通。VDD (16)和Vss (8):VDD为正电源输入端,极限值为17V; Vss为负电源输入端,极限值为-17V。VGG (7);电平转换器电源,通常接+5V或-5V。CD4051作为8选1功能时,若A、B、C均为逻辑“0(INH=0),则地址码00013经译码后使输出端OUT/IN和通道0接通22。其它情况下,输出端OUT/IN输出端OUT/IN和各通道的接通关系如下表3.1.4所示。表3.1.4:输入状态接通通道输入状态接通通道INHCBAINHCBA0000001015000110110
28、60010201117001131xxx均不显示010043.2 单片机系统设计 本系统中,我们采用美国ATMEL(爱特梅尔)公司生产的AT89S52单片机作为主控芯片。AT89S52单片机是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业8051产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。 AT89S52具有以下标准功能:8k字节Flash, 256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构工串行口,片内
29、晶振及时钟电路。 另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。图3.2.1所示为AT89S52单片机最小系统原理图23。图3.2.1 AT89S52最小系统3.3 其它外围接口电路设计3.3.1 RS-232串口电路AT89C51有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,
30、两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换。采用三线制连接串口,也就是说单片机和电脑的9针串口只连接其中的4根线:第5脚的GND、第2脚的RXD、第3脚的TXD与第4脚。具体电路图如图3.3.1图3.3.1 串口通讯电路3.3.2 键盘及显示电路键盘及显示系统采用8279 芯片控制16 键的键盘和8位七段数码管,以实现用户的输入与数据输出。16 个键分别是“0” 到“F”飞对应的键值是0到15不需要键值的转换。七段数码管采用共阴极, 系统中使用的段码如下表3.3.1所示。表3.3.1:段码表显示01234567段码3FH06H5BH4FH66H6DH7DH07H显示
31、89ABCDEF段码7FH6FH77H7CH39H5EH79H71H8279 可编程键盘/显示器接口芯片8279 使Intel 公司为8位微处理器设讨的通用键盘/显示器接口芯片, 其功能主要体现在二个方面接收米自键盘的输入数据井作讯处理: 数据显示的信理和数据显示器的控制。单片机采用8279 管理键盘和显示器,可减少软件程序,减轻负担, 且显示稳定,程序简单。图3.3.2 8279管脚图8279 的引脚功能(采用40 线双列直插式封装): DB0 DB7:双向外部数据总线。用于传送8279与CPU之间的命令、数据和状态。 CS片选信号线,低电平布效。 A0,区分信息的特征位。当A0位置1时,C
32、PU写入8279 的信息复位命令,CPU 从8279 读出的信息为8279 的状态;当A0为0 时, I/O 信息都为数据。 RD,WR:读和写边通信号线, 均为低电平有效。 I RQ:中断请求输出线,高电平有效。 RL7 RL0:键盘回送线,平时为高电平,只有当某一键闭合时,其中一条线才变低。 SL7 SL0:扫描输出线,用于对键盘和显示器进行扫捕。 OUTB3 OUTB0 OUTA3 O U TA0:显示段输出线。 BD 显示熄灭控制线, 低电平有效。 RESET ,复位输入线,高电平有效。 SHIFT,CNTL/STB:控制输入钱, 由内部拉高电阴拉成高电平, 也可由外部控制按键拉成低电
33、平。 CLK:外部时钟输入线,其信号由外部振荡器提供。 Vcc,GND 分别为+5V电源和地。8279 初始化时,设定的相关命令字如下:Z8279 EQU 08701H ;8279状态/命令口地址D8279 EQU 08700H ;8279数据口地址LEDIOD EQU 00H ;左边输入 八位字符显示;外部译码键扫描方式,双键互锁LEDFEQ EQU 38H ;扫描速率LEDCLS EQU 0DlH ;清除显示RAMLEDWRO EQU 80 H ;设定的将要写入的显示RAM 地址系统的连接图如图3.3.3所示:图3.3.3 键盘及显示电路3.3.3 控制设备驱动电路1)风机、空调机、加湿机
34、驱动电路 粮仓温、湿度的控制是通过空调器与风机实现的。当条件适合时,打开进出口的风机,在粮仓内形成通风气流;如果风机调节达不到控制要求,则使用空调进行降温与排湿。湿度的调整还可配合加加湿机进行调节。 风机、空调机、加湿机的控制是由单片机和光电祸合器驱动双向晶闸管完成的。其驱动电路如图3.3.4所示。图中,发光二极管是用来指示设备运转情况的。当单片机输出端口为低电平时,LEDl亮,光耦通,双向晶闸管导通,应用晶闸管驱动设备避免了机械触点式继电器驱动的一些缺点。其中,单片机的P1.2, Pl. 3, P1.4端口分别接空调机、风机、加湿机的驱动电路。图3.3.4 风机、空调机、加湿机驱动电路2)报
35、警接口电路在微型计算机控制系统中,为了安全生产有紧急状态报警系统采集的数据或通过计以便提醒操作人员注意对于一些重要的参数或系统部位,都设或采取紧急措施。其方法就是把计算机算机进行数据处理、数字滤波,标度变换之后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常进行显示和控制24。本设计采用峰鸣音报警电路。峰鸣音报警接口电路的设计只需购买市售的压电式蜂,然后通过MCS-51的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需l 0mA的驱动电流,可以用一个晶体三极管驱动,如图3.3.5所示。在图中,P2.3接晶体管基极输入端。当P2.3输出高电平“1”时
36、,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当P2.3输出低电平“0”时,二极管截止,蜂鸣器停止发声。图3.3.5 三极管驱动的蜂鸣音报警电路4 系统软件设计本设计软件系统主要包括:系统初始化模块、键盘显示模块、采样转换模块和控制模块等。4.1 系统初始化模块系统初始化模块的丰要功能是元成系统的初始化以及设定系统的工作状态, 初始化部分包括以下方面的内容:(1)系统启动后,LED显示“0”。(2)等待用户输入温度及湿度值。按B 键表示开始输入,这时可按温度下限、上限, 湿度下限、上限的顺序依次输入,如果输入的顺序错可按B键可重新进行输入, 直到输入正确输入元毕后按 C 键确定。(3)系
37、统进入工作状态.系统整体的工作方式如下框图所示系统启动键识别LED显示采样计算更新LED实时温湿度显示控制图4.1.1 系统整体的工作方式流程图初始化程序部分流程图:初始化LED显示是否按“B”?输入设定值是否正确?是否按“C”?NNNYYY图4.1.2 初始化程序部分流程图4.2 键盘显示模块本系统中使用8279 芯片完成有关键盘输入和温湿度显示工作。温度湿度是依次输入的并且依次以下限、上限输入,并且将温湿度的中间数值存入单片机中, 在将LED清零后显示(分别在0123 位),并依次显示实时的现度湿度数值(显示在4567 位)。实际上, 在系统初始化的过程中, 除了初始化键盘和显示器之外,
38、其中还包插着调用8279键盘显示棋块,8279键盘显示模块部分的基本流程如下国4.2.1 所示。调用等待按键显示键值8次?返回NNYY图4.2.1 8279键盘显示模块部分的基本流程图4.3 采样装换模块4.3.1 湿度检测子程序 相对湿度的检测采用相对湿度传感器HS1101,该传感器的测量精度为士3% RH,测量电路采用图3.1.10所示的电路,测量时,将单片机定时到1s,用T0计数器记录“湿度-频率转换电路”中的输出方波数,定时时间到时,停止T0计数,此时TO所计的方波数即为“湿度-频率转换电路”的频率,对照表3-1-3(空气湿度与电压频率的典型值),判断该频率所属区域,将每个区域等分为1
39、00份,即相当于0.1%RH的精度,如在0%RH10% RH之间均分100份,对应的频率分为100份,即用相对湿度为0%RH时对应频率(7351Hz)减去相对湿度为10%RH时的对应频率(7224Hz),用该差值除以100,公式如下:为了方便计算和保证计算精度,将增量扩大100倍,进行计算。在计算前将每段的增量计算好,存入表中,在实际计算中,分段进行查找,计算只涉及到加减,计算时间短,精度高。湿度检测的流程如图4.3.1所示。关中断将T0的计数器清0定时一秒启动T0定时器定时时间到停止计数查表计算相对湿度开中断结束图4.3.1 湿度检测的流程图4.3.2 温度检测子程序 温度检测子程序主要完成
40、的是初始化DS18B20,从DS18B20中读出一个字节的数据,向DS18B20中写入一个字节的数据,配置DS18B20温度转换的精度等,读出SCRACHPAD存储器中的九个字节的数据,读出ROM中的64位CODE值,对读出的SCRACHPAD数据进行CRC校验,然后根据读出的数据得到测量出的十进制温度值。从DS18B20中读出九个字节数据的流程图如图4.3.2所示。开始初始化DS18B20写入0XCCH写入0X44H(温度变换)延时916uS初始化DS18B20延时916uS写入0X55H(匹配rom)发送64位ID检验写入0XBEH(读存储器)读出数据结束图4.3.2 温度检测的流程图下面
41、是关于DS 18B20的读写程序,设单片机时钟晶振频率为12MHz。(1)DS18B20的初始化子程序RESET: CLR P3.5 ;发送复位脉冲 MOV R7,#32 ;延时500us LCALL DELAY15 SETB P3.5 MOV R7,#4 ;等待60us LCALL DELAY15 CLR P3.5 ;P3.5=0 JB P3.4,RET1 ;P3.4=1不存在跳转 SETB P3.5 ;存在DS18B20 MOV R7,#28 LCALL DELAY15RET1: RET 延时子程序(Focs=12MHz)DELAY15: MOV R6,#6DEL151: DJNZ R6,
42、DELAY151 DJNZ R7,DELAY15 ;延时R7*15us RET(2)DS18B20的读子程序RD1820: CLR C MOV R1,#9 MOV R0,#TEMPLSBRD1820: MOV R2,#8RD1820: SETB P3.5 NOP NOP CLR P3.5 ;产生信号NOP NOPSETB P3.5 ;准备输入数据MOV R7,#1LCALL ELAY15 MOVC ,P3.4RRC ADJNZ R2,RD18202 ;判断一子节是否读完MOVX R0,A ;保存结果INC RO DJNZ R21,RD18201 ;判九个字节是否读完RET(3)DS18B20的
43、写子程序WR1820: CLR C MOV R1,#8WR18201: CLR P3.5 ;产生写信号 MOV R7,#1 LCALL DELAY15 RRC A MOV P3.5 ,C ;发送一位数据给DS18B20 MOV R7,#1 LCALL ELAY15SETB P3.5NOPDJNZR1,WR18201 ;一子节数据是否发送完SETB P3.5RET4.4 控制模块温湿度判断控制模块也是系统的核心模块之一,所谓判断控制棋块,就是对用户输入的温度和湿度与当前温室内的实际温湿度进行比较,先进行判断,然后再进行控制,控制棋块是决定系统将要进行什么工作的。如温度高于上限时需要降温, 低于下
44、限时需要升温,同时还要肩动警报等等。温度判断控制部分的程序整体思路如图4.4.1所示。读实时值与键入值比较调用控制升温降温处理报警是否在设定区间内返回YN图4.4.1 温度判断控制部分的流程图湿度判断控制部分与温度判断控制部分的功能及流程是相同的,便不再赘述丁。5 部分单元电路仿真5.1 单路DS18B20温度采集仿真仿真如图5.1.1所示:图5.1.1 单路DS18B20温度采集仿真图5.2 单路HS1101湿度采集仿真仿真如图5.2.1所示:图5.2.1 单路HS1101湿度采集仿真6总结单片机技术在各个领域正得到越来越广泛的应用,尤其MCS-51系列单片机,迅速占领了工业测控和自动化工程应用的主要市