摘要„„„„„„„„„„„„„„„„„„„„„„„„4
正文„„„„„„„„„„„„„„„„„„„„„„„„5
1设计思想„„„„„„„„„„„„„„„„„„„„„5
2硬件设计
2.1硬件设计要求„„„„„„„„„„„„„„„„„6 2.2具体硬件要求„„„„„„„„„„„„„„„„„6
3软件设计„„„„„„„„„„„„„„„„„„„„„10
4附录„„„„„„„„„„„„„„„„„„„„„„„14
5个人体会„„„„„„„„„„„„„„„„„„„„„15
摘要:
设计了一种基于单片机和 ATS52温湿度传感器的大棚温湿度控制系统。该系统性能可靠,结构简单,能实现对大棚内温湿度的自动调节。温室大棚种植技术已突破了传统的农 作物种植受地域自然环境等诸多因素的,对农业生产有重大意义。但目前我 国温室大棚的温湿度测量和设备的操作大多还是由人工来完成,当温室较大时,操作人员的劳动强度很大本温湿度控制系统是 以单片机控制为核心, 以DHT11单片集成温湿度传感器作为温湿度检测元件,初步实现了温室大棚的自动化管理,大大降低了工人的劳动强度。
关键词:温室大棚;单片机;温湿度传感器 。 正文
近年来,我国的设施农业得到了较大发展,温室大棚钟植技术已突破了传统的农 作物种植受地域自然环境等诸多因素的,对农业生产有重大意义。但目前我 国温室大棚的温湿度测量和设备的操作大多还是由人工来完成,当温室较大时,操作人员的劳动强度很大本温湿度控制系统是 以单片机控制为核心, 以DHT11单片集成温湿度传感器作为温湿度检测元件。从硬件和软件两个方面介绍了单片机温度控制系统的设计思路,对硬件原理图和程序流程图进行了系统的描述。系统具有键盘调节上下限温湿度,LCD液晶显示温湿度的功能,实现了温湿度的自动测量和自动控制,可将大棚内的温度始终控制在适合蔬菜生长的温湿度范围内,初步实现了温室大棚的自动化管理,大大降低了工人的劳动强度。 1设计思想
1
伴随着科学技术的迅速发展,我国农业也逐渐地从传统农业像高产、优质、高效为目的的现代化农业转变。而作为家乡的蔬菜大棚,自然也离不开现代化的科学技术。通过国内外大量的科学实验和生产的实践证明,环境的控制对蔬菜生产起到重要的作用。只有在适宜的生长环境下蔬菜才能充分发挥其高产潜力。对于蔬菜大棚内环境的控制主要是对环境温度,土壤湿度等进行测量和控制,为了更好地测量、控制湿度温度和土壤湿度等蔬菜生长的因素,本文设计了已ATS52单片机为控制器的智能测控系统,通过该系统可以对环境温度、湿度等观测值进行自动控制和适时检测,并利用声音和灯光进行超限报警及相应的处理。1·*-++*-*+ 2硬件设计 2.1硬件要求
根据设计要求确定了系统的总体方案,整个系统由单片机、温湿度传感器、显示模块、报警器、温湿度调节系统以及键盘等6部分组成。系统功能原理图如图1所示。用户预先输入温湿度报警值到程序中,该值作为系统阈值。温湿度传感器监测值传输给单片机,当单片机比较监测到的数值超出所设定阈值时,驱动蜂鸣器报警,并为温湿度调节系统提供控制信号,实现自动控制。温湿度调节系统包括加湿模块、除湿模块、加温模块和制冷模块。
温湿度传感器 LCD温湿度显示部分 单片机 温湿度调节部分 键盘 蜂鸣器
图1 温湿度监控系统功能原理图 2.2具体硬件设计
单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起。这种设计方法可以降低系统设计的复杂性。系统电路原理图如图2所示。本系统主要硬件设计包括蜂鸣器电路、晶振电路、复位电路、LCD 显示电路以及温湿度传感器电路。 2.2.1 单片机简介
控制电路的核心器件是由美国Atmel公司生产的ATS52单片机,属于MCS-51系列。ATS52是一种低功耗、高性能的CMOS8位微控制器,具有8K在系统可编程Flash存储器,采用的工艺是Atmel公司的高密度非易失存储器技术;片上Flash允许程序存储器在系统可编程,亦适于常规编程器;在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得ATS52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;价格低廉、性能可靠、抗干扰能力强。因此广泛应用于工业控制和嵌入式系统中。 主要性能
2
• 与MCS-51单片机产品兼容
• 8K字节在系统可编程Flash存储器 • 1000次擦写周期
• 全静态操作:0Hz~33Hz • 三级加密程序存储器 • 32个可编程I/O口线 • 三个16位定时器/计数器 • 八个中断源
• 全双工UART串行通道 • 低功耗空闲和掉电模式 • 掉电后中断可唤醒 • 看门狗定时器 • 双数据指针 • 掉电标识符
(1)功能特征描述
ATS52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得ATS52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。ATS52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,ATS52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 引脚功能 VCC :电源 GND: 接地 P0口: P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。
P1口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。 引脚号 第二功能 P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 P1.5 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) MOSI(在系统编程用) 3
P1.6 P1.7 MISO(在系统编程用) SCK(在系统编程用) P2口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“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”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为ATS52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。 引脚号 第二功能 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD(串行输入) TXD(串行输出) INT0 (外部中断0) INT1 (外部中断1) T0(定时器0外部输入) T1定时器1外部输入) WR (外部数据存储器写选通) RD (外部数据存储器读选通) RST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。
ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:外部程序存储器选通信号(PSEN)是序存储器外部程选通信号。当ATS52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
4
EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接
收12伏VPP电压。
XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 (2) 存储器结构
MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以K寻址。 程序存储器: 如果EA引脚接地,程序读取只从外部存储器开始。对于S52,如果EA 接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:2000H~FFFFH。 数据存储器: ATS52 有256 字节片内数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。例如,下面的直接寻址指令访问0A0H(P2口)存储单元 MOV 0A0H , #data
使用间接寻址方式访问高128 字节RAM。例如,下面的间接寻址方式中,R0 内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。 MOV @R0 , #data
堆栈操作也是简介寻址方式。因此,高128字节数据RAM也可用于堆栈空间。
(3) 看门狗定时器
WDT是一种需要软件控制的复位方式。WDT 由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT 在默认情况下无法工作;为了激活WDT,户用必须往WDTRST 寄存器(地址:0A6H)中依次写入01EH 和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RSR引脚一个高个电平输出。 为了激活WDT,用户必须向WDTRST寄存器(地址为0A6H的SFR)依次写入0E1H和0E1H。当WDT激活后,用户必须向WDTRST写入01EH和0E1H喂狗来避免WDT溢出。当计数达到8191(1FFFH)时,13 位计数器将会溢出,这将会复位器件。晶振正常工作、WDT激活后,每一个机器周期WDT 都会增加。为了复位WDT,用户必须向WDTRST 写入01EH 和0E1H(WDTRST 是只读寄存器)。WDT 计数器不能读或写。当WDT 计数器溢出时,将给RST 引脚产生一个复位脉冲输出,这个复位脉冲持续96个晶振周期(TOSC),其中TOSC=1/FOSC。为了很好地使用WDT,应该在一定时间内周期性写入那部分代码,以避免WDT复位。 (4)掉电和空闲方式下的WDT
在掉电模式下,晶振停止工作,这意味这WDT也停止了工作。在这种方式下,用户不必喂狗。有两种方式可以离开掉电模式:硬件复位或通过一个激活的外部中断。通过硬件复位退出掉电模式后,用户就应该给WDT 喂狗,就如同通常ATS52 复位一样。通过中断退出掉电模式的情形有很大的不同。中断应持续拉低很长一段时间,使得晶振稳定。当中断拉高后,执行中断服务程序。为了防止WDT在中断保持低电平的时候复位器件,WDT 直到中断拉低后才开始工作。这就意味着WDT 应该在中断服务程序中复位。为了确保在离开掉电模式最初的几个状态WDT不被溢出,最好在进入掉电模式前就复WDT。在进入待机模式前,特殊寄存器AUXR的WDIDLE位用来决定WDT是否继续计数。默认状态下,在待机模式下,WDIDLE=0,WDT继续计数。为了防止WDT在待机模式下复位ATS52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。 (5) UART
在ATS52 中,UART 的操作与ATC51 和ATC52 一样。为了获得更深入的关于UART 的信
5
息,可参考ATMEL 网站(http//www.atmel.com)。从这个主页,选择“Products”,然后选择“8051-Architech Flash Microcontroller”,再选择“ProductOverview”即可。 (6)定时器0 和定时器1
在ATS52 中,定时器0 和定时器1 的操作与ATC51 和ATC52 一样。为了获得更深入的关于UART 的信息,可参考ATMEL 网站(http://www.atmel.com)。从这个主页,选择“Products”,然后选择“8051-Architech Flash Microcontroller”,再选择“Product Overview”即可。 (7) 定时器2
定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的C/T2位选择(如表2所示)。定时器2有三种工作模式:捕捉方式、自动重载(向下或向上计数)和波特率发生器。如表3 所示,工作模式由T2CON中的相关位选择。定时器2 有2 个8位寄存器:TH2和TL2。在定时工作方式中,每个机器周期,TL2 寄存器都会加1。由于一个机器周期由12 个晶振周期构成,因此,计数频率就是晶振频率的1/12。 表3 定时器2工作模式 RCLK +TCLK TR2 MODE CP/RL2 0 0 1 16位自动重载 0 1 1 16位捕捉 1 X 1 波特率发生器 X X 0 (不用) 在计数工作方式下,寄存器在相关外部输入角T2 发生1 至0 的下降沿时增加1。在这种方式下,每个机器周期的S5P2期间采样外部输入。一个机器周期采样到高电平,而下一个周期采样到低电平,计数器将加1。在检测到跳变的这个周期的S3P1 期间,新的计数值出现在寄存器中。因为识别1-0的跳变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。为了确保给定的电平在改变前采样到一次,电平应该至少在一个完整的机器周期内保持不变。 捕捉方式
在捕捉模式下,通过T2CON中的EXEN2来选择两种方式。如果EXEN2=0,定时器2时一个16位定时/计数器,溢出时,对T2CON 的TF2标志置位,TF2引起中断。如果EXEN2=1,定时器2做相同的操作。除上述功能外,外部输入T2EX引脚(P1.1)1至0的下跳变也会使得TH2和TL2中的值分别捕捉到RCAP2H和RCAP2L中。除此之外,T2EX 的跳变会引起T2CON 中的EXF2 置位。像TF2 一样,T2EX 也会引起中断。 自动重载
当定时器2 工作于16 位自动重载模式,可对其编程实现向上计数或向下计数。这一功能可以通过特殊寄存器T2MOD(见表4)中的DCEN(向下计数允许位)来实现。通过复位,DCEN 被置为0,因此,定时器2 默认为向上计数。DCEN 设置后,定时器2就可以取决于T2EX向上、向下计数。DCEN=0 时,定时器2 自动计数。通过T2CON 中的EXEN2 位可以选择两种方式。如果EXEN2=0,定时器2计数,计到0FFFFH后置位TF2溢出标志。计数溢出也使得定时器寄存器重新从RCAP2H 和RCAP2L 中加载16 位值。定时器工作于捕捉模式,RCAP2H和RCAP2L的值可以由软件预设。如果EXEN2=1,计数溢出或在外部T2EX(P1.1)引脚上的1到0的下跳变都会触发16位重载。这个跳变也置位EXF2中断标志位。置位DCEN,允许定时器2向上或向下计数。在这种模式下,T2EX引脚控制着计数的方向。T2EX上的一个逻辑1使得定时器2向上计数。定时器计到0FFFFH溢出,并置位TF2。定时器的溢出也使得RCAP2H和RCAP2L中的16位值分别加载到定时器存储器TH2和TL2中。T2EX 上的一个逻辑0 使得定时器2 向下计数。当TH2 和TL2 分别等于RCAP2H 和RCAP2L中的值的时候,计数器下溢。计数器下溢,置位TF2,并将0FFFFH加载到定时器存储器中。定时器2上溢或下溢,外部中断标志位EXF2 被锁死。在这种工作模式下,EXF2不能触发中断。 波特率发生器
通过设置T2CON中的TCLK或RCLK可选择定时器2 作为波特率发生器。如果定时器2作为发送
6
或接收波特率发生器,定时器1可用作它用,发送和接收的波特率可以不同。如图8 所示,设置RCLK 和(或)TCLK 可以使定时器2 工作于波特率产生模式。波特率产生工作模式与自动重载模式相似,因此,TH2 的翻转使得定时器2 寄存器重载被软件预置16位值的RCAP2H和RCAP2L中的值。模式1和模式3的波特率由定时器2溢出速率决定,具体如下公式:
模式1和模式3波特率=定时器2溢出率
16定时器可设置成定时器,也可为计数器。在多数应用情况下,一般配置成定时方式 (CP/T2=0)。定时器2 用于定时器操作与波特率发生器有所不同,它在每一机器周期 (1/12晶振周期)都会增加;然而,作为波特率发生器,它在每一机器状态(1/2晶振 周期)都会增加。波特率计算公式如下:
模式1和模式3波特率=晶振频率
32[65536(RCAP2H,RCAP2L)]其中,(RCAP2H,RCAP2L)是RCAP2H和RCAP2L组成的16位无符号整数。特别强调,TH2的翻转
并不置位TF2,也不产生中断; EXEN2置位后,T2EX引脚上1~0的下跳变不会使(RCAP2H,RCAP2L)重载到(TH2,TL2)中。因此,定时器2作为波特率发生器,T2EX也还可以作为一个额外的外部中断。定时器2处于波特率产生模式,TR2=1,定时器2正常工作。TH2或TL2不应该读写。在这种模式下,定时器在每一状态都会增加,读或写就不会准确。寄存器RCAP2可以读,但不能写,因为写可能和重载交迭,造成写和重载错误。在读写定时器2 或RCAP2寄存器时,应该关闭定时器(TR2清0)。 可编程时钟输出
可以通过编程在P1.0 引脚输出一个占空比为50%的时钟信号。这个引脚除了常规的I/O 角外,还有两种可选择功能。它可以通过编程作为定时器/计数器2 的外部时钟输入或占空比为50%的时钟输出。当工作频率为16MHZ时,时钟输出频率范围为61HZ到4HZ。为了把定时器2配置成时钟发生器,位C/T2(T2CON.1)必须清0,位T2OE(T2MOD.1)必须置1。位TR2(T2CON.2)启动、停止定时器。时钟输出频率取决于晶振频率和定时器2捕捉寄存器(RCAP2H,RCAP2L)的重载值,如公式所示:
晶振频率
时钟输出频率 4[65536(RCAP2H,RCAP2L)]在时钟输出模式下,定时器2不会产生中断,这和定时器2用作波特率发生器一样。定时器2也可以同时用作波特率发生器和时钟产生。不过,波特率和输出时钟频率相互并不,它们都依赖于RCAP2H和RCAP2L。 10. 中断
ATS52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中断(定时器0、1、2)和一个串行中断。每个中断源都可以通过置位或清除特殊寄存器IE 中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。IE.6位是不可用的。对于ATS52,IE.5位也是不能用的。用户软件不应给这些位写1。它们为AT系列新产品预留。定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。程序进入中断服务后,这些标志位都可以由硬件清0。实际上,中断服务程序必须判定是否是TF2 或EXF2激活中断,标志位也必须由软件清0。定时器0和定时器1标志位TF0 和TF1在计数溢出的那个周期的S5P2被置位。它们的值一直到下一个周期被电路捕捉下来。然而,定时器2 的标志位TF2 在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。 11. 晶振特性
ATS52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件
7
的话,XTAL2 可以不接,而从XTAL1 接入。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。 。
DHT11温湿度检测部分
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。 应用领域 ►暖通空调
►测试及检测设备 ►汽车
►数据记录器 ► 消费品 ►自动控制 ►气象站 ►家电
►湿度调节器 ►医疗 ►除湿器 型号 测量范围 测湿精度 测温精度 分辨力 封装 DHT11 20-90%RH 0-50℃ ±5%RH ±2℃ 1 4针单排直插 8
1、传感器性能说明 参数 湿度 分辨率 重复性 精度 互换性 量程范围 0℃ 25℃ 50℃ 响应时间 1/e(63%)25℃,1m/s 空气 迟滞 长期稳定性 温度 分辨率 重复性 精度 量程范围 响应时间 ±1 0 1/e(63%) 6 1 8 1 8 ±1 ±2 50 30 1 8 ℃ ℃ ℃ S ℃ Bit 典型值 6 ±1 ±1 25℃ 0-50℃ 1 8 ±1 ±4 ±5 30 20 20 10 90 90 80 15 %RH %RH/yr 1 1 Bit %RH %RH %RH %RH %RH %RH S %RH 条件 Min Typ Max 单位 可完全互换
2、 接口说明
建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻
3、 电源引脚
DHT11的供电电压为 3-5.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。
4、串行接口 (单线双向)
DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:
一次完整的数据传输为40bit,高位先出。
数据格式:8bit湿度整数数据+8bit湿度小数数据 +8bi温度整数数据+8bit温度小数数据 +8bit校验和
数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。
用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束
9
后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。 1. 通讯过程如图1所示
图1
总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。
图2
总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。 数字0信号表示方法如图4所示
10
数字1信号表示方法.如图5所示
5、 测量分辨率
测量分辨率分别为 8bit(温度)、8bit(湿度)。
6、电气特性
VDD=5V,T = 25℃,除非特殊标注 参数 供电 条件 DC min typ max 单位 3 5 5.5 V 0.5 2.5 mA mA 次 供电电流 测量 平均 0.2 1 采样周期
待机 100 150 uA 秒 1 11
注:采样周期间隔不得低于1秒钟。
2.2.3复位电路设计
ATS52的复位输入引脚RST为单片机提供了初始化的手段,可以使程序从指定处开始执行,在ATS52的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位的操作,只要RST保持高电平,则ATS52循环复位,只有当RET由高电平变成低电平以后,ATS52才从0000H地址开始执行程序,本系统采用按键复位方式的复位电路。
图3-3 复位电路
2.2.4外部晶振时钟电路设计
ATS52的时钟可以由两种方式产生,一种是内部方式,利用芯片内部的振荡电路;另外一种为外部方式,本论文根据实际需要和简便,采用内部振荡方式,MCS-51内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端,这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成了一个自激振荡器。
ATS52虽然有内部振荡电路,但要形成时钟,必须外接元件,所以实际构成的振荡时钟电路,外接晶振以及电容C1和C2构成了并联谐振电路接在放大器的反馈回路中,对接电容的值虽然没有严格的要求,但电容的大小会影响振荡频率的高低,振荡器的稳定性,起振的快速性和温度的稳定性。晶振的频率可在1.2MHZ~12MHZ之间任选,电容C1和C2的典型值在20pf~100pf之间选择,由于本系统用到定时器,为了方便计算,采用了12MHZ的晶振,采
12
用电容选择30pf。
图3-4 晶振电路的设计 2.2.5 键盘及读数原理
抢答器输入信号由八个小按键控制与单片机的P1口连接,当有按键按下的时候,就产生了有效地输入信号。根据P1口按键输入的高低电平,判断是哪个按键按下,并执行相应的操作。
键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动。
图3-5键盘电路设计 LED液晶显示部分
显示器LCD1602特点与简介 液晶显示器的有以下特点:
13
1.液晶显示屏是以若干个5X8或5X11点阵块组成的显示字符群。每个点阵块为一个字符位,字符间距和行距都为一个点的宽度。
2.主控制驱动电路为HD44780(HITACHI)及其他公司全兼容电路,如SED1278(SEIKOEPSON),KS0066(SAMSUNG),NJU08(NERJAPANRADIO)。
3.具有字符发生器ROM可显示192种字符(160个5X7点阵字符和32个5X10点阵字符,见附录3。
4.具有个字节的自定义字符RAM,可自定义8个5X8点阵字符或4个5X11点阵字符。 5.具有80个字节的RAM。
7.模块结构紧凑,轻巧,装配容易。
8.单+5V 电源供电(宽温型需要一个-7V的电源供电)。 9.低功耗,长寿命,高可靠性。 LCD1602的引脚功能说明如表2-8。 二、 显示电路与单片机的连接 就时钟而言,通常采用LCD或LED显示,对LED来说ATC52本身设有专门的液晶驱动电路,LED结构简单,体积小,功耗低,响应速度快,寿命长,可靠性也高,等优点,而且亮度也高,价格也便宜,但是本时钟设计要一个很直观的显示效果,LED就会除了8段的显示,位选也要占用大量的资源,不易控制。如果选用LCD的 话,显示就比较直观,占用的硬件资源就相对少些。而且对我们研究学习,不在于便宜,是我们要学到更多的知识,本设计采用1602显示,其与单片机的连接如图2-9[4]。
图2-9单片机与LCD1602的连接图 表2-8 LCD1602的引脚功能说明 引脚号 1 2 3
符号 Vss Vdd V0 状态 功能 电源地 +5V逻辑电源 液晶驱动电源 14
4 5 6 7 8 9 10 11 12 13 14 15 16 指示灯的设计
RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 A K 输入 输入 输入 三态 三态 三态 三态 三态 三态 三态 三态 输入 输入 寄存器1数据,0命令 读写操作选择1读,0写 是能信号 数据总线 数据总线 数据总线 数据总线 数据总线 数据总线 数据总线 数据总线 上两行使能信号 下两行使能信号
报警电路设计
采用三极管的锁存原理,当P14为低电平时,三极管导通,蜂鸣器响
15
2.2.9 继电器控制部分电路设计
继电器线圈需要流过较大的电流(约50mA)才能使继电器吸合,一般的集成电路不能提供这样大的电流,因此必须进行扩流,即驱动。
用PNP型三极管驱动继电器的电路图,继电器线圈作为发射极负载而接到发射极和正电源之间。当输入为+VCC时,三极管截止,继电器线圈无电流流过,则继电器释放(OFF);相反,当输入为0时,三极管饱和,继电器线圈有相当的电流流过,则继电器吸合(ON)。 当输入电压由变0V为+VCC时,三极管由饱和变为截止,这样继电器电感线圈中的电流突然失去了流通通路,若无续流二极管D将在线圈两端产生较大的反向电动势,极性为下正上负,电压值可达一百多伏,这个电压加上电源电压作用在三极管的集电极上足以损坏三极管。故续流二极管D的作用是将这个反向电动势通过图中箭头所指方向放电,使三极管集电极对地的电压最高不超过+VCC +0.7V。
16
3 软件设计
系统单片机代码采用C语言编写,以Keil uVision2为开发环境。系统软件实现的功能: 1)通过LCD显示温湿度值;
2)比较监测到的温湿度值和报警设置值,发现超限则蜂鸣器报警提示; 3)根据相应的温湿度值控制温湿度调节系统运行。
根据温湿度监控系统功能,系统软件流程图如图8所示。 3.1总程序流程图:
17
开始 显示当前温湿度 通过按键设定上下限温湿度 检测当前温湿度 Y 计算出温湿度 温湿度在上下限之内 N 继电器动作,报警灯亮
3.2 温湿度处理
检测到温湿度 温度大于上限温度 湿度大于上限温度 Y 温高灯亮,蜂鸣器报警,风扇继电器打开 温低灯亮,蜂鸣器报警,加热继电器打开 湿低灯亮,蜂鸣器报警,浇水继电器打开 温度小于下限温度 湿度小于下限温度 Y N N 湿高灯亮,蜂鸣N Y Y N 器报警,干燥继电器打开
18
3.3 按键处理子程序
19
显示当前温度湿度 上限温度减1 界面按键第一次按下 显示温度上下限 减小键按下 功能键第一次按下 增大键按下 上限温度加1 下限温度减1 减小键按下
功能键第二次按下 20 增大键按下 下限湿度减1
减小键按下
功能键第二次按下
减小键按下
功能键第三次按下 界面按键第三次按下
下限湿度加1
参考文献
[1]杰.《单片微机的原理与应用》.机械工业出版社 [2]童诗白,华成英,模拟电子技术基础,高等教育出版社
[3]赵娜,赵刚,于珍珠等.基于51 单片机的温度测量系统[J].高等教育出版社
[4]胡辉,王晓,戴永茂,陈光军。MCS-51单片机原理及工程应用[M]。国防工业出版社
个人体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的
21
重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好„„通过这次课程设计之后,一定把以前所学过的知识重新温故。
22
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- hids.cn 版权所有 赣ICP备2024042780号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务