已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕 业 设 计 课 题 温室大棚温湿度自动检测系统设计目 录温室大棚温湿度自动检测系统设计3摘 要3第一章 绪论51.1本文研究的背景及意义51.2温湿度检测的发展状况以及存在的问题51.3本课程设计的主要内容6第2章 设计任务分析及方案论证62.1 单片机STC89C5272.1.1片机的基本结构72.1.2单片机的存储组织82.1.3单片机的并行口结构与功能92.2 温湿度传感器112.2.1DHT11产品概述1122.2接口说明112.2.3电源引脚122.2.4串行接口 (单线双向)122.2.5 DHT11引脚说明122.2.6 焊接信息122.2.7、注意事项122.3 LCD160213第3章系统的硬件设计和连接143.1电源电路143.2 MCU晶振电路143.3 MCU复位153.4报警电路153.5 DHT11电路153.6 按键扫描电路163.7 LCD1602163.8 PCB 3D图16第4章软件设计184.1系统流程图184.2按键流程图184.3代码19总结28参考文献28附录29附录一:原路图29附图二:PCB顶层30附录三:PCB底层31温室大棚温湿度自动检测系统设计摘 要本次设计是采用STC89C52-RC系列单片机中的STC89C52和DHT11构成的低成本的温湿度的检测控制系统。单片机STC89C52是一款低消耗、高性能的CMOS8位单片机,由于它强大的功能和低价位,因此在很多领域都是用它。DHT11温湿度传感器是一款含有已校准数字输出的温湿度复合传感器,传感器包括一个电阻式感湿原件和一个NTC测温元件,该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。设计主要包括硬件电路的设计和系统软件的设计。硬件电路主要包括单片机、温湿度传感器、显示模块、报警器以及控制设备等5部分。其中由DHT11温湿度传感器及1602字符型液晶模块构成系统显示模块;测温湿度控制电路由温湿度传感器和预设温度值比较报警电路组成;用户根据需要预先输入预设值,当实际测量的温湿度不符合预设的温湿度标准时,发出报警信号(蜂鸣器蜂鸣),启动相应控制。软件部分包括了主程序、显示子程序、测温湿度子程序。 关键词:AT89S51;DHT11;温湿度传感器Greenhouse temperature and humidity automatic detection system designAbstract Microcontroller STC89C52-RC is a low consumption, high performance CMOS8 bit microcontroller.Because of its powerful features and low price, so it is used in many areas.DHT11 temperature and humidity sensor is a temperature and humidity combined sensor contains a calibrated digital output, the sensor consists of a resistor in the original sense of wet and a NTC temperature measurement devices.The product has many advantage,such as excellent quality, fast response, strong anti-jamming capability . This design is fromed by the STC89C52 in MSC-51 Series and DHT11 constitute which is a low-cost temperature and humidity measurement and control system. The design includes the design of hardware circuit design and system software. The hardware has Five modules.They are a microcontroller, temperature and humidity sensors, display module, alarm and control equipment. The 1602-character LCD module constitute the system display module.The temperature and humidity control circuit by the temperature and humidity sensors and preset temperature alarm circuit.According to the need of pre-enter the default value, when the actual measurement of the temperature humidity does not conform the preset temperature and humidity standards, send the alarm signal (buzzer will beep), and start the corresponding control.The software part includes the main program, the display routines, temperature and humidity subroutine. Key words:Temperature and humidity measurement;Temperature and humidity control;STC 89C52 ;DHT11第一章 绪论1.1本文研究的背景及意义随着现代技术的不断发展,生产生活现代化的不断提高,用温室大棚技术来培养农作物可以显著的提高农作物产量,降低农业生产对自然环境和气候变化的要求。然而温室大棚对于温度湿度等一系列空气成分指标要求非常严格,而现代化的温室大棚则必须有一整套温度湿度的检测和控制系统,本设计就是为了适应现代温室大棚的需求,更加方便有效地观测环境温湿度,以便于更为科学合理地对温室大棚进行管理。1.2温湿度检测的发展状况以及存在的问题传统的温度和湿度检测系统主要有以下几种:(1)水汽压(e):是水汽在大气总压力中的分压力。它表示了空气中水汽的绝对含量的大小,以毫巴为单位。(2)相对湿度(rh):湿空气中实际水汽压e与同温度下饱和水汽压E的百分比,相对湿度的大小能直接表示空气距离饱和的相对程度。空气完全干燥时,相对湿度为零。相对湿度越小,表示当时空气越干燥。当相对湿度接近于100%时,表示空气很潮湿,越接近于饱和。(3)露点(或霜点)温度:指空气在水汽含量和气压都不改变的条件下,冷却到饱和时的温度。(4)干湿球温度表:用一对并列装置的、形状完全相同的温度表,一支测气温,称干球温度表,另一支包有保持浸透蒸馏水的脱脂纱布,称湿球温度表。(5)发湿度表(计):利用脱脂人发(或牛的肠衣)具有空气潮湿时伸长,干燥时缩短的特性,制成毛发湿度表或湿度自记仪器,它的测湿精度较差,毛发湿度表通常在气温低于-10时使用。(6)电阻式湿度片:利用吸湿膜片随湿度变化改变其电阻值的原理,常用的有碳膜湿敏电阻和氯化锂湿度片两种。前者用高分子聚合物和导电材料碳黑,加上粘合剂配成一定比例的胶状液体,涂覆到基片上组成的电阻片;后者是在基片上涂上一层氯化锂酒精溶液,当空气湿度变化时,氯化锂溶液浓度随之改变从而也改变了测湿膜片的电阻。(7)薄膜湿敏电容:是以高分子聚合物为介质的电容器,因吸收(或释放)水汽而改变电容值。它制作精巧,性能优良,常用在探空仪和遥测中。随着智能检测系统的飞速发展,基于单片机的温湿度检测系统将多传感器系统结合在一起。如何把多传感器集中于一个检测控制系统,综合利用来自多传感器的信息,获得对被测对象的可靠了解和解释,以利于系统做出正确的响应、决策和控制,是智能检测控制系统中需要解决的首要问题。在温湿度要求严格的场合,利用多传感技术可以提高系统的可靠性和精度,亦可以提高系统的时间空间的覆盖范围。1.3本课程设计的主要内容单片机是系统的控制核心,所以单片机的性能关系到整个系统的好坏。因此单片机的选择,对所设计系统的实现以及功能的扩展有着很大的影响。单片机种类很多,在众多51系列单片机中,较为常用的是ATMEL 公司的AT89C51和AT89S52单片机,AT89C51片内4KROM是Flash工艺的,使用专用的编程器自己就可以随时对单片机进行电擦除和改写,片内有128字节的RAM。而AT89S52含有在系统可编程的Flash存储器,片内有8K闪存,RAM的容量也较AT89C51大,为256字节。显然这种单片机优点更多,开发时间也大为缩短。在本次设计中选用了STC89C52单片机。键盘接口电路较为简单,而显示部分有两种方案供选择:一种为LCD,一种为LED。LCD液晶显示的像素单元是整合在同一块液晶版当中分隔出来的小方格。通过数码控制这些极小的方格进行显像。显示非常细腻但是造价很高。而LED数码显示中每一个像素单元就是一个发光二极管,如果是单色,一般是红色发光二极管。如果是彩色,一般是三个三原色小二极管组成的一个大二极管。这些二极管组成的矩阵由数码控制实时显示文字或图象,造价相对低廉,显示效果也较好。本设计中,最终选用的集成温度传感器DHT11,采集到的温湿度信号送至单片机,实现温湿度的显示与控制。系统主要由以上元器件组成,通过硬件电路和软件程序的设计,实现系统的基本功能。第二章 设计任务分析及方案论证本设计是基于单片机对数字信号的高敏感和可控性、温湿度传感器可以产生模拟信号,和A/D模拟数字转换芯片的性能,此设计以STC89C52基本系统为核心的一套检测系统,其中包括单片机、复位电路、温湿度检测、按键控制及显示、报警电路、系统软件等部分的设计。系统总体方框图如图21。PC复位电路DHT11温湿度传感器LCD1602显示STC89C52单片机报警控制按键控制晶振电路电源电路图2-1系统总体框图2.1 单片机STC89C52STC89C52是一种低功耗、高性能CMOS八位微控制器,具有8K在系统可编程Flash存储器,使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许ROM在线系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使其为众多嵌入式控制应用系统提供灵活的解决方案。 图2-2 STC89C52 2.1.1片机的基本结构STC89C52基本型单片机组成如图2-3所示,它主要由中央处理器(CPU)、程序存储器(ROM/EPROM/Flash)、数据存储器(RAM)及特殊功能寄存器(SFR)、四个并行口、一个串口组成,此外还包括定时器/中断系统和时钟电路等。XTAL2 XTAL1VccRAM 128BSFR21个定时/计数器 2个ROM/EPROM/Flash 4kb时钟电路VssRS EA ALE PSENP0 P1 P2 P3CPU并行口4个串行口全双工1个中断系统5个中断源、2个优先级总线控制 图2-3 单片机的组成框图CPU是单片机的核心,主要由运算器,控制器组成,运算器包括一个8位算数/逻辑运算ALU、累加器ACC、寄存器B、暂存器、程序状态字寄存器PSW等。控制器由指令寄存器IR、指令译码器及控制逻辑单元组成。STC89C52的引脚如图2-2所示1.并行口引脚32个(1)P0.0-P0.7:P0口(2)P1.0-P1.7:P1口(3)P2.0-P2.7:P2口(4)P3.0-P3.7:P3口,除作为一般的I/O口,还有以下功能:RXD、TXD构成串口;INT1 INT0位外部中断引脚;T0、T1为定时器/计数器引脚;WR 为读允许,RD为写允许。2.电源引脚有两个(1)VCC:电源接入引脚(2)VSS:为接地引脚3.时钟引脚有两个:XTAL1、XTAL24.控制引脚有四个:RST、ALE、2.1.2单片机的存储组织1.程序存储器的配置(1)的作用:片内外ROM的选择端。当=1时;先内后外,即当程序存储器地址在0000H0FFFH时,选则内部ROM,而当地址超过0FFFH时,选择外部ROM。当=0时,选择外部ROM。(2)的作用片外ROM的选通端,当=0时选通外部ROM。2.数据存储器的配置片内数据存储器共128个字节,分为三个字节。(1) 工作寄存器区(0X00-0X1F)共32个字节,每个字节作为一个工作寄器,分为四个组,每个组都有8个寄存器,分别用R0-R7表示。任一时刻,CPU只能使用其中一组寄存器(被称为当前寄存器组)来存放操作数机中间结果。(2)位寻址区(20H-2FH):这个区内的每一个字节的每一位都有自身的地址,因而可以位操作,(3)通用RAM区;可以作为数据缓存器使用,一般应用中,常把堆栈开辟在此区域。 2.1.3单片机的并行口结构与功能 STC89C52有四个并行的I/O口P0、P1、P2、P3、各口均由口锁存器,输入缓冲器输出驱动器构成,除可作为一般的I/O口使用外,还有各自的特点和应用。 1. P0口P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P0口在访问外部存储器时,P0口既是一个真正的双向数据总线口,又是输出8位地址口。它包括一个输出锁存器,两个三态缓冲器,一个输出驱动电路和一个输出控制电路。2.P1口P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入”1”后,被内部上拉为高电平,可用作输入。P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。专门为用户使用的I/O口,是准双向口,P1口为8位准双向口,每一位均可单独定义为输入或输出口。在编程校验期间,用做输入低位字节地址。P1口可以驱动4个TTL负载。3.P2口P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。4P3口P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。P2口也是双向口。它是供系统扩展时输出高8位地址。如果没有系统扩展时,也可以作为用户的I/O口使用。P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15,P0口由ALE选通作为地址总线的低8位输出口AB0-AB7。外部的程序存储器由PSEN信号选通,数据存储器则由WR和RD读写信号选通,因为2=64k,所以AT89S51最大可外接64kB的程序存储器和数据存储器。P3口除了作为普通I/O口,还有第二功能:表2-1 P 3口的第二功能端口引脚功能特性P3.0串行输入口(RXD)P3.1串行输出口(TXD)P3.2外中断0(INTO)P3.3外中断1(INT1P3.4定时/计数器0的外部输入口(T0)P3.5定时/计数器1的外部输入口(T1)P3.6外部数据存储器写选通(WR)P3.7外部数据存储器读选通(RD) RST:复位输入端,高电平有效。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:地址锁存允许/编程脉冲信号端。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号,低电平有效。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:外部程序存储器访问允许。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:片内振荡器反相放大器和时钟发生器的输入端。XTAL2:片内振荡器反相放大器的输出端。现在已经对四个8位双向并行I/O口有了初步的了解。根据以上的内容可知只有P1口是标准的I/O口,所以我们选用P1口作为数据端口,P1口可逐位分别定义各口线为输入或输出线7。2.2 温湿度传感器 2.2.1DHT11产品概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。22.2接口说明 建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻图2-4 DHT11典型电路2.2.3电源引脚DHT11的供电电压为35.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。2.2.4串行接口 (单线双向)DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右, 用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。2.2.5 DHT11引脚说明 表2-2 DHT11引脚说明Pin名称注释1VDD供电 35.5VDC2DATA串行数据,单总线3NC空脚,请悬空4GND接地,电源负极2.2.6注意事项(1)手动焊接,在最高260的温度条件下接触时间须少于10秒。(2)避免结露情况下使用。(3)长期保存条件:温度1040,湿度60以下2.3 LCD1602工业字符型液晶,能够同时显示16*02即32个字符(16列2行)1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线 VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。 表2-3 1602引脚功能表引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0低4位三态、 双向数据总线 0位(最低位)8DB1低4位三态、 双向数据总线 1位9DB2低4位三态、 双向数据总线 2位10DB3低4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极 表2-3 寄存器控制表RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据第三章系统的硬件设计和连接3.1 电源电路图3-1 电源电路如图所示电源电路C1,C2作为滤波作用,LED为电源指示作用。VCC输出5V的稳定电压提供MCU供电。3.2 MCU晶振电路图3-2 MCU晶振电路与电源电路相同,时钟电路也是单片机运行不可缺少的电路,它控制单片的心脏,MCU 就是通过复杂的时序电路完成不同的指令功能,时钟信号可有两种方式产生:一种是内部方式利用芯片内部的振荡电路产生时钟信号,另一种为外部方式时钟信号由外部引入。单片机虽然有内部震荡电路,但是要形成时钟,必须外接元件晶振(在频率稳定性不高的情况下,可选用陶瓷电容)接线方式如图3-2 所示,对外接电容的值虽然没有严格的要求,但是电容的大小多少会影响振荡器频率的高低、振荡器的稳定性、起振的快速性。如果振荡器已起振,则在XTAL2引脚上会输出3v左右正弦波,振荡频率fosc取决于晶振的频率,电容C10、C11主要作用是帮助起振,成为起振电容,其大小一般在20-100PF之间,当时钟为12MHZ时典型值为30PF,这次设计为33PF。在印刷电路板时电容应该尽量靠近单片机,减少寄生电容,更好的保证振荡器稳定和可靠地工作。3.3 MCU复位 图3-3 MCU复位电路单片机的复位需要在RST引脚持续2us高电平,单片机在上电启动时复位一次,当按键按下的时候系统再次的复位,如果释放后再按下系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。在系统上电时电容的大小为10uf,电阻的大小为10K,可以计算出电容充电到3.5V时的时间为T=10K*10uf=0.1S,也就说在上电0.1S内,电容的的电压为0=3.5v,这是电阻的电压为5-1.5v,单片机在小于1.5v位低电平,所以在0.1S内单片机走动复位。当时间大于0.1s时电容的电压接近为5v,则RST引脚的电平为0v,系统稳定工作,当S1按下时,电容被短路,则RST为5v,所电路被按键强制复位。3.4报警电路图3-4 报警电路3.5 DHT11电路 图3-5 DHT11电路3.6 按键扫描电路图3-6按键扫描电路当按键按下时各I/O口被为低电平。3.7 LCD1602图3-7 LCD1602电路3.8 PCB 3D图图3-7 PCB 3D图第4章软件设计4.1系统流程图根据温湿度监控系统功能,系统软件流程图如图41所示:软件设计是本次设计中不可缺少的环节,贯穿了整个毕业设计,是本次设计能够完成的最重要的环节之一。系统启动蜂鸣器鸣叫LCD1602初始化读取温度值自动检测是否超过预定值蜂鸣器不报警蜂鸣器报警1602显示控制设备启动图4-1系统软件流程图 键盘复位检测是否按下读取按键值,送入单片机单片机显示存储数据,显示屏显示数据否是从新设定设定结束图4-2 按键检测流程图4.2代码#include#include#define uchar unsigned char#define uint unsigned int sbit DQ=P10; /DHT11 定义使用单片机P17端口 sbit K1=P35; /设置键/确定键sbit K2=P34; /数字调整键 加1sbit K3=P33; /数字调整键 减1sbit D1=P12; /温度过高指示灯sbit D2=P13; /温度过低指示灯sbit D3=P14; /湿度过高指示灯sbit D4=P15; /湿度过低指示灯sbit BELL=P04; /蜂鸣器报警控制端sbit lcden=P05; /1602使能sbit lcdrs=P07; /1602数据/命令选择端sbit lcdrw=P06; /1602读/写选择端uchar wendu,shidu; /温湿度变量uchar tem_h=30, tem_l=10,hum_h=60, hum_l=20;/温湿度上下限变量uchar keyflag_1=0; /按键标志位 根据按键次数执行操作内容/*延时函数,延时一毫秒*/void delay1ms(uint z)uint x,y;for(x=112;x0;x-)for(y=z;y0;y-);/*1602显示*/void write_cmd(char cmd) /写指令函数lcdrs=0;P2=cmd;delay1ms(1);lcden=1;delay1ms(1);lcden=0;void write_data(uchar dat) /写数据函数lcdrs=1;P2=dat ;delay1ms(1);lcden=1;delay1ms(1);lcden=0;void write_str(uchar *str)/写字符串函数while(*str!=0)write_data(*str+);delay1ms(5); void init_1602() /1602初始化函数 lcdrw=0;lcden=0;write_cmd(0x38);/显示模式设置write_cmd(0x0c);/显示开关,光标关闭write_cmd(0x06);/显示光标移动设置write_cmd(0x01);/清除屏幕 write_cmd(0x80);/数据指针移到第一行第一个位置/*DHT11*/bit init_DHT11() /初始化DHT11bit flag;uchar num;DQ=0;delay1ms(19); / 18msDQ=1;for(num=0;num10;num+); / 20-40us 34.7usfor(num=0;num12;num+);flag=DQ;for(num=0;num11;num+);/DHT响应80usfor(num=0;num24;num+); /DHT拉高80usreturn flag;uchar DHT11_RD_CHAR() /忙检测uchar byte=0;uchar num;uchar num1;while(DQ=1);for(num1=0;num18;num1+)while(DQ=0);byte=1; /高位在前for(num=0;DQ=1;num+);if(num10)byte|=0x00;else byte|=0x01;return byte;uchar DHT11_DUSHU()/读温湿度数据uchar byte=0;uchar num;if(init_DHT11()=0)shidu=DHT11_RD_CHAR()-2; /比正常值高2度左右DHT11_RD_CHAR();wendu=DHT11_RD_CHAR();DHT11_RD_CHAR();for(num=0;num17;num+); /最后BIT输出后拉低总线59usDQ=1;byte=1;return byte;void keyscan()/按键扫描if(K1=0)delay1ms(5); /按键消除抖动判断if(K1=0) keyflag_1+; /键一按下,标志位加一 while(!K1);if(keyflag_1=5)keyflag_1=0;write_cmd(0x0c);if(keyflag_1=1)write_cmd(0x8a);write_cmd(0x0d); /温度上限末位打开光标 if(keyflag_1=2)write_cmd(0x8f);write_cmd(0x0d); /温度下限末位打开光标if(keyflag_1=3)write_cmd(0xca);write_cmd(0x0d); /湿度上限末位打开光标if(keyflag_1=4)write_cmd(0xcf);write_cmd(0x0d); /湿度下限末位打开光标if(keyflag_1!=0)if(K2=0)/限值加键delay1ms(5); /按键消除抖动判断if(K2=0)while(!K2);if(keyflag_1=1) tem_h+; if(tem_h=100)tem_h=0; write_cmd(0x89); write_data(tem_h/10+48); write_data(tem_h%10+48); if(keyflag_1=2)tem_l+;if(tem_l=100)tem_l=0;write_cmd(0x8e);write_data(tem_l/10+48);write_data(tem_l%10+48);if(keyflag_1=3)hum_h+;if(hum_h=100)hum_h=0; write_cmd(0xc9); write_data(hum_h/10+48); write_data(hum_h%10+48); if(keyflag_1=4)hum_l+;if(hum_l=100)hum_l=0; write_cmd(0xce); write_data(hum_l/10+48);write_data(hum_l%10+48); if(K3=0) /限值减键delay1ms(5); /按键消除抖动判断if(K3=0)while(!K3);if(keyflag_1=1) tem_h-; if(tem_h=0)tem_h=99; write_cmd(0x89); write_data(tem_h/10+48); write_data(tem_h%10+48); if(keyflag_1=2)tem_l-;if(tem_l=0)tem_l=99;write_cmd(0x8e);write_data(tem_l/10+48);write_data(tem_l%10+48);if(keyflag_1=3) hum_h-;if(hum_h=0)hum_h=99; write_cmd(0xc9); write_data(hum_h/10+48); write_data(hum_h%10+48); if(keyflag_1=4)hum_l-;if(hum_l=0)hum_l=99; write_cmd(0xce); write_data(hum_l/10+48);write_data(hum_l%10+48); void baojing()/报警判断函数 if(wendu=hum_l&wendu=tem_l&shidutem_h) /温度大于设定上限值 D1=0;BELL=0; /D1灯亮 蜂鸣器响 if(wenduhum_h) /湿度大于设定上限值 D3=0;BELL=0; /D3灯亮 蜂鸣器响 if(shiduhum_l) /湿度低于下限值 D4=0;BELL=0; /D4灯亮 蜂鸣器响 void display()/初始化1602界面 +48的作用是实现十进制和ASCII码之间的转换,目的是使1602液晶正常显示十进制数write_cmd(0x80);write_str(TEM: H: L: );write_cmd(0xc0);/在第二行显示write_str(HUM: H: L: );write_cmd(0x89);write_data(tem_h/10+48);write_data(tem_h%10+48);write_cmd(0x8e);write_data(tem_l/10+48);write_data(tem_l%10+48);write_cmd(0xc9); write_data(hum_h/10+48);write_data(hum_h%10+48);write_cmd(0xce); write_data(hum_l/10+48);write_data(hum_l%10+48);/*主函数*/void main()wendu=0;shidu=0;init_1602();/初始化液晶/hum_h=read_add(31)*256+read_add(32); delay1ms(1000); /DTH11开始1s有错误输出display();while(1) keyscan(); /如果停留在忙检测时,K1键需要长按if(keyflag_1=0) DHT11_DUSHU();/读温湿度数据write_cmd(0x84);/在第一行显示write_data(wendu/10%10+48);write_data(wendu%10+48);write_cmd(0xc4);/在第二行显示write_data(shidu/10%10+48);write_data(shidu%10+48);delay1ms(100);/减少延时,使K1键更加灵敏 baojing(); /报警总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近两个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。参考文献1谢自美. 电子线路设计-实验-测试M .武汉:华中科技大学出版社, 20002楼然苗,李光飞.单片机课程设计指导M.北京航天航空大学出版社,20073张齐,朱宁西.单片机应用系统设计技术M.电子工业出版社,20104周新华.手把手叫你学单片机C程序设计M.北京航天航空大学出版社,20095.李刚,陈世利等. 飞思卡尔8位单片机实用教程M. 北京:电子工业出版社,20096.郭天祥. 新概念51单片机C语言教程入门、提高、开发、拓展全攻略M. 北京:电子工业出版社,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光明建筑安全员培训课件
- 2025-2026学年七年级数学上学期期中模拟卷(培优卷)(考试范围:1~4章 有理数+有理数的运算+代数式+整式的加减全部内容)解析版
- 普法考试平台网站及答案
- 光伏电站防火安全培训课件
- 马场三轮车考试题及答案
- 鲁东大学校规校纪考试及答案
- 乐理模拟考试题目及答案
- 光伏厂机台操作安全培训课件
- 值班电工安全培训课件
- 2024北师大版八年级生物上册《人的生殖与发育》提升讲义
- 国开作业《建筑测量》学习过程(含课程实验)表现-参考(含答案)33
- 工控组态技术及应用-MCGS模块三MCGS模拟量组态基本知识课件
- 电力线路维护检修规程
- 华信咨询-中国斗轮堆取料机行业展望报告
- (完整word版)高分子材料工程专业英语第二版课文翻译基本全了
- 医院信息系统操作权限分级管理制度
- 科华ST-360酶标仪操作规程
- 专利预警分析实务与应用课件
- 《红星照耀中国》教案
- 接受美学-读者反映批评
- 【七年级数学】多边形和圆的初步认识-学生讲义
评论
0/150
提交评论