粮库温湿度智能控制系统设计说明_第1页
粮库温湿度智能控制系统设计说明_第2页
粮库温湿度智能控制系统设计说明_第3页
粮库温湿度智能控制系统设计说明_第4页
粮库温湿度智能控制系统设计说明_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 . . . 摘 要本课题运用STC89C52单片机、DHT11温湿度传感器、继电器和步进电机、LCD1602液晶显示模块、光耦等器件,设计了报警电路、步进电机驱动电路、电器开关电路等,实现了粮库温度、湿度自动检测与调节,解决了粮库人工控制测试的温度与湿度误差大,且费时费力、效率低等问题,改善我国粮食储备的落后面貌,加快经济的发展,带来很好的经济效益和社会效益,具有非常重要的现实意义。关键词: STC89C52 DHT11 继电器 步进电机 粮库ABSTRACT This subject had achieved the temperature and humidity control and

2、 alarm system in the grainbin and had designed humidity measurement and alarm circuit, stepper motor circuit and heating circuit by using STC89C52 SCM, DHT11 temperature and humidity sensor,LCD1602 and stepper motor and so on.It solved the problem of low efficiency and measurement errors of temperat

3、ure and humidity of manual control, it improved the backwardness of grain reserves in China, thereby speeding up economic development and bringing good economic and social benefits.Keywords:STC89C52 DHT11 relays stepper motor grainbin目 录第一章绪论11.1选题背景11.2选题的现实意义2第二章系统硬件电路的设计32.1系统硬件构成与其测控原理32.2单片机的选择

4、42.2.1单片机概述42.2.2 STC89C52单片机的引脚说明52.2.3 STC89C52单片机最小系统82.3 显示模块的选择92.3.1 LCD1602概述92.3.2 LCD1602基本参数与引脚功能92.4 温湿度传感器的选择132.4.1 DHT11数字温湿度传感器概述132.4.2 DHT11数字温湿度传感器性能说明132.4.3 DHT11数字温湿度传感器使用注意事项152.5加热器加湿器开关电路设计172.6 步进电机驱动电路设计18第三章温室大棚控制系统软件设计193.1 Keil C 软件概述193.2 温室大棚控制系统程序设计213.2.1整体系统框图213.2.

5、2 LCD1602显示模块程序设计223.2.3 步进电机驱动程序设计243.2.4 矩阵键盘扫描程序设计. 25第四章调试中遇到的问题26结论27辞28参考文献29附录3048 / 51第一章 绪论1.1选题背景在人类的生活环境中,温湿度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自18世纪工业革命以来,工业发展与是否能掌握温湿度有着密切的联系。在冶金、钢铁、石化、水泥、玻璃、医药等行业,可以说几乎80%的工业部门都不得不考虑着温湿度的因素。温湿度不但对于工业如此重要,在农业中温度湿度的监测与控制也有着十分重要的意义。我国是一个人口众多的大国, 科学储粮

6、是保障人民粮食供应, 促进社会安定的大事, 粮库温度的监测在科学储粮中占有重要地位。在大多数粮食存储企业, 目前仍主要靠人工检测粮库温度。由于粮库占地面积大,粮库分散,仓温度测试点多,因而人工监测工作量大,效率低,检测周期长,容易漏检,而且测量器件损坏率高,测试精度难以保证。国的粮食温度检测系统与国外同类产品相比较还有很大差距:系统采用的温度传感器的测量精度和灵敏度较低;温度传感器测得的粮食温度模拟量信号转换成数字量信号时产生的电路误差较大;信号在长距离传输过程中因干扰和衰减导致精度降低。不可否认,目前国部分电子元器件的制造工艺的不成熟和国外相应电子器件价格过高共同制约着我国粮库温湿度智能控制

7、系统的发展和应用。因此,鉴于我国的国情,设计一种适合国实际情况并满足当前国家粮食储备要求的粮食温湿度智能控制系统,对改善我国粮食储备的落后面貌,加快经济的发展,具有非常重要的现实意义。今天,我们的生活环境和工作环境有越来越多称之为单片机的小电脑在为我们服务。单片机在工业控制、尖端武器、通信设备、信息处理、家用电器等各测控领域的应用中独占鳌头。时下,家用电器和办公设备的智能化、遥控化、模糊控制化已成为世界潮流,而这些高性能无一不是靠单片机来实现的。采用单片机来对温湿度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温湿度的技术指标,从而能够大大提高产品的质量和数量。单

