基于单片机的智能加湿器毕业论文

基于单片机的智能加湿器毕业论文

ID:1394850

大小:7.61 MB

页数:54页

时间:2017-11-11

上传者:U-253
基于单片机的智能加湿器毕业论文_第1页
基于单片机的智能加湿器毕业论文_第2页
基于单片机的智能加湿器毕业论文_第3页
基于单片机的智能加湿器毕业论文_第4页
基于单片机的智能加湿器毕业论文_第5页
资源描述:

《基于单片机的智能加湿器毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

基于单片机的智能加湿器毕业论文目录摘要IAbstractII第1章绪论11.1智能加湿器的选题背景和意义11.2智能加湿器市场发展现状及前景11.3设计任务内务2第2章系统硬件设计32.1系统设计思路32.2单片机最小系统模块32.2.1单片机介绍32.2.2单片机最小系统62.3传感器部分72.3.1DHT11数字温湿度传感器简介82.3.2传感器电路102.4液晶显示部分112.4.11602字符型液晶显示屏简介112.4.21602LCD电路132.2.4键盘部分152.3系统电路工作原理16第3章系统软件设计173.1主程序设计173.2湿度检测控制模块设计183.3液晶显示模块19第4章仿真和实物制作204.1仿真204.2实物制作232 4.2.1硬件焊接234.2.2硬件问题及解决办法232 第5章设计总结30参考文献31致谢32附录Ⅰ任务书33附录Ⅱ开题报告35附录Ⅲ汇编源程序38附录Ⅳ中英文翻译45IIⅠ (基于单片机的智能加湿器)摘要随着科学技术的发展和生活水平的提高,加湿器开始引起人们的注意,不论是工厂、仓库、车间、还是卧室,加湿器随处可见并且发挥着极其重要的作用。但是,常规的加湿器只是简单地持续加湿,对湿度的调节能力差,容易过度加湿,并且缺乏对水位的检测管理,缺乏安全性。而无论是在日常生活中还是科学试验及工业生产中,不仅要求准确有效的控制湿度,还要确保加湿的安全性。因此,需要设计一款智能加湿器来有效的调节控制加湿,当环境湿度偏低则开始加湿,达到设定的湿度时就停止加湿,总是把湿度控制在适宜的状态下。水位低时自动报警并且停止加湿,确保加湿的安全性。有效地防干烧和过度加湿,实现加湿器的智能化。目前市面上具有此类功能的加湿器还没有被广泛使用,因此将有良好的市场前景和开发价值。本次设计为基于单片机的智能加湿器系统,以STC89C52和温湿度传感器DHT11为设计核心,利用湿度传感器将温湿度信号进行采集并转换成数字信号,利用单片机进行数据分析和处理,实现智能开启和关闭加湿功能,用LED灯的亮灭模拟控制以达到对湿度的调节。外接辅助电路实现加湿器的防干烧以及室内相对湿度的实时显示功能。系统电路简单、读取方便、检测精度高,具有较高的可靠性和实用价值。关键词:加湿器;报警;STC89C52;DHT11Ⅰ (Theintelligenthumidifierbasedonsinglechipmicrocomputer)AbstractWiththedevelopmentofscienceandtechnologyandtheimprovementoflivingstandards,HumidifierbegantoenterPeople’svision,forexamplefactory,warehouse,workshop,andbedroom,humidifiercanbeseeneverywheretoplayanextremelyimportantrolein.Regularhumidifierjustcontinueshumidificationsimply,thehumiditycontrolabilityispoorandmakesexcessivehumidifyingeasily,italsolackofdetectionandmanagementofthewaterlevelandthesecurityisweak.Butinbothdailylifeandscientificexperimentsandindustrialproduction,notonlyrequireseffectivecontrolhumidityaccurately,butalsoneedtoensurethesafetyofhumidification.Therefore,wehavetochoosetheAutomatichumidifiertoeffectivelyadjustandcontrolthehumidity,whentheenvironmenthumidityislowthehumidifierbegintohumidifyandstoptohumidifyuntilreachthesettemperature,alwayscontrolthehumidityinsuitablecondition,automaticalarmandstophumidificationwhenthewaterlevelislowtoensurethesafetyofhumidification.Effectivepreventdryandexcessivehumidifyingtoimplementtheintelligentofthehumidifier.Currentlyonthemarketwhichhasthefunctionofthiskindofhumidifierhasnotbeenwidelyused,soitwillhavebroadmarketandgreatdevelopmentvalue.UsethelightLEDlightsanalogthecontroltoadjustthehumidity.Thedesignofmicrocontroller-basedintelligenttemperatureandhumiditydetectionsystem,thedesignisontwoimportantfactorsinintelligentdetection,theSTC89C52andhumiditysensorsDHT11asthecore。UsethehumiditysensortoacquistthetemperatureandhumidityandtranslateintodigitalsignalandthenusetheSCMfordataanalysisandprocessingtoimplementationtheintelligentopenandclose,withlighttheLEDlightstoanalogcontroltoadjustthehumidity.Withexternalauxiliarycircuitimplementationtopreventhumidifierfromthedryandrealizetheindoorrelativehumidityreal-timedisplayfunction.Thesystemhastheadvantagesofsimplecircuit,easyreading,highdetectionprecision,andhighreliabilityandpracticalvalue.Keywords:Humidifier;alarm;STC89C52;DHT11第1章II 第1章绪论加湿器的应用在是很多行业中都可以见到,随着科技的进步,国内外在温湿度检测领域的技术越来越成熟,温湿度的检测也朝着智能化、小型化和低功耗方向发展。由于单片机具有集成度高、性能稳定且操作简便等优点,以单片机为基础的智能加湿器在各个方面都具有优越性。1.1智能加湿器的选题背景和意义随着经济技术等的发展,人们越来越注重生活品质,每当进入寒冷干燥的冬季,尤其是我国北方的大部分地区,由于供暖或使用空调导致皮肤干燥,容易引发感冒等症状,同样在夏季,由于大范围的使用空调,也会导致类似的症状,因此需要加湿器来有效地增加室内湿度,滋润干燥空气,提高人体的舒适度。人体舒体适度是指人体对外界气象环境的感受不同于大气探测仪器检测收集到的各种气象要素结果。人体舒适度指数测试为了更加清晰的显示在不同的气象环境下,人体能够感受到的舒适度,在诸多的要素中,以气温、气压、风速、相对湿度这四个气象要素,对人体的舒适度影响最大。相对湿度的不同会对处于此环境中的人产生重要影响,通常人体能感受到的最佳温湿度范围是40%RH~60%RH。相对湿度也是影响空气质量的重要因素,由于空气中的水分子可以和飘浮的烟雾、粉尘结合使其沉淀,能够有效地去除霉味、油漆味、烟味等异味,使空气清新。本次设计的加湿器就是通过调节空气相对湿度来改善人体舒适。研究发现,湿度不仅影响人们的生活质量,对工业生产中的产品质量有重要影响。如实验室、厂房、仓库、塑料薄膜大棚等需要调节温湿度的场合,都会用到智能加湿器,使环境的湿度达到适宜的范围。1.2智能加湿器市场发展现状及前景加湿器在日常生活中目前已得到了广泛的应用,但是目前的加湿器仍然需要手动控制和操作来开启和关闭,只提供相对简单的雾量调节,功能比较单一,并且不能对室内温湿度进行检测,在使用过程中容易过度加湿和干烧,不仅不能保证室内空气的质量还会造成负面影响,存在安全隐患。因此开发设计一种49 以由用户根据实际情况和需求进行灵活设置,实用性高、价格低廉、安全性高的加湿器可为家庭及工业提供便利有效的湿度监测和控制,具显得尤为更为重要。1.3设计任务内务本设计重点解决传统加湿器缺乏的防干烧和智能控制功能。以STC89C52单片机为核心,设计一个智能温湿度控制系统。可以在一定的范围内设置最佳相对湿度值,并且能在环境湿度变化时自动调整,以保持在设定的湿度基本不变。温湿度信号通过温湿度传感器进行信号的采集并且转换成数字信号,再利用单片机STC89C52进行数据分析和处理,并在1602LCD上显示出当前湿度和设定的湿度值。外加时钟电路、键盘电路和报警电路。除了可以用键盘切换手动/自动模式,设置最佳相对湿度值外,还可以通过按键输入低电平,驱动绿色发光二驾管发光,演示加湿,驱动蜂鸣器报警,演示在水位低时的防干烧功能。硬件中一个开关为手动/自动转换键,选择自动后,相当于按下复位键,系统恢复默认最佳相对湿度,DHT11开始进行对温湿度进行测量和计算,最后通过液晶屏显示出所测相对湿度,如果低于最佳相对湿度就加湿,高于最佳相对湿度停止加湿。软件设计部分对最佳相对湿度值进行了设定,当测量的湿度超过设定的值时,停止加湿;在加湿前先检测水位信号,一旦输入水位低信号,通过报警电路蜂鸣报警并且停止加湿,达到防干烧的目的。显示部分单片机的P0口接到LCD的数据输入口D1到D8,P1.0,P.1口分别接到LCD的的RS,E口,RW接地表示数据写入,本次设计只设计对LCD的数据写入,RS接低电平时表示选择写指令操作,接高电平时表示写数据操作,E接高脉冲表示读取信息,在下降沿执行指令。传感器DATA口接到单片机的P2.7口,串口接口数据是单项双向传输的,采用单总线数据格式,一次性完整的输出40bit高位先输出,单片机只读取表示前八位湿度整数部分。具体实现步骤为;根据用户需求选择自动/手动加湿模式,确定最佳相对湿度值;采集周围空气的湿度数据,送入主控模块,主控模块将实时的湿度和最佳相对湿度进行比较判断是否开始加湿;能够在水位低的时候通过主控模块控制报警,并且停止加湿;液晶显示器LCD用于显示室内相对温湿度和最佳相对温湿度,用户通过按键输入的最佳相对温湿度,也通过LCD演示出来;利用LED灯演示加湿和水位高低。49 第2章系统硬件设计2.1系统设计思路采用实时测量湿度,有自动/手动两档,可以根据用户需要设置最佳相对湿度。室内相对温湿度的检测选取数字湿度传感器DHT11,单片机读取传感器输入的相对湿度数据,通过LCD显示出来同时也将测得值与默认或用户输入的最佳相对湿度值进行比较,进而控制加湿功能的实现。当湿度达到最佳相对湿度值后停止加湿,以达到防止过度加湿的目的。在整个过程中如果输入水位低信号,则与水位监测配套的蜂鸣器报警、加湿器停止加湿,达到防干烧的目的。设置了模式输入、水位输入和湿度的按键输入方便用户操作,同时用指示灯显示各状态便于用户查阅。单片机是系统的控制核心,因此单片机的性能关系到整个系统硬件和软件的设计。单片机采用烧写容易的STC89C51。由于SHT11不方便手工焊接,焊接的时候很容易因为温度过高损害传感器,因此传感器选择性能基本一样但是焊接方便的DHT11。显示部分选用1602LCD。报警采用蜂鸣报警。加湿通过绿色LED小灯进行模拟,灯亮代表开始加湿。系统总体方案的的整体框图如图2-1:单片机显示温湿度传感器加湿按键输入模块报警图2-1系统整体框图2.2单片机最小系统模块2.2.1单片机介绍49 本系统采用STC89C52作为控制电路的核心器件,STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。工作电压3.3V~5.5V,其实物如图2-2所示:图2-1STC89C52实物图本次设计使用6V供电,由于超过了单片机的工作电压,所以电源电路需要增加一个二极管将电压降到5.5V以下,为了防止二极管因为过流烧掉,再串联一个220Ω的限流电阻。由于二极管的单向导通性,接了二极管后还可以防止在焊接的时候,因为电源接反烧坏单片机。STC89C52的电源电路如图2-2所示:图2-2STC89C52的电源电路STC89C52主要功能如表2-1所示:表2-1STC89C52主要功能主要功能特性兼容MCS51指令系统8K可反复擦写FlashROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能49 本次设计使用STC89C52的主要引脚:(1)主电源引脚(2根)VCC:电源输入,接+5V电源GND:接地线(2)外接晶振引脚(2根)XTAL1:片内振荡电路的输入端XTAL2:片内振荡电路的输出端(3)控制引脚(4根)RST/VPP:复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG:地址锁存允许信号PSEN:外部存储器读选通信号EA/VPP:程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。(4)可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。PO口:P0口作为一列8位漏极开路型双向I/O口,常用作地址/数据总线复用口。内部没有上拉电阻,使用时需添加外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1的输出缓冲级可以驱动4个TTL逻辑门电路。P1口管脚写入1后,通过内部上拉电阻将端口拉高为高电平,可作为输入。在作为输入使用时,由于内部上拉电阻的存在,P1口被外部下拉为低电平时会输出一个电流。在使用FLASH进行编程和校验时,P1口可作为第八位地址接收。P2口:P2口是内部自带上拉电阻,功能复用口,可驱动4个LS型TTL负载。P3口:P3口是和P2口功能基本一样。除了作为一般的I/O口之外,P3口还可以作为重要的特殊功能口,可以接受一些用于变成校验和闪速存储器编程时的控制信号。一些特殊功能口如表2-2所示:49 表2-2P3口特殊功能引脚功能表P3.0RXD串行输入口P3.4TO计时器0外部输入P3.1TXD串行输出口P3.5T1计时器1外部输入P3.1/INT0外部中断0P3.6/WR外部数据存储器写选通P3.1/INT1外部中断1P3.7/RD外部数据存储器读选项单片机STC89C52管脚图如图2-3所示:图2-3STC89C52管脚图2.2.2单片机最小系统(1)时钟电路STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。本次设计采用12M晶振,30pF电容。(2)复位及复位电路复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表2-3所示:49 表2-3一些寄存器的复位状态寄存器复位状态寄存器复位状态PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00HRST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为12MHz的晶振,则复位信号持续时间应超过2us才能完成复位操作。整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。复位操作有上电自动复位和按键手动复位两种方式。本次设计采用上电复位,通过外部复位电路的电容充电来实现的,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。单片机的最小电路如图2-4所示:图2-4单片机最小系统2.3传感器部分49 2.3.1DHT11数字温湿度传感器简介本系统采用DHT11作为湿度检测器件,DHT11数字温湿度传感器包括一个NTC测温元件和一个电阻式测湿元件,可以和高性能的8位单片机相连,是一块可以同时检测温湿度的数字传感器。通过和单片机等微处理器构成简单的电路,就能够实时的检测采集室内相对温湿度。因此具有性能稳定、响应迅速、抗干扰能力强且性价比高等优点。DHT11和单片机之间利用简单的单总线可以实现通信,仅仅需要一个I/O口。传感器内部的温湿度数据可以一次性的传给单片机。由于在高精度的湿度校验室内进行过校准,并且以程序的形式在内存中存储,因此可以保证数据的准确性。DHT11很低,在5V电源电压下,工作室的平均最大电流为0.5mA.DHT11外形及引脚排列与说明如下图2-4所示:图2-5DHT11外形及引脚排列VCC是电源脚,正电源输入3.5-5.5V;DOUT是数据输入/输出脚,单总线;NC是空脚,扩展未用;GND是电源地脚。能够同时对相对温湿度进行检测;输出为数字信号,可以减少预处理信号的负担,减轻用户工作量;输出为单总线结构,能够有效减少对单片机的I/O口的占用,节省资源并且不用再额外的增加电器元件;单总线传输协议使单片机读取传感器的数据更加方便快;全部校准,为8位二进制数编码方式。湿度测量范围20%~90%RH;温度测量范围0~50℃;适用范围广泛,在恒湿控制、温湿度计、消费类家电领域都有应用。DHT11传感器在上电后,需要等待1s以上,在越过不稳定状态期间不用向STC89C52单片机发送任何指令。49 DATA用于DHT11和微处理器之间的通讯和同步,采用单总线数据格式,一次的通讯时间大约在4ms。数据分为整数部分和小数部分,当前小数部分读数为0,用于之后扩展。具体的操作流程如下:DHT11数字温湿度传感器一次完整的数据传输为40位,先输出高位。数据格式为:8位湿度整数数据+8位湿度小数数据+8位温度整数数据+8位温度小数数据+8位校验。数据传送正确时,“8位湿度整数数据”所得结果的最后8位等于校验和数据。用户MCU发送一次开始信号(低电平)后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束(拉高)后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。DHT11复位时序如图2-5所示:图2-6DHT11复位时序总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,本次设计的程序中拉低20ms.保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送低电平响应信号.主机发送开始信号结束后,延时等待20-40us后,本次设计的程序中延时40us,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可。由于单片机的上拉能力不足,容易产生很大的寄生电容从而导致RC充放电,容易使数据出错,因此总线由4.7K上拉电阻拉高。DHT11开始发送数据过程如图2-6所示:图2-7数据传输49 数字‘0’信号表示方法如图2-7所示:图2-8数字0信号表示方法数字‘0’表示方法为,DHT11先把总线拉低12-14us然后拉高,高电平保持时间在26-28us范围内,则此时为‘0’电平。数字‘1’信号表示方法如图2-8所示:图2-9数据‘1’信号表示方法数字‘1’表示方法为,DHT11先把总线拉低12-14us然后拉高,高电平保持时间在116-118us范围内,则此时为‘1’电平。本次设计的程序是在高电平延时30us之后读取,如果还是低电平,则输出‘0’,如果是高电平,则输出‘1’。2.3.2传感器电路传感器模块对整个电路进行信号采集和初步处理,DHT11在3-5.5V电压下可以正常工作。在DHT11传感器上电后,为了越过不稳定状态需要等待一秒,在此期间不发送任何指令。DHT11和微处理器之间的通讯和同步通过DATA实现,DATA和单片机的P2.0口相连,使用4.7K上拉电阻,防止干扰增加稳定性。采用单总线数据格式,接口简单,无需另外校准。单次的通讯时间约为4ms。分辨率为8bit,完全能够满足日常环境温湿度的检测要求。由于湿度的监测受周围温度变化影响很大,气体的相对湿度,在很大程度上也依赖于温度。所以应该尽量在相对稳定的环境中检测湿度,49 在测量湿度时,应尽可能保证湿度传感器在同一温度下工作。如果与释放热量的电子元件共用一个印刷线路板,在安装时应尽可能将DHT11远离电子元件,并安装在热源下方,同时保持外壳的良好通风。为降低热传导,DHT11与印刷电路板其它部分的铜镀层应尽可能最小,并在两者之间留出一道缝隙。传感器电路如图2-9所示:图2-10DHT11传感器电路2.4液晶显示部分2.4.11602字符型液晶显示屏简介本系统采用1602字符型液晶显示屏,字符型液晶显示模块可专门用于数字、字母、符号等点阵,是一种点阵LCD。目前常用的有16*1、16*2、20*2和40*2行等模块。通常有14或16条引脚线,还有一条背光电源线VCC和一条地线,和14脚的LCD的控制原理一样。在单片机系统中常用液晶显示器作为显示元件。1602型LCD有D0-D7一共8位据线总线和R/W/RS/EN三个控制端口,可以显示2行共16个字符。工作电压为5V,并且具有背光功能和字符对比度调节。其实物如图2-10所示;图2-111602字符型液晶显示器实物图1602LCD主要技术参数:49 显示容量:16×2个字符芯片工作电压:4.5—5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm1602LCD引脚功能如图2-11所示:图2-121602字符型液晶显示器引脚功能1602LCD的引脚定义如下表:49 表2-4字符型LCD引脚定义表2.4.21602LCD电路本次设计的显示部分采用1602液晶显示器,可以显示预设最佳相对湿度和室内实时的相对湿度。RS脚和E脚分别和单片机的P1.0和P1.1相连,D0-D7口和单片机的P0口相连,P0口作为一列849 位漏极开路型双向I/O口,常用作地址/数据总线复用口。内部没有上拉电阻,使用时需添加外部上拉电阻。在用作输出口时,每脚可吸收8TTL门电流,可以驱动逻辑门电路,当P0口的管脚写1时,可以作为高阻抗输入端使用。当访问程序存储器或者外部数据存储器时,可以作为数据/地址的第八位,在访问期间内部上拉电阻激活。在用FLASH编程时,P0口可以作为原码输入口接受指令字节,在用FIASH进行校验时,输出指令字节,由于需要外接上拉电阻,所以和单片机STC89C52连接需要排阻,1602LCD液晶显示电路如图2-12所示:图2-131602LCD液晶显示电路2.2.3报警电路部分本设计采用的蜂鸣音报警电路,采用有源蜂鸣器,其驱动发声简单,通电就能持续发声。主要工作就是在水位按键将低水位信号送给单片机后,进行报警起到防干烧的目的。蜂鸣器的发声原理是在电流通过电磁线圈时,产生磁场来驱动振动膜发声,因此需要一定的电流,由于单片机I/O引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要设计一个电流放大电路。所以添加一个PNP型三极管来放大驱动蜂鸣器。在本系统中报警电路由一个1K电阻,一个三极管和一个蜂鸣器组成,三极管用来放大电路中的电流,驱动蜂鸣器发声,电阻用来限流防止以控制放大电流。报警电路和单片机的P3.7口相连,当单片机检测到水位低时,就会给P3.7置低电平049 ,此时三级管导通,蜂鸣器报警,如果水位正常,P3.7置高电平1,三极管截止。报警模块的电路图如图2-13所示;图2-14蜂鸣报警电路2.2.4键盘部分键盘分为独立式按键和矩阵式按键。由于本设计中按键不多,因此选择独立式按键,所有按键都是在按键弹起时,按键与单片机之间的引脚处于高电平,按键按下时处于低电平:(1)总开关:主要用来控制硬件系统的开关;(2)水位键K2:主要用来输入水位低信号,模拟防干烧功能;(3)状态选择键K1:模式选择键,按一次后转为手动模式,可以根据用户需要输入最佳相对湿度,再按一次转为自动模式,根据默认最佳相对湿度40%RH进行加湿;(4)数字设置键:在选择手动模式后,按下设置键K3,后进行湿度设置,加键K4没按一次加1,键减键没按一次减1,设置完完成后再按K3,开始判断是否开始加湿;键盘模块的电路图如图2-14:图2-15按键电路49 2.3系统电路工作原理本次设计电路采用模块化、层次化设计,总体设计的电路原理图如图2-15所示:图2-16系统电路原理图工作原理:本设计是由硬件和软件相结合,利用软件控制硬件的自动智能化工作。通过单片机将传感器采集的数据送给液晶显示,并输出加湿控制信号或者报警信号,以达到智能加湿和防干烧的作用。49 第3章系统软件设计3.1主程序设计系统的程序设计分为几个模块包括湿度检测模块、湿度控制模块、按键输入模块、显示模块、水位检测模块。系统上电初始化后,读取水位信号,根据水位信号判断是否蜂鸣报警,选择自动/手动模式后,传感器读取湿度将数据送至单片机,单片机进行数据比对,判断是否加湿。加湿中如果输入水位低信号则蜂鸣报警且不再加湿。主程序流程图如图3-1所示:开始初始化启动加湿(即绿灯亮)键盘扫描结束延时温湿度检测并传送数据会单片机1602显示数据值判断水位是否低蜂鸣报警是判断湿度是否超出最佳值否图3-1主流程图49 3.2湿度检测控制模块设计根据传感器的通讯协议,首先由单片通过I/O口主动产生激发信号,然后由传感器控制数据线,单片机通过while语句不间断的检查I/O口的高低电平,得到准确地传输数据。DHT11传感器模块的软件流程图如图3-2所示:开始从机80us低电平是否结束否P1.2输出低电平从机80us高电平是否结束延时20ms是否P1.2输出高电平延时40ms单片机进行数据接收将数据按十进制数位存入数组读P1.2引脚判断是否为低电平否结束并保存是图3-2DHT11传感器模块的软件流程图湿度的采集过程首先P1.2输出低电平,延时18ms之后P1.2输出高电平,延时40ms之后,读P1.2引脚是否为低电平,如果不是低电平就继续读,如果是低电平就开始执行判断从机80μs高电平是否结束,如果没有结束就继续判断;如果结束就进行单片机数据接受,并将接收到的数据按照十进制存入到指定的数组中,数据的采集结束并且保持数据采集持续地进行。49 3.3液晶显示模块液晶显示模块在执行每一条指令之前,都要先确认模块的忙标志位,低电平时,表示不忙,若为高电平则此指令失效,显示字符之前先要输入显示字符地址,告诉模块那里显示了字符。1602LCD直接和单片机的P0口通过排阻连接,无需再加驱动。LCD1602显示数据的过程是首先进行液晶初始化,初始化之后执行延时程序,等待数据的采集,演示完成后先写入一些指令和显示字符的地址,之后单片机向LCD发送数据即写数据,数据发送完成后,LCD读取写入的地址并显示出来,最后返回。软件流程图如图3-3所示:开始液晶1602初始化延时读数据并显示写数据取显示首地址写显示行列地址写LCD指令返回图3-3液晶显示模块程序流程图49 第4章仿真和实物制作4.1仿真在完成系统的硬件电路图之后,与软件相结合,检验设计是否正确就是系统的仿真。本设计采用的画图软件是Proteus,另外它自带仿真功能,能有效的实现硬件电路图跟程序的调试与仿真。4.1.1protues软件介绍Proteus是一款电子设计自动软件,可以实现原理布图、PCB自动或人工布线和电路仿真。可以仿真51系列、PIC、AVR等市面上的主流单片机。还可以在含有模拟原型的原理图的基础上,进行编程,配合LED/LCD、键盘或PRS232终端等动态的外设等的输入,可以看到运行后的输入输出效果。在Proteus绘制完原理图后,调入在Keil软件中编译好的*.HEX文件,运行后就可以看到实物的模拟运行状态和过程。另外,在仿真运行的过程中,系统的每个连接引脚旁边都会显示出一个小正方形的指示灯,蓝色代表低电平,红色代表高电平,这样就可以直观的看到每个管教的高低电平变化,不需要再借助虚拟工具测量,从而对系统的软件和硬件的性能有了最基本的判断,优化单片机的开发流程。在软件调试和仿真完成之后,就可以将最终的程序HEX文件烧录进单片机,检测硬件系统。使用Proteus进行单片机的仿真调试可以大幅的简化硬件的调试工作,不仅可以弥补元器件和实验仪器的缺乏带来的不足,而且降低了原材料的消耗还避免了一起损坏等问题。节省焊接电路板的时间,提高产品的开发效率和降低开发成本,但相对的在软件编写和调试过程中就要更加认真。由于Proteus中没有湿度传感器DHT11,所以仿真时代替DHT11输入的数字信号,将实时湿度固定位30%,写入1602LCD。上电之后由于加湿器默认是自动模式,最佳相对湿度默认为40%,从仿真图中可以看到,室内湿度为30%低于最佳湿度,加湿器开始加湿,LED小灯变亮。上电之后的界面如图4-1所示:49 图4-1上电之后的仿真界面按下水位报警后的界面如图4-2所示:图4-2按下水位报警后的仿真界面49 按下自动/手动选择键,选择手动模式后的仿真界面如图4-3所示:图4-3选择手动模式后的仿真界面按下设置键K3,通过调节K2加键和K3减键设定最佳湿度后的界面如图4-4所示:图4-4手动设置最佳湿度后的界面49 4.2实物制作实物制作包括硬件焊接和软件调试。硬件焊接按照模块进行,每焊接完一个模块,都要将对应的软件程序通过烧写软件烧写进单片机,检测运行情况并调试,只有完全正确以后才能焊接后续模块。烧写软件选择STC_ISP_V480,在使用之前要将MCUType设置为STC89C52RC,之后将.hex文件选择对应的COM端口,然后点击下载就能实现硬件和软件的连接。4.2.1硬件焊接制作硬件时首先从焊接电源部分,电源电路里添加一个二极管既能降压又能防止电源一旦接反,烧坏器件。电源电路焊好后进行测试,如果红色led灯亮,开始焊接单片机的最小系统,按照模块一点一点增加元器件。硬件焊接要完全的按照电路图。焊接之前最好根据元器件的尺寸,合理的放置每个模块,然后逐个焊接每个小模块。每焊接完一个模块要用万用表测量电源和地之间是否短路,如果出现短路,就要立即检测是哪一处的焊接导致的短路。烙铁不要长时间接触面包板,若长时间接触会因为高温导致焊盘或者器件的损坏;温度太低,容易造成冷焊点。焊接时焊锡用的少,引脚容易脱落;焊锡太多,容易和相邻的引脚接触导致短路。先焊接单片机和1602液晶显示的底座,然后焊接小元件,特别是先焊接单组这一类器件。为了保证焊接的质量,焊接元件时要先固定一个引脚,然后再调整元件的位置以及高低合适后,再焊接其余引脚,以免焊歪,因为一旦固定好两个以上引脚,元件的位置就不可动,在焊接时要注意避免虚焊、缺焊、短路等情况,而且要尽量减少跳线的出现。在每次焊接时,都要注意元器件是否要区分正负极、区分的话哪个脚接单片机的引脚。例如:发光二极管有正负极所以就要考虑极性,长针是正极,短针是负极;蜂鸣器是有源蜂鸣器,长针是正极,短针是负极;三极管使用8550PNP型,三极管发射极接电源正极,基极和单片机的I/O口连接,集电极接蜂鸣器的正极,而蜂鸣器的负极接地;开关、陶瓷电容没有正负极,焊接时就不用考虑引脚的极性。4.2.2硬件问题及解决办法49 (1)LCD1602不显示电路焊接好后,向单片机写入湿度显示部分程序。液晶能点亮,但是没有显示,经过分析可能问题有四种:一电路焊接情况,二电路接触不好,三液晶模块的问题,四单片机没有工作。检查硬件电路,发现液晶的E脚和RS脚接错,修改程序重新对应引脚,但液晶仍谈没有显示。检查电路有无串联接触问题,各个脚和连线用万用表测试,各部分电路并没有串联和虚焊。将单片机和液晶显示插到学习板上,液晶可以显示数据,且显示格式正确,由此可以确定单片机以及液晶模块完好。问题可能出在电路接触不良导致单片机没有工作。而电路中由于在焊单片机时使用了排线插槽,所以可能使排线插槽接触不良,将插槽再次焊好后,液晶可以正常显示。系统与LAC51系列的仿真环境下开发,编程过程中利用软件仿真调试系统,当软仿通过则利用该仿真器仿真,并按顺序检查错误进行修改,最终将程序的HEX文件烧录进入单片机进行实测。(2)蜂鸣器不响由于刚开始没用万用表测三极管型号,导致焊好之后蜂鸣器不响,由于本次设计使用的是PNP型的的三极管,低电平导通,高电平截止。将三极管平字面对着自己从左到右引脚顺序为ebc,基极接单片机的引脚,将三极管卸下来重新焊好后蜂鸣器正常工作。最后完成后的实物如图4-5所示:49 图4-5实物图49 上电后处于自动加湿模式下,实物图如图4-6所示:图4-6自动加湿模式实物49 将手动/自动键拨到手动加湿模式下,液晶屏仍然不断显示测量湿度,其实物图如图4-7所示:图4-7自动加湿模式实物图49 按下设置键后,液晶显示屏上的数字暂时停止变化,其实物图拍下后和图4-7一致。加减键每按一次,设置的湿度值加减1个数值,调整好设置湿度后,再次按下设置键,系统开始检测湿度并加湿,其手动设置最佳湿度后的实物图如图4-8所示:图4-8手动设置最佳湿度后的实物49 只要按下水位键就表示水位低,需要防干烧。则蜂鸣器报警,加湿器停止加湿,加湿指示灯灭。其实物图如图4-9所示:图4-9按下水位键后的实物图49 第5章设计总结在设计初期,查找了很多有关湿度检测控制的资料,了解到一般的湿度检测系统都是由一个单片机和一个温湿度传感器组成,超出一定的湿度范围(如40%-60%RH),系统就报警,外界一些辅助电路如LCD或者LED、键盘或者一些指示灯。但是在仔细研究了自己的课题后,发现加湿器和普通的湿度检测系统的不同,加湿器不仅需要检测湿度,而且还要控制加湿,调节湿度。加湿器只有在水位低时才需要报警,目的是防止干烧。因此最终的设计方案定为最佳湿度可手动设置,在低于最佳湿度后加湿,高于最佳湿度不加湿,任何状态下,只要输入水位低信号,就能报警并停止加湿。这样一来,就实现了加湿器的智能化和防干烧功能,满足了课题的要求。在方案的选定和思路的整理上,离不开运红丽老师耐心的指导和帮助,在这两个多月的毕业设计中,每一周的小组会议运老师都会检查上一周的任务是否完成,是否存在疑问,并且指导和督促设计进程。从元件的选定到购买,从硬件电路的绘制到实物的焊接,从理解元件的工作时序到软件的仿真调试,再到最终的论文定稿。这其中的每一个细节,都力求能够理解,懂得如何使用,并且以自己的理解呈现出来。在这个过程中查阅了几乎网上所有有关的资料,对于单片机的功能也有了更深刻的认识。通过这次课程设计,对于如何利用单片机I/O口的扩展实现各种功能,特别是单片机和传感器类元件如何组成一个完整的系统框架,实现各种检测功能,有了进一步的理解。49 参考文献[1]何立民。MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:航空航天大学出版社,1990.39-43[2]何立民.单片机高级教程M].北京:北京航空航天出版社,2000.24-33[3]崔志尚.温度计量与测试·中国计量出版社,1998.4-5[4]丁毅.工业用空气加湿器加湿量的计算与测定[J]·西北轻工业学院学报2002.3-5[5]宋元平.简易智能加湿器设计·民营科技[J]·2010:11.3-7[6]基于单片机的工业加湿器控制·成都理工大学·2010.53-61[7]雷如意.湿敏传感器的原理与应用·新技术新工艺·1994:1-5[8]李伙友.基于MCS-51温度控制器的设计·厦门大学信息科学与技术学院2006.33-35[9]苏全义.李庆东,何培祥[J]·基于PIC单片机的智能温室环境控制系统西南大学工程技术学院.2009.14-23[10]李朝青.单片机原理及接口电路·北京:航空航天大学出版社,2007.34-43[11]张毅坤.单片微型计算机原理及应用[M],西安:电子科技大学出版社.1998.64-67[12]赖寿宏.微型计算机控制技术[M],北京:机械工业出版社,1999.45-68[13]郑艳博.温湿度模糊控制系统的开发[D],河北农业大学,2007.67-88[14]孙荣高,吕昂.微控制器温室环境温湿度程序控制系统的研究与设计[J],2008.22-38[15]张勇.PROTEL99SE电路设计技术入门与应用(第一版).北京:电子工业出版社,2002.36-6749 致谢本次毕业设计是在我的指导老师运红丽老师的耐心指导、悉心帮助下完成。在这将几个月的时间里,运老师对我们小组进行了系统详实的辅导,我们的设计才能够真正顺利、完整的完成。每周运老师都会了解我们进度,为我们解答设计中出现的难题。在本次的设计中,杨老师给作者的印象不仅是对课题研究时的科研作风严谨、对工作的认真对待、学识水平的深厚。更重要的是,运老师在生活中对我们的关心和帮助。运老师还经常会和我们一起研究、学习,使我们能够更好更快的完成设计。在这里,向为我们小组付出巨大心血,督促、帮助、指导我们的运老师报一声:谢谢您为我们付出的一切。在这紧张的设计期间,我们小组同学总是在一起探讨问题,不仅使大家都出现的问题得以解决,同时对各自的问题的解决也有了一定的帮助。使我们对于自己所设计的东西有了更深入透彻的学习。此时此刻,随着论文的不断深入我的不舍之情也越来越深。我知道我距离开我的老师和同学的时间也越来越近。对于许多给予我帮助的老师和同学,我发自内心的感谢你们!再次感谢运红丽老师对我耐心的指导与悉心的照顾。感谢本组其他同学热情的帮助!感谢所有关心、帮助过我的所有老师和同学!49 附录一任务书一、毕业设计的目的随着电子技术和计算机技术的飞速发展,单片机性能不断完善,性能价格比显著提高,技术日趋完善。由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因而在国民经济建设、军事及家用电器等各个领域均得到了广泛的应用。在日常生活和某些特点工作环境下加湿器得到了广泛应用,但普通加湿器需要人工手动控制开关,并且不能对室内湿度进行监测,在使用过程中存在过度加湿和干烧的问题。因此,设计一种价格低廉、功耗低、具有智能控制功能的加湿器尤为重要。二、主要内容采用合适型号单片机作为核心控制器件,选用适宜的传感器实现温湿度检测,设计辅助电路,实现加湿器防干烧,水位检测、加湿功能开关和温湿度现实等功能。1、温湿度检测和实现2、水位检测、防干烧报警3、加湿功能开关4、手工控制三、重点研究问题1、水位检测和报警1)水位输入:利用按键输入高电平信号2)二极管发光演示水位低于报警水位,3)蜂鸣报警系统实现防干烧2、湿度检测显示和手工控制1)利用DHT11温湿度传感器实现温湿度的测量和显示,精度达到1%。2)利用1602液晶显示屏显示当前湿度和最佳湿度3)两个指示灯,一个用于表示水位低(灯亮时),一个表示加湿(灯亮时)四、主要技术指标或主要参数1、相对湿度低于40%时自动加湿2、实现手动设置自动工作湿度值3、温湿度检测和现实,误差小于±2%。4、系统采用外部5V供电49 五、基本要求1、在设计初期阶段进行认真调研。在调研和充分理解课题内容和要求的基础上,写出3000字左右的开题报告(其中包括文献综述)。要求查阅文献在10篇以上,开题报告中引用的文献资料在5篇以上。2、在设计初期进行毕业实习,实习时间为2周左右。实习过程应听从指导教师的指挥,写出实习日记。实习结束后,对实习过程进行总结,提交实习报告(不少于2000字)。3、在设计过程中,能运用一门外语翻译与课题有关的外文资料。要求译文准确、通顺,字数在2000汉字以上。4、在毕业设计后期,提交毕业设计论文一本。要求内容完整,含中外文摘要,条理清楚,文字通顺,书写规范。要求中文摘要字数在400字左右,关键词3~5个,论文正文字数应在10000字以上。5、提交设计部分的硬件电路图和单片机系统设计的软件源码,以及能够正常工作的单片机系统电路板。六、其它49 附录二开题报告华北水利水电学院本科生毕业设计开题报告2014年3月22日学生姓名刘田甜学号201007908专业测控技术与仪器题目名称基于单片机的智能加湿器设计课题来源自选主要内容一、课题背景和意义随着经济技术等的发展,人们越来越注重生活品质,每当进入寒冷干燥的冬季,尤其是我国北方的大部分地区,由于供暖或使用空调导致皮肤干燥,容易引发感冒等症状,同样在夏季,由于大范围的使用空调,也会导致类似的症状,因此需要加湿器来提高人体舒适度。人体舒适度是指人体对外界气象环境的感受不同于大气探测仪器检测收集到的各种气象要素结果。人体舒适度指数测试为了更加清晰的显示在不同的气象环境下,人体能够感受到的舒适度,在诸多的要素中,以气温、气压、风速、相对湿度这四个气象要素,对人体的舒适度影响最大。本次课题主要关注空气温湿度对人体舒适度的影响。湿度是影响空气质量的重要因素,根据空气中相对湿度的不同汇兑处于此环境中的人产生重要影响,通常人体能感受到的最佳温湿度范围是40%RH~60%RH。研究发现,湿度不仅影响人们的生活质量,还对工业生产中的产品质量有重要影响。随着人们对生活质量的要求日益提高,智能加湿器开始成为日常生活中日益重要的电器。加湿器在日常生活中目前已得到了广泛的应用,但是目前的加湿器仍然需要手动控制和操作来开启和关闭,并且不能对室内温湿度进行检测,在使用过程中容易过度加湿和干烧,不仅不能保证室内空气的质量还会造成负面影响,存在安全隐患。因此开发设计一种智能化、实用性高、价格低廉、功耗低的加湿器显得更为重要。二、本次设计的智能加湿器通过按键实现手动/自动两种模式切换,由LCD显示室内温湿度值,检测水位若水位低于最低水位自动掉电且声光报警,在设计中40%RH作为自动加湿模式下的默认最适相对湿度。接通电源,通过键盘选择自动加湿后,加湿器根据水位判断是否开始工作,如果水位低于最低水位H,则风鸣系统报警加湿器掉电,手动加满水后重启。加湿器开始检测并显示周围空气的湿度,如空气湿度大于40%RH则加湿器不工作;如空气湿度小于40%RH,加湿器开始加湿。接通电源,通过键盘选择手动加湿后,加湿器根据水位判断是否需要进水,如不需要进水,则加湿器开始检测室内湿度,判断是否开始加湿;如需要进水则风鸣系统报警加湿器掉电,手动加满水后重启,选择自动加湿模式。用户可以输入想要的最适相对湿度值,加湿器根据用户设置的相对湿度开始工作。同样加湿器先检测并显示周围空气的湿度,49 如空气湿度大于用户设置的最适相对湿度则加湿器不工作;如空气湿度小于用户设置的最适相对湿度,则加湿器直接开始工作直到空气湿度达到用户设置的最适相对湿度值,停止工作,。在加湿期间,若空气湿度未达到最适相对湿度值,但已检测到水位低于最低水位H,则蜂鸣系统报警加湿器掉电,水加满后继续工作直到达到最佳相对湿度值,停止工作。三、智能加湿器的单片机控制系统的组成有以下部分(1)传感器部分传感器部分:本次设计采用DHT11数字温湿度传感器。可以检测采集周围温湿度,并且可以转换成数字信号,通过将信息传递给单片机来完成控制。(2)单片机部分单片机部分:单片机部分是核心部分,本次设计选T89C51单片机,是一种高性能的为控制芯片,51单片机采用40引脚DIP封装,是目前比较先进的一类单片机,能够与MCS-51指令系统完全兼容,此外还具有在静态逻辑方式和在空闲和聊点两种可以选择的省电模式。当系统对各个量初始化后,根据水位高低判断是否报警,各个传感器将室内温湿度值传输给单片机,单片机进行数值进行处理、控制,将传感器部分输入的相对湿度与最佳湿度值进行比对,然后半段是否开始加湿,使温湿度值符合室内舒适度的标准。能够自动修正各种测量误差,并且可以快速的进行重复多次的测量。如果单片机控制系统发生故障可以快速准确的自检出来,并且可以找出问题的根源,因此可以使测量控制高效准确。通过对测量的数据进行整理和加工,(3)按键输入部分手动/自动切换键、水位键、UP键、DOWN键一共四个键。可以根据用户要求设置加湿模式。接通电源后,按下水位键表示水位低则声光报警,再按水位键表示水位高则可以进行加湿。手动/自动切换键选择模式。在手动模式下可以设定最佳湿度值,UP和DOWN对设定值进行加减。本系统只需要几个独立的功能键,因此可以直接用I/O口结构按键电路,即每个按键对应一根I/O口线,单个的按键工作时不会其他I/O口线的状态。电路配置灵活且软件结构简单。(4)LCD显示系统LCD显示系统:用来显示预设温湿度和实际温湿度。由发光二极管组成,显示字母符号或数字,圆点型发光二极管作为小数点,小数点位于右下角,有共阴极与共阳极两种类型的LED显示器。在单片机应用系统中有动态和静态两种,本设计采用动态显示。(5)声光报警系统声光报警系统:实现系统的防干烧功能,在水位低于最低水位H后工作。综上,本次的智能加湿器系统的主要设计内容有数据的采集、模拟信号的处理、数字信号的处理、开关量的处理、屏幕显示、反馈控制、总结并写出设计心得。49 采取的主要技术路线或方法传感器的数据采集:主要是通过对周围敏感环境的检测,从而输出模拟量,如电流、电压等。控制模块:控制模块接收到运算器的信号之后,对电路进行控制。主要在加湿器处于干烧情况下时进行断电保护。硬件用AT89S51单片机,软件可采用51系列汇编语言编译器编译,由嵌入式系统的汇编语言编译器、仿真器作为单片机开发平台。画出程序流程图,写出源程序,用proteus软件画出电路图。做出实物模型,实现智能加湿器控制系统的功能。预期的成果及形式1﹑用户可以选择自动和手动模式,在水位低时可以通过声光报警实现防干烧功能,可以输入最佳相对湿度,液晶显示屏同时显示最佳相对湿度和实际室内相对湿度,然后控制系统开始工作,实现加湿功能。2﹑在设计的初级阶段进行认真调研,充分理解课题内容要求的基础上写出开题报告(3000字左右,查阅文献10篇以上,开题报告中引用的文献资料在5篇以上。3﹑在设计初期进行毕业实习,时间大概2周。实习过程写出实习日记,结束后对实习进行总结,提交实习报告。4﹑完成与课题有关的外文资料的翻译(3000字以上)。5﹑在设计后期,提交毕业设计论文一本,要求内容完整,含中外文摘要,条例清楚,文字通顺,书写规范。要求中文摘要字数在400字左右,关键词3~5个,论文正文字数应在10000字以上。6﹑提交设计部分的硬件电路图和单片机系统设计的软件源码,以及能够正常工作的单片机系统电路板。时间安排第一到两周:仔细阅读任务书,理解智能加湿器的基本原理,确定本次设计的目标,到图书馆查找与课题相关的相关资料,进行调研。熟悉课题所需要的相关知识,初拟论文的方案,熟悉将要使用到的相关应用工具软件。查找英文文献并翻译。确定工作流程图,并且大致确定硬件,上网查找相关的范文,初拟开题报告。第三到四周:毕业实习,更加直观的了解单片机控制系统,了解工业生产过程中单片机和传感器等的实际应用,开阔眼界,根据实习时的观察了解,进一步收集资料,认真总结并完成实习报告。第五到六周:确定总体设计方案,包括硬件的选择、控制方式、算法、程序流程图、软件界面总体框架等。第七到八周;进行系统硬件设计,绘制硬件图;制作核心界面,进一步确定信号核心处理方式方法.49 第九到十周;进行系统软件设计,并进行运行仿真;采集信号的处理分析.第十一到十二周:完成电路板制作,总体测试、调试等;完善总体界面。第十三到十四周:编写毕业设计论文、制作ppt、答辩准备。第十五到十六周:答辩。49 附录Ⅱ汇编源程序/*头文件*/#include#include#defineuintunsignedint#defineucharunsignedchar#defineyh0x80//LCD第一行的初始位置#defineer0x80+0x40//LCD第二行初始位置sbitDHT=P1^2;//温湿度传感器数据线sbitset_key=P1^5;//“设置”键K1sbitadd_key=P1^6;//“加”键K2sbitcut_key=P1^7;//“减”键K3sbitmode_key=P1^4;//“模式”键K3sbitkey=P1^3;//“报警”键K3sbitspeak=P3^7;//蜂鸣器sbitled=P3^6;//ledsbitrs=P1^0;sbiten=P1^1;unsignedcharshiZ,check;uchartemp,a;ucharcodetab1[]={"H:%"};//显示的固定字符ucharcodetab2[]={"set:%"};//显示的固定字符ucharset_deta=60;ucharset_deta1=40;ucharXX[2];uchartate[2];ucharread_data[5];ucharflog4;voiddelay_10us(){uchari;i--;i--;i--;i--;i--;i--;}voiddelay_1ms(uintxms)//延时函数,有参函数{uintx,y;for(x=xms;x>0;x--)for(y=124;y>0;y--);}//****液晶写入指令函数****//voidwrite_1602com(ucharcom){49 rs=0;//数据/指令选择置为指令P0=com;//送入数据delay_1ms(1);en=1;//拉高使能端,为制造有效的下降沿做准备delay_1ms(1);en=0;//en由高变低,产生下降沿,液晶执行命令}//***液晶写入数据函数****//voidwrite_1602dat(uchardat){rs=1;//数据/指令选择置为数据P0=dat;//送入数据delay_1ms(1);en=1;//en置高电平,为制造下降沿做准备delay_1ms(1);en=0;//en由高变低,产生下降沿,液晶执行命令}//***液晶初始化函数****//voidlcd_init(){write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据write_1602com(0x0c);//开显示不显示光标write_1602com(0x06);//整屏不移动,光标自动右移write_1602com(0x01);//清显示write_1602com(er+0);for(a=0;a<7;a++){write_1602dat(tab2[a]);}write_1602com(yh+0);for(a=0;a<5;a++){write_1602dat(tab1[a]);}}/*****************温湿度传感器DHT11读一个字节函数******************/ucharread_byte(){ucharvalue,i;for(i=0;i<8;i++)//一个字节有八位所以用for循环{value=value<<1;//从字节高位开始读需要移位while(DHT==0);49 delay_10us();delay_10us();delay_10us();if(DHT)//判断读到是“1”还是“0”{value=value|0x01;//如果是“1”value的值就要加一while(DHT!=0)//等待这一位数据结束因为70us的高电平表示“1”{//DHT=1;}}}returnvalue;//返回读到的这一字节数据}/*****************温湿度传感器DHT11读数据函数******************//**一个完整的数据一共是五个字节******************/voidread_value(){uchari;DHT=0;delay_1ms(20);DHT=1;delay_10us();delay_10us();delay_10us();delay_10us();if(DHT==0){while(DHT!=1);DHT=1;while(DHT==1);for(i=0;i<5;i++){read_data[i]=read_byte();//将读到的五个字节数据放到数组read_data【5】中}}}/**********处理读到的温湿度数据******************/voidpro_value(){read_value();temp=read_data[0]+read_data[1]+read_data[2]+read_data[3];if(read_data[4]==temp)//检测读到的数据是否正确{49 shiZ=read_data[0];//湿度整数部分}tate[0]=shiZ/10;//将湿度的整数部分的十位和个位分开tate[1]=shiZ%10;write_1602com(yh+2);for(a=0;a<2;a++){write_1602dat(tate[a]+0x30);}}voidpros_data(){XX[0]=set_deta/10;XX[1]=set_deta%10;write_1602com(er+4);for(a=0;a<2;a++){write_1602dat(XX[a]+0x30);}}voiddisplay1()//设置显示{pros_data();}voiddisplay2()//设置显示{write_1602com(er+4);write_1602dat(set_deta1/10+0x30);write_1602com(er+5);write_1602dat(set_deta1%10+0x30);}voidkey_caa(){if(set_key==0){delay_1ms(5);if(set_key==0){flog4=!flog4;while(set_key==0);}}if(flog4==1)49 {if(add_key==0){delay_1ms(5);if(add_key==0){set_deta=set_deta+1;while(add_key==0);if(set_deta>99){set_deta=99;}}}if(cut_key==0){delay_1ms(5);if(cut_key==0){set_deta=set_deta-1;while(cut_key==0);if(set_deta<=0){set_deta=0;}}}display1();}}voidbaojing(){if(key==0){delay_1ms(5);if(key==0){speak=0;led=1;while(key==0);}}else49 {speak=1;}if(shiZ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