8、片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中必不可少且广泛应用的器件,尤其在日常生活中也发挥越来越大的作用。因此,单片机对温湿度的控制问题是一个工农业生产中经常会遇到的问题。因此,本课题围绕基于单片机的粮库温湿度智能控制系统展开了应用研究工作1。1.2选题的现实意义随着单片机和传感技术的迅速发展,自动检测领域发生了巨大变化,温室环境自动监测控制方面的研究有了明显的进展,并且必将以其优异的性能价格比,逐步取代传统的温湿度控制措施.但是,目前应用于粮库的温湿度检测系统大多采用模拟温度传感器、多路模拟开关、A/D转换器与单片机等组成的传输系统。这种温湿度度采

9、集系统需要在粮库布置大量的测温电缆,才能把现场传感器的信号送到采集卡上,安装和拆卸繁杂,成本也高。同时线路上传送的是模拟信号,易受干扰和损耗,测量误差也比较大。为了克服这些缺点,本文参考了一种基于单片机并采用数字化单总线技术的温度测控系统应用于粮库的的设计方案闭,根据实用者提出的问题进行了改进,提出了一种新的设计方案,在单总线上传输数字信号。本文介绍的温湿度测控系统就是基于单总线技术与其器件组建的。该系统能够对粮库的温湿度进行采集,利用温湿度传感器将粮库温湿度的变化,变换成数字量,其值由单片机处理,最后由单片机去控制液晶显示器,显示粮库的实际温湿度,同时通过与预设量比较,对大棚的温度、湿度进行

10、自动调节。这种设计方案实现了温湿度实时测量、显示和控制。该系统抗干扰能力强,具有较高的测量精度,不需要任何固定网络的支持,安装简单方便,性价比高,可维护性好。这种温湿度测控系统可应用于粮食存储的粮库,实现对温度的实时控制,是一种比较智能、经济的方案,适于大力推广,以带来很好的经济效益和社会效益2。第二章 系统硬件电路的设计2.1系统硬件构成与其测控原理图2-1 系统整体框图图2-2 系统整体电路图本系统由如图2-1、图2-2所示,DHT11温湿度传感器采集数据,STC89C52单片机进行数据处理,LCD1602显示模块显示温湿度、粮库窗体状态、加热器和加湿器状态,通过矩阵键盘进行手动操作,切换

11、显示容,开关加热器和加湿器,设定温度湿度上下限。由步进电机控制粮库窗体开合程度,当温度小于设定温度下限时,粮库窗体完全关闭,并开启加热器,当温室大于设定上限时,粮库窗体完全开启,并关闭加热器,当温度处于设定上限和设定下限之间时,根据温度适当调节粮库窗体开角,可手动调节加热器开关。当湿度小于设定下限时,开启加湿器,当湿度高于设定上限时,关闭加湿器。当温湿度越限时,由报警电路进行报警。2.2单片机的选择2.2.1单片机概述单片微型计算机简称单片机,又称微控制器,嵌入式微控制器等,属于第四代电子计算机。它把中央处理器、存储器、输入/输出接口电路以与定时器计数器集成在一块芯片上,从而具有体积小、功耗低

12、、价格低廉、抗干扰能力强且可靠性高等特点,因此,适合应用于工业过程控制、智能仪器仪表和测控系统的前端装置。正是由于这一原因,国际上逐渐采用微控制器(MCU)代替单片微型计算机(SCM)这一名称。“微控制器”更能反映单片机的本质,但是由于单片机这个名称已经为国大多数人所接受,所以仍沿用“单片机”这一名称。1、单片机的主要特点有:(1) 具有优异的性能价格比。(2) 集成度高、体积小、可靠性高。(3) 控制功能强。(4) 低电压,低功耗。2、单片机的主要应用领域:(1) 工业控制(2) 仪器仪表(3) 电信技术(4) 办公自动化和计算机外部设备(5) 汽车和节能(6) 制导和导航(7) 商用产品(

13、8) 家用电器因此,在本课题设计的温湿度测控系统中,采用单片机来实现。在单片机选用方面,由于STC89系列单片机与MCS-51系列单片机兼容,所以,本系统中选用STC89C52单片机。2.2.2 STC89C52单片机的引脚说明图2-3 STC89C52单片机引脚图芯片引脚如图2-3所示:VCC : 电源。GND: 地。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有部上拉电阻。在flash编程时,P0口也用来接收指令字节;

14、在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口: 是一个具有部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表1所示。在flash编程和校验时,P1口接收低8位地址字节。P2口:P2口是一个具有部上拉电阻的8 位双向I/O口,P2输出缓冲器能驱动4个TTL 逻辑电平。对P

15、2端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,部上拉电阻把端口拉高,此时可以作为

16、输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如上表2-1所示。在flash编程和校验时,P3口也接收一些控制信号。RST: 复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉

17、冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当STC89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,P

18、SEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于89S52,如果EA 接VCC,程序读写先从部存储器(地址为0000H1FFFH)开始,接着从外部寻址,寻址地址为:2000HFFFFH。数据存储器:STC89C52 有256 字节片数据存储器。高128 字节与特殊功能寄

19、存器重叠。也就是说高128字节与特殊功能寄存器有一样的地址,而物理上是分开的。当一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)定时器2:定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的C/T2位选择(如表2所示)。定时器2有三种工作模式:捕捉方式、自动重载(向下或向上计数)和波特率发生器。工作模式由T2CON中的相关位选择。定时器2 有2 个8位寄存器:TH2和TL2。在定时工作方式中,每个机器周期,TL2 寄存器都会加1。由于一个机器周

20、期由12 个晶振周期构成,因此,计数频率就是晶振频率的1/12。中断:STC89C52 有6个中断源如表2-2所示:两个外部中断(INT0 和INT1),三个定时中断(定时器0、1、2)和一个串行中断每个中断源都可以通过置位或清除特殊寄存器IE 中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。程序进入中断服务后,这些标志位都可以由硬件清0。实际上,中断服务程序必须判定是否是TF2 或EXF2激活中断,标志位也必须由软件清03。表2-2 中断控制寄存器符号位地址功能EAIE.

21、7中断总允许控制位。EA=0,中断总禁止;EA=1,各中断由各自的控制位设定-IE.6预留ET2IE.5定时器2中断允许控制位ESIE.4串行口中断允许控制位ET1IE.3定时器1中断允许控制位EX1IE.2外部中断1允许控制位ET0IE.1定时器0中断允许控制位EX0IE.0外部中断1允许控制位2.2.3 STC89C52单片机最小系统图2-4 晶振电路图2-5 复位电路如图2-4、图2-5所示,复位电路和时钟电路是维持单片机最小系统运行的基本模块。单片机最小系统是在以51单片机为基础上扩展,使其能更方便地运用于测试系统中,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被测试

22、的技术指标,从而能够大大提高产品的质量和数量。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,称为在实时检测和自动控制领域中广泛应用的器件,在工业生产中称为必不可少的器件,尤其是在日常生活中发挥的作用也越来越大。2.3 显示模块的选择2.3.1LCD1602概述字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,如图2-5所示,目前常用16×1,16×2,20×2和40×2行等模块。现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。1602型LCD显示模块具有体积小,功耗低,显示容丰富等特点。1602型LCD

23、可以显示2行16个字符,有8位数据总线D0-D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能4。图2-6 LCD1602实物图2.3.2 LCD1602基本参数与引脚功能1602LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm引脚功能如表2-3所示:表2-3 引脚功能编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D

24、5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入

25、数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。表2-4 LCD1602控制命令序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)1

26、0要写的数据容11从CGRAM或DDRAM读数11读出的数据容LCD1602的读写操作,如图2-7、图2-8所示、屏幕和光标的操作都是通过指令编程来实现的。指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显

27、示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。图2-7 读操作时序图2-8 写操作时序图2-9 LCD1602部显示地址如图2-9所示,第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光

28、标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模

29、块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。1602LCD的一般初始化(复位)过程:(1)延时15mS(2)写指令38H(不检测忙信号)(3)延时5mS(4)写指令38H(不检测忙信号)(5)延时5mS(6)写指令38H(不检测忙信号)(7)以后每次写指令、读/写数据操作均需要检测忙信号(8)写指令38H:显示模式设置(9)写指令08H:显示关闭(10)写指令01H:显示清屏(11)写指令06H:显示光标移动设置(12)写指令0CH:显示开与光标设置2.4 控制面板电路设计图2-10 LCD1602显示模块电路图2-11 矩阵键盘电路图如图2-10、2-11,粮库温湿度智能

30、控制系统控制面板由显示器和矩阵键盘组成,显示器通过滑动变阻器调节灰度,8根数据线上分别连接上拉电阻,提高了系统的稳定性。矩阵键盘中包含中断触发电路,当有按键按下时可产生下降沿触发单片机外部中断0,从而调用键盘扫描程序,这种连接方式有效节省了系统资源,为未来的系统维护升级打下了基础。16个按键中共占用13个,剩余3个按键保留,按键0和4控制显示翻屏,通过按键调节显示需要的数据,按键1、5、9和13调节温度上下限,按键2、6、10和14调节湿度上下限,根据不同的粮食调整参数。按键3和7控制加热器和加湿器开关,在温度和湿度助于正常外围,可以手动调节加热器和加湿器开关。按键11是关机键,关机前单片机外

31、接设备复位,即关闭报警器、加热器、加湿器和粮库窗体5。2.5 温湿度传感器的选择2.5.1 DHT11数字温湿度传感器概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP存中,传感器部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统

32、集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供6。2.4.2 DHT11数字温湿度传感器性能说明表2-5 DHT11数字温湿度传感器性能参数条件MinTypMax单位湿度分辨率111%RH8Bit重复性±1%RH精度25±4%RH050±5%RH互换性可完全互换量程围03090%RH252090%RH502080%RH响应时间1/e(63%)25,1m/s 空气61015S迟滞±1%RH长期稳定性典型值±

33、1%RH温度分辨率111888Bit重复性±1精度±1±2量程围050响应时间1/e(63%)630S图2-12 DHT11典型应用电路如图2-12,建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。DHT11的供电电压为35.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分

34、用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出,数据格式:8bit湿度整数数据+8bit湿度小数数据,+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DH

35、T11不会主动进行温湿度采集.采集数据后转换到低速模式。总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是

36、1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一位数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态7。测量分辨率分别为 8bit(温度)、8bit(湿度)。2.4.3 DHT11数字温湿度传感器使用注意事项表2-6 DHT11电气特性参数条件mintypmax单位供电 DC355.5V供电电流测量0.52.5mA平均0.21mA待机100150uA采样周期秒1次DHT11电器特性如表2-6所示,超出建议的工作围可能导致高达3%RH的临时性漂移信号。返回正常工作条后,传感器会缓慢地向校准状态恢复。电阻式湿度传感器的

37、感应层会受到化学蒸汽的干扰,化学物质在感应层中的扩散可能导致测量值漂移和灵敏度下降。在一个纯净的环境中,污染物质会缓慢地释放出去。下文所述的恢复处理将加速实现这一过程。高浓度的化学污染会导致传感器感应层的彻底损坏。置于极限工作条件下或化学蒸汽中的传感器,通过如下处理程序,可使其恢复到校准时的状态。在50-60和< 10%RH的湿度条件下保持2 小时(烘干);随后在20-30和>70%RH的湿度条件下保持 5小时以上。气体的相对湿度,在很大程度上依赖于温度。因此在测量湿度时,应尽可能保证湿度传感器在同一温度下工作。如果与释放热量的电子元件共用一个印刷线路板,在安装时应尽可能将DHT1

38、1远离电子元件,并安装在热源下方,同时保持外壳的良好通风。为降低热传导,DHT11与印刷电路板其它部分的铜镀层应尽可能最小,并在两者之间留出一道缝隙。长时间暴露在太下或强烈的紫外线辐射中,会使性能降低。DATA信号线材质量会影响通讯距离和通讯质量,推荐使用高质量屏蔽线。手动焊接,在最高260的温度条件下接触时间须少于10秒。(1)避免结露情况下使用。(2)长期保存条件:温度1040,湿度60以下。2.5加热器加湿器开关电路设计图2-13 加热器加湿器开关电路图加热器开关和加湿器开关均采用如图2-13设计,通过光耦实现强电与弱电的隔离,HUMIDIFIER端与单片机相连,通过输出高低电平控制三极

39、管Q1工作状态,从而控制继电器K1开合。由于继电器属于感性原件,断电瞬间产生的大电流可能将三极管Q1和单片机烧坏,故在继电器两端并联二极管D2,起回流保护作用8。2.6步进电机驱动电路设计图2-13 步进电机驱动电路图如图2-14所示,五线四相步进电机M1通过ULN2003驱动。ULN2003是高耐压、大电流达林顿阵列,由七个硅NPN达林顿管组成,灌电流可达500mA,步进电机M14个控制端口分别连接ULN2003输出端,通过单片机控制ULN2003输入端,从而控制步进电机M1,同理驱动蜂鸣器9。 第三章 粮库温湿度智能控制系统软件设计3.1 Keil C 软件概述单片机开发中除必要的硬件外,

40、同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在

41、一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51开发系统基本知识Keil C51开发系统基本知识:1. 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片

42、机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 2. Keil C51单片机软件开发系统的整体结构 C51工具包的整体结构,其中uVision与Ishell分别是C51 f

43、or Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51与A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 使用独立的Keil仿真器时,注意事项:仿真器标配11.0592MHz的晶振,但用

44、户可以在仿真器上的晶振插孔中换插其他频率的晶振。 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 仿真芯片的31脚已接至高电平,所以仿真时只能使用片ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。1、安装好了Keil软件以后,我们打开它。2、 我们先新建一个工程文件,点击“Project->New Project”菜单。3、选择工程文件要存放的路径 ,输入工程文件名 xdch 最后单击保存。4、在弹出的对话框中选择 CPU 厂商与型号。5、选择好STC8

45、9C52芯片,接着点击确定,弹出对话框。6、新建一个 C51 文件, 单击左上角的 New File,保存为DS18B20_4.C,(注意后缀名必须为.C),再单击“保存”。7、存好后把此文件加入到工程中方法如下:用鼠标在 Source Group1 上单击右键, 然后再单击 Add Files to Group Source Group 1。8、 选择要加入的文件, 找到 MAIN.C后, 单击 Add, 然后单击 Close。9、在编辑框里输入代码。10、生成 .hex 烧写文件,先单击Options for Target。11、在下图中,我们单击 Output, 选中 Create HE

46、X F,再单击“确定”。以上是Keil软件的基本应用10。3.2 温室大棚控制系统程序设计3.2.1整体系统框图图4-1 系统整体框图如图4-1,初始化单片机设置中断,定义变量,然后初始化LCD1602显示模块,设置8位格式,2行,5×7矩阵显示,整体显示,关光标,不闪烁设定输入方式,增量不移位,清除屏幕显示,关闭加热器、加热器和报警器。调用温湿度采集程序进行数据采集,经过数据转换程序,将十六进制转换成十进制,将十进制数据输出到LCD1602显示模块进行显示。调用键盘扫描程序,根据键值修改程序变量。根据温度调整步进电机转角,根据温湿度是否越限判断是否报警以与开关加热器和加湿器,根据键

47、值判断是否关闭系统,若不关闭则进行下一轮数据采集,若关闭则复位外接设备,即关闭加热器、加湿器、关闭粮库窗体等。3.2.2 LCD1602显示模块程序设计图4-2 显示程序框图如图4-2,初始化LCD1602显示模块,设置8位格式,2行,5*7矩阵显示,整体显示,关光标,不闪烁设定输入方式,增量不移位,清除屏幕显示,延时等待,将采集到的温湿度数据进行转换,十六进制转换成十进制,然后,判断是否在第一行显示,输入相应的地址数据,延时等待,输入需要显示的数据。3.2.3 步进电机驱动程序设计图4-3 步进电机驱动程序框图如图4-3所示,步进电机驱动程序通过定时计数器0中断实现,通过设置中断时间,步进电

48、机驱动程序每5ms被调用一次,保证了控制的精确性同时占用较小的系统资源。定义两个全局变量保存粮库窗体当前转角以与期望转角,其中期望转角由系统自动设定::期望转角;Ts:当前温度值;Tf:设定温度上限;Tc:设定温度下限。即在0°至90°之间自动调节窗体开合。当前转角小于期望转角时,步进电机顺时针方向转动,当前转角大于期望转角时,步进电机逆时针方向转动,直到当前转角等于期望转角。3.2.4 矩阵键盘扫描程序设计图4.4 键盘扫描程序框图由于矩阵键盘的硬件设计中加入了中断触发短路,所以软件的设计上相对于其他设计更加节省系统资源,只有触发外部中断0时,才调用键盘扫描程序。如图4.

49、4,首先扫描键盘第一行,如果有按键按下,把键值保存在全局变量中并结束扫描程序,如果没有按键按下,则转到下一行,即第二行继续扫描,以此类推,若四行均无按键按下,则在全局变量中保存空值0xff并退出扫描程序。第四章 调试中遇到的问题在软件的调试过程中,遇到的问题有很多,下面就几个比较突出的问题进行说明。1)在对Keil C的使用时不知道怎么才能让它生成HEX文件,从而进行仿真,因为以前没有用过类似的软件,不会并且也不知道需要生成HEX文件,导致前期的工作很难进行2 )因为用的是DHT11数字传感器,在编程过程中需要对所测得温度进行处理,而且需要给定一个温度围,建立一个温度与粮库窗体开合角度的数学模

50、型,经过反复的计算、实验才实现。3)因为考虑到经济实用方面,所以在进行实物操作之前,采用proteus软件对程序和硬件电路进行仿真,可是在仿真过程中,独立按键总是不灵敏,这需要对延迟时间进行调整,而程序中设置的延迟时间总是不能够很符合实际操作,所以在这方面浪费了大量的时间进行反复的操作和实验4)在仿真过程中,因为用到的是LCD1602显示模块,这种显示模块是可以显示字符的,并且这种模块本身带有字库,但事实仿真过程中,电路要求相对宽松,不需加上拉电阻,而实际的电路调试过程需要加上拉电阻。结 论以上为毕业期间所设计的粮库温湿度智能控制系统,它经过多次修改和整理,可以满足设计的基本要求。采用STC8

51、9C52单片机、DHT11数字温湿度传感器、LCD1602液晶显示模块、矩阵键盘、步进电机和继电器等器件设计粮库温湿度智能控制系统,实现温湿度采集、英文显示,温湿度自动和手动调节,温湿度越限报警等功能。因为本人水平有限,此设计存在一定的问题。譬如系统抗干扰能力差,且没有实现步进电机的精确控制。由于使用的是单片机作为核心的控制元件,配合其它器件,使本温度控制系统具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平。 辞经过这段时间的忙碌和工作,本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导

52、,以与同学们的支持和帮助,想要完成这个设计是难以想象的。 在这里首先要感我的导师费继友教授。费教授平日里工作繁多,但在我做毕业设计的每个阶段,从设计草案的确定和修改,中期检查,后期详细设计,装配草图等整个过程中都给予了我悉心的指导。他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。 然后,还要感大学四年来所有的老师,为我们打下测控技术与仪器专业知识的基础;同时还要感所有的同学以与研究生们,正是因为有了你们的支持和鼓励,此次毕业设计才会顺利完成。 最后感母校交通大学四年来对我的大力栽培。参考文献 育才.MCS-51系列单片微型计算机与其应用(第四版) M.:东南大

53、学,20042 康华光.电子技术基础-模拟部分(第四版)M.:高等教育,19993 康华光.电子技术基础-数字部分(第四版)M.:高等教育,19994 石来德.机械参数电测技术M.:科学技术,19815 Ernest O.Doebelin. Measurement Systems: Application and Design M.America: McGraw-HILL BOOK COMPANY,19766 继松.测试电路M.:交通大学,19957 自美.电子线路设计实验测试M.:华中科技大学,20008 马靖善,玉平.C语言程序设计M.:清华大学,20059 赖麒文.8051 单片机 C语

54、言开发环境实务与设计 M.:科学,200210 徐爱钧.智能化测量控制仪表原理与设计M.:航空航天大学,2004附 录#include <reg52.h>#include <intrins.h>#define LCD_DB P0#define Keyboard P1#define Coil_A1 A1 = 1; B1 = 0; C1 = 0; D1 = 0;#define Coil_B1 A1 = 0; B1 = 1; C1 = 0; D1 = 0;#define Coil_C1 A1 = 0; B1 = 0; C1 = 1; D1 = 0;#define Coil_D

55、1 A1 = 0; B1 = 0; C1 = 0; D1 = 1;#define Coil_OFF A1 = 0; B1 = 0; C1 = 0; D1 = 0;sbit DQ = P20;sbit BUZZER = P21;sbit HUMIDIFIER = P22;sbit HEATER = P23;sbit LCD_RS = P24;sbit LCD_RW = P25;sbit LCD_E = P26;sbit BUZZER_LIGHTING = P27;sbit A1 = P34;/步进电机端口定义sbit B1 = P35;sbit C1 = P36;sbit D1 = P37;void initial(void);void LCD_write_command(unsigned

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论