基于单片机的智能加湿器系统设计_第1页
基于单片机的智能加湿器系统设计_第2页
基于单片机的智能加湿器系统设计_第3页
基于单片机的智能加湿器系统设计_第4页
基于单片机的智能加湿器系统设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的智能加湿器系统设计基于单片机的智能加湿器系统设计Design of intelligent humidifiersystem based onsingle chipmicrocomputer绪论目前在我们的日常生活中,加湿器,被应用到很多的领域。市场上多数的加湿器,都是通过手动打开、关闭,再加上空气中的温湿度进行实时精确的监测,根据人们在使用加湿器的过程中,一些意想不到的问题,比如过度过度的空气加湿的空气湿度对人体的健康产生负面影响;如果加湿器工作过程中发生干烧,会带来危险减少使用生命。所以有必要开发一种智能控制的加湿器。设定一个最佳湿度当空气湿度低于最佳湿度加湿器加湿,当加湿的湿度达到时,停止加湿,避免过度加湿。设定水位报警防干烧功能避免危险,使其更智能化。加湿器在国外主要用于工业,国外加湿器产品的研制从50年代开始兴起,在加湿器智能控制系统方面的研究上从单片机向ARM以及DSP与FPGA方面转化。其产品种类不断增多,加湿性能逐步提高。在我国加湿器还处于新兴产物,主用于北方空气干燥进行屋内加湿,加湿器占有率远低于国外,但随着我国科技的进步,经济的快速发展,对加湿器有了进一步发展,种类不断变多,功能更加完善,加湿器的普及率也越来越高。本系设计采用单片机进行智能控制。主要研究以单片机AT89C51为核心设计,达到对加湿器更加智能设计。主要研究的内容为蓝牙控制,实时远程控制;水位报警,提醒人们要加水;防干烧,防止安全意外发生。本此设计从这三个功能来达到智能化。研究主要的问题是加湿器使用过程中会存在湿度已经足够却还要继续加湿的问题,为了避免加湿过渡,于是在此基础设计了当湿度当达到最佳湿度值时,加湿器关闭。总体设计本次设计的总体通过单片机来对各个模块控制,来达到下列功能:(1)水位低于20%报警,防干烧;(2)空气中湿度低于45%加湿,达到45%时自动关闭;(3)显示湿度,温度和时间;(4)可以自己通过按键来设置适合的湿度值和水位报警值。(5)可以定时开启加湿器;(6)可用手机蓝牙进行开关;利用水位传感器模块和继电器模块进行水位报警,防干烧,温湿度传感器模块进行温度采集,LCD1602液晶显示模块屏进行数据显示,按键模块来进行数据选择修改,添加一个外部时钟模块对时间进行实时显示,设置一个闹钟来定时打开加湿器,最后通过蓝牙模块进行远程控制。智能加湿器总体设计原理框图如图1-1所示:加湿模块温湿度传感器单片机加湿模块温湿度传感器单片机显示模块显示模块继电器继电器时钟模块时钟模块水位传感器水位传感器按键模块按键模块报警模块报警模块蓝牙模块蓝牙模块图1-1:智能加湿器原理框架图本次设计可以看成自动加湿和手动加湿两部分。手动加湿器功能可以通过按键来对加湿器进行开关,还可以通过功能键对时间,最佳湿度值,水位报警值进行修改,启动加湿器。还可以通过定时按键来设置时间来打开加湿器。自动加湿器是通过系统设定的初始值来对加湿器进行加湿。自动加湿功能要通过三个方面来进行完成。首先硬件方面,我们要对各个模块的元器件进行了解,然后进行电路设计然后再进行总线连接,画出原理图来对整个电路进行布局调试,详细可见系统硬件设计。其次软件方面,通过画流程图对各个模块电路程序设计的框架进行了解,然后编写程序,达到需要的功能设计,详细可见系统软件设计。最后调试方面,使用仿真软件进行观察,并对其进行调试。在仿真软件里面调试完成之后,我们可以通过烧录器下载在单片机里面进行硬件调试,详情可见系统调试。2系统硬件设计2.1单片机模块2.1.1AT89C51单片机简介本次系统单片机控制芯片采用AT89C51系列,它是是一种高性能,低电压的4k脉冲流的COMS8位应用程序处理器。该装置采用高密度不易腐贮存技术,符合MSS-51.AT89S51系列工业标准,是一个高效、灵活和成本效益高的集成控制器。AT89C51实物图如图2-1。图2-1AT89C51实物图本次设计选择的AT89C51单片机采用的是40引脚双列直插封装形式。它含有32个外部双向输入输出端口引脚,2个外中断口引脚,还有2个16位可编程定时计数器引脚,另外2个全双工串行通信口,2个读写口线。AT89C51单片机由于受引脚数目的限制,其引脚具有的具有第二功能。引脚排列如图2.2。图2-2AT89C51引脚图其中各引脚各功能为:主电源引脚VCC(40脚):供电电压+5v电源。GND(20脚):接地。晶振引脚XTAL1(19脚):反向振荡放大器的和内部时钟工作电路的输入端。XTAL2(18脚):反向振荡器输出端。控制信号引脚 RST(9脚):复位端。ALE/PROG(30脚):用来锁存P0口送出的低8位字节。用于编程时输入编程脉冲。/PSEN(29脚):外部程序存储器选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP(31脚):当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。多功能I/O口引脚AT89C51单片机有四个8位I/O口P0、P1、P2、P3,每一组I/O口线都可以作为输入或输出口,其中:P0口(32~39脚):P0口与外部连接时需要接一个八位上拉电阻的8位双向I/O口。 P0口吸收8TTL门电流。P0口可用于外部数据程序存储。当P0口的管脚为1时,为高阻输入。在编程时,P0口可用为原码输入口,校验时,P0为输出原码。 P1口(1~8脚):P1口是一个内部提供上拉电阻的八位双向I/O口, P0口输出4TTL门电流。P1口可用于缓冲器。当P1口管脚为1时,当内部上拉电阻为高电平时,作为输入,外部下拉为低电平时,为输出电流。在编程和校验时,P1口为低八位地址接收。P2口(21~28):P2口为一个内部带上拉电阻的八位双向I/O口,P2口输出4个TTL门电流,当P2口管脚为1时,当内部上拉电阻为高电平,作为输入,被外部拉低,为输出电流。当P2输出为高八位地址时,可用于外部程序存储器或16位地址外部数据存储器。在对外部八位地址数据存储器进行读写时,P2口可以输出其特殊功能寄存器的内容。在编程和校验时,P2口为接收高八位地址信号和控制信号。P3口(10~17脚):P3口管脚为一个内部带上拉电阻的八位双向I/O口,P2输出4个TTL门电流。当P3口管脚为1时,当内部上拉为高电平,作为作输入。外部下拉为低电平,为输出电流。P3也有一些特殊功能口,如表2.1所示:表2.1P3口特殊功能脚端口引脚第二功能注释P3.0RXD串行输入口P3.1TXD串行输出口P3.2/INT0外部中断0P3.3/INT1外部中断1P3.4T0计时器0外部输入P3.5T1计时器1外部输入P3.6/WR外部数据存储器写选通P3.7/RD外外部数据存储读器选通2.1.2单片机最小系统(1)时钟电路单片机内部时钟电路就是一个振荡器,单片机执行各种操作必须在这个振荡器给的节拍下控制下才能进行。因此单片机没有时钟电路是不会正常工作的。时钟电路根据程序来进行对单片机进行工作。单片机时钟方式由它内部反向放大器输入端XTAL1和输出端XTAL2连接一个构成的振荡电路和内部时钟电路组成。晶体振荡的频率一般为1.2~12Mhz,电容在时钟电路中启到对频率微调的作用,电路中电容在5~30PF范围内。在本次设计中采用12Mhz的晶体振荡频率和两个30PF的电容与单片机XTAL1脚和XTAL2相连构成一个内部时钟电路。时钟电路图2-3所示:图2-3时钟电路复位电路 单片机的复位电路分为上电自动复位、按键手动复位两种和看门狗强制复位三种等。本次设计采用上电复位电路,通过对电容的充放电来进行复位。电容与单片机RST脚相连,电路在上电时,RST通过电容加给得到了短暂的高电平信号,高平信号持续的时间长久根据电容在充电过程的快慢。上电时,VCC的上升时间约为10ms,而振荡器的起振时间取决于振荡频率。复位电路如图2-4所示:图2-4复位电路2.2传感器模块2.2.1温湿度传感器本次设计温湿度传感器采用DHT11数字温湿度传感器。DHT11由-个NTC检测温度的元器件与一个电阻式的检测湿度的元器件组成,该传感器与8位单片机相连,是一块可以同时检测温度和湿度的数字传感器。通过单片机和-一个简单的电路,它可以检测室内的温度和湿度采集并实比较,能够更好的收集信息。DHT11温湿度采集范围湿度采集范围5%~95%,在环境温度为25℃时,湿度采集精度是±5%。温度采集范围是-20℃~60℃,在环境温度为25℃时,温度采集精度是±2℃。DHT1工作时电压为3.3V~5.5V,测量时的供电电流为1.0mA,传感器在使用过程中要接一个接4.7K的上拉电阻,上拉电阻的作用是在单片机不进行输出以及传感器待机时,使得DATA口为高电平,使电路防止干扰,提高稳定性。本次设计中,因为DHT11与单片机的通信同步是通过数据端口实现,于是数据端连接到p1.7端口,由于单片机p1端口内部自带上拉电阻,所以本次设计不需要外接一个上拉电阻。DHT11传感器电路设计如图2-5。图2-5DHT11传感器电路图2.2.2水位传感器本次设计采用yl-69传感器,实现对当前水位检测。YL-69的AO是模块的模拟量输出需要经过AD转换后接入单片机,DO口是数字量输出输出可直接接到单片机。本次电路设计由于没有找到适合的水位传感器,于是用三个按钮开关代替水位传感器检测的高、中、低水位。按下按钮表示水位到达相应的水位。当水位高于报警水位置,加湿器器正常工作,当水位低于报警值水位值加湿器报警,继电器截止,停止加湿,从而达到防干烧。水位传感器如图2-6。图2-6水位传感器2.3按键输入模块本次设计采用轻触按键4脚开关,当我们按下它时发出的电平为低电平;当按键开关弹起时,发出的电平为高电平,单片机这些电平信号都是由单片机相连的引脚发出的,被单片机系统接收并处理。这些按键的主要功能:S1为功能键:对时间和定时的时,分,秒,湿度,水位值进行选择调节。从而达到手动加湿的功能。S2和S3为增和减键:对选择的功能进行增和减达到想要的时间,定时时间,湿度,水位。S4为定时启动键:启动时开始定时加湿,到设定的时间加湿器就会自动加湿。设置定时时间通过S1选择时,分,秒,然后S2,S3进行增加和减少。键盘输入电路如图2-7。图2-7按键输入电路2.4外部时钟模块本次外部时钟模块电路采用DS1302时钟芯片。DS1302是一个低功耗实时时钟芯片。本次设计通过它提供时,分,秒的信号,并且通过配置的AN/PM来决定采用时间的格式。工作电压为2.0V~5.5V,采用双电源供电,可以对后备电源进行涓细电流充电。在本次设计中采用32.768kMZ的晶振接在DS1302的X1和X2之间,提供基准。VCC1脚外接一个备用电源,DS1302的CE脚与单片机P1.2口相连,内部有个40K下拉电阻,当进行读写操作的时候必须高电平。I/O脚与单片机P1.1口相连,进行数据传输,SCLK脚与单片机P1.0口相连,进行通信时钟信号。外部时钟电路如图2-8。图2-8外部时钟电路2.5显示模块本次设计显示部分采用1602字符型液晶显示屏。字符型液晶显示屏专门从来显示数字、符号和字母等,它是由字符型液晶显示屏、控制驱动主电路及扩展驱动电路,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。LCD1602显示的容量为16×2个字符,显示图形由M×N个显示单元组成,显示屏上显示单元与显示外部字节相对应,每一字节的内容与显示屏上相应位置的亮暗对应。LCD1602各引脚功能如表2.2。表2.2LCD1602各引脚功能符号引脚说明符号引脚说明VSS电源地D2数据VDD电源正极D3数据VL液晶显示偏压D4数据RS数据/命令选择D5数据R/W读/写选择D6数据E使能信号D7数据D0数据BLA背光源正极D1数据BLK背光源负极本次设计中D0到D7与单片机P0口相连,由于P0口内部没有上拉电阻使用时需要外部连接,RS脚与单片机P2.6连接,进行数据命令选择,E脚与单片机P2.7连接,使能信号端。D0~D7端与单片机P0端口相连,由于P0口内部没有上拉电阻使用时需要外部连接个八位上拉电阻,进行数据传输,VEE脚为液晶显示器对比度调整端,接了一个1k的电阻接地,为防止对比度过高,产生鬼影。LCD1602电路如图2-9。图2-9LCD1602电路图2.6A/D转换模块由于本次设计采用的水位传感器输出的是模拟量,所以电路要进行一次AD转换把输出的模拟量转换成数字量传到单片机里。本次AD转换采用ADC0832芯片。ADC0832是一种双通道转换芯片,它内部含有256级八位分辨率,对于一般的转换都能适应。它内部电压工作在0~5V之间,转换时间仅只要32US,转换速度快且稳定性好。本次设计通过ADC0832的引脚与单片机相应端口相连,来达到数据转换。CS引脚与p2.0口相连,当DS1302没有工作,输入为高电平时,芯片停用,进行AD转换时,CS应为低电平并保持到转换结束。由于单片机的接口是双向的而在通信时DO引脚和DI引脚并未同时有效,所以将两个引脚连在一起与单片机p2.2口相连。CLK与P2.1相连进行时钟输入,输入时钟脉冲。A/D转换电路如图2-10。图2-10A/D转换电路2.7报警模块本次报警模块采用蜂鸣器报警。通过与8550PNP型三极管相连,然后单片机P3.7口与三极管基集限流电阻1K相连构成了一个报警电路。利用三极管的开关,来控制蜂鸣器工作。报警情况是由于水位传感器检测水位不够从而产生报警。当检测的水位信号为低水位时,单片机系统对管脚P3.7口发送开始信号使晶体管转换到通路状态,从而使蜂鸣器发出报警信号;当检测的水位信号为正常时P3.7置高电平,三极管截止,蜂鸣器不发出声音。水位报警电路电路如图2-11。如图2-11水位报警电路2.8继电器模块本设计用继电器来控制加湿器进行加湿。继电器本身就是一个控制器。它可以自己控制其他模块,也可以其他模块来控制自己。它适用于自动控制电路中,它对电路启到自动调节、安全保护的作用。本设计采用PNP型三极管来驱动继电器,当P3.6口输入为低电平时,三极管导通,继电器开启,当P3.6口输入为高电平时,三极管截止,继电器关闭。通过三极管驱动控制,从而实现自动控制加湿器。本次设计中三极管启到控制继电器开关作用,电阻R6限流降低了三极管管耗,发光二极管则当继电器打开时灯亮,继电器关闭时灯灭。继电器驱动电路如图2-12。如图2-12继电器驱动电路2.9蓝牙模块本次设计采用JDY-30SPP蓝牙芯片。进行对单片机远程手机控制在本次设计中蓝牙模块1脚串口输入,电平为TTL电平接单片机P3.1口,2脚为串口输出,电平为TTL电平接单片机接怕P3.0口。蓝牙电路如图2-13.图2-13蓝牙电路3系统软件设计3.1系统软件总体设计水位监测温湿度检测外部时钟主程序系统软件程序是采用C语言编写,在Keiluvsion4进行开发。系统软件程序分多个模块进行编写,其软件总体设计如图3-1。水位监测温湿度检测外部时钟主程序液晶显示液晶显示按键控制按键控制蓝牙控制状态控制蓝牙控制状态控制图3-1软件总体设计这几个模块之间相辅相成,根据设计来达到相应的功能。通过温湿度检测模块和水位检测的模块,从而达到采集湿度、温度和水位值的功能。通过液晶显示模块,按键控制模块,外部时钟模块,蓝牙控制模块,从而达到界面显示,按键选择,时钟显示定时,蓝牙开关功能的功能。状态控制模块则建立在继电器和液晶显示基础上,从而达到控制加湿器的功能。3.2系统软件各模块程序设计在编写程序之前我们可用先通过绘制程序流程图,来提高软件设计的效率。通过绘制流程图可以是使我们思路更加清晰,首先先画出简单结构了解大概的框架,然后再明确哪个管脚进行细致化,这样一步一步的,对于软件设计程序编程有很大的提高。3.2.1主程序设计主程序先初始化系统参数和工作状态,各个模块的调用都在主函数main.c。主程序流程图如图3-1。开始开始采集温湿度,水位显示温湿度水位值设置报警值显示定时时间界面定时状态按键控制按键扫描初始化和设置定时采集温湿度,水位显示温湿度水位值设置报警值显示定时时间界面定时状态按键控制按键扫描初始化和设置定时是蓝牙开关 否蓝牙开关否 是加湿器检测加湿器检测温度过高水位满足,加湿器工作温度过高水位满足,加湿器工作结束结束图3-1主程序设计主程序具体代码见附录一,其主结构为:Voidmain(){...While(1){Keyscan()//按键函数,设定相关参数if(set==0&&seta==0)//定时状态...if(set==0)//时钟状态...}Baojing()//报警函数,设置相关参数if(RI)//蓝牙开关,远程设定参数}主函数中,通过对keycan()函数调用,判断此界面,当显示时钟界面时则采集温湿度,水位值,从而显示温湿度,水位界面。当显示为定时界面则显示定时的时间界面。Baojing()函数则调用,则对水位的高低,继电器的工作转态进行判断。如果是RI蓝牙控制的话,发送相对应的参数则可以控制加湿器。3.2.2温湿度检测程序设计DHT11使用的是单一总线通信,DATA引脚和单片机相连。总线处于空闲状态和通信状态这个2个状态之间。

单片机没有与DHT11交互时,总线处于空闲状态,在上拉电阻的作用下,处于高电平状态。

当单片机和DHT11正在通信时,总线处于通信状态,通信过程如下:

①单片机将驱动总线的I0配置为输出模式。准备向DHT11发送数据。

②单片机将总线拉低至少18ms,以此来发送起始信号。再将总线拉高并延时20~40us,以此来代表起始信号结束。

③单片机将驱动总线的I0口配置为输入模式,准备接收DHT11回传的数据。

④当DHT11检测倒单片机发送的起始信号后。首先把总线降低80us作为对单片机的应答(ACK),然后接着将总线拉高80us,准备回传采集到的温湿度数据。其温湿度检测程序流程图如图3-2。数据保存数组接收数据判断80us高电平是否结束判断80us低电平是否结束判断p1.7是否为低电平延时20usP1.7输出高电平P1.7输出低电平结束延时18ms开始数据保存数组接收数据判断80us高电平是否结束判断80us低电平是否结束判断p1.7是否为低电平延时20usP1.7输出高电平P1.7输出低电平结束延时18ms开始 否 是 否 否 是 是 否 否 是图3-2温湿度检测程序流程图通过数字温湿度传感器将采集到温度,湿度值传到单片机中。单片机经过处理,把p1.7脚的电平拉低,延时18ms之后再拉高20us,完成后判断p1.7是否为低电平,如果不是则循环判断该信号,如果是低电平就继续判断80us低电平是否结束,没有结束就重复判断,若是结束就继续判断80us高电平是否结束,结束的话就单片机开始接受数据,并将接收的数据按照十进制的方式存在指定的数组中。3.2.3水位检测程序设计水位检测设计是通过Yl-69采集的模拟量经过adc0832模数转换成数字量而成。采集到水位传感器输出的的模拟量后,然后数据首先经过采样,把连续的模拟量变成离散的数字量。其次再保持,保持电路原有的脉宽。然后量化,用数字量来对模拟信号进行转化的最小单位进行表示,最后进行编码,用二进制数表达量化后数据。经历这四次转换后,输出的模拟信号变成数字信号。所以水位检测的主要程序是adc0832程序。首先定义CS使能、Clk时钟、DATI数据输入和DATO数据输出输入和单片机相连的管脚。然后再定义3位地址,端口初始化。水位采集的数据进行通道选择,当DATI两组数据为“1”“0”时则表示在CH0里面进行转换。当DATLLI两组数据为“1”“1”时表示在CH1里面进行转换,通道选择完成后再选通模拟前八位数值和后八位数值到比较器。比较前8位与后8位的值,如果不相同就舍去,这得到的数据会连续送出。其水位检测流程图如图3-3。端口初始化开始

端口初始化开始水位采集水位采集AD转换AD转换判断AD转是否换结束判断AD转是否换结束 否 是读取转换数据读取转换数据结束结束图3-3水位检测流程图3.2.4状态控制程序设计通过继电器和水位检测的水位值,和温湿度检测湿度值进行对比看是否启动加湿器,当水位检测到没有水时,继电器关闭,停止加湿。当水位检测有水时还要满足湿度值看是否需要加湿,当满足时开启继电器,加湿器工作。其状态控制程序的流程图如图3-4。判断水位高低显示时间判断定时时间是否到开始判断水位高低显示时间判断定时时间是否到开始判断环境湿度是否启动判断环境湿度是否启动关闭继电器关闭继电器 否 否关闭继电器关闭继电器 是开启继电器开启继电器加湿器工作加湿器工作蜂鸣器报警 低蜂鸣器报警结束结束关闭继电器 高关闭继电器图3-4状态控制程序流程图状态控制模块通过对baojing()函数的调用,再对alarm闹钟函数进行判断,假如alarm=1则再对水位值进行判断,当水位低时,继电器关闭,蜂鸣器报警。当满足水位时则对湿度值大小再进行一次判断,当湿度值过低时,继电器开启,加湿器工作。状态控制模块具体代码见附录一,其结构为:voidbaojing(){ if(alarm==1)//定时时钟时间到 {... if(255-adc0832_0)/2.55)<LS){...}//判断水位 else {... if(RH_data<HS) //判断环境湿度是否启动继电器 {... if(value1>10){...} } else{...} }} else{...}}3.2.5外部时钟程序设计本次设计外部时钟电路采用的是DS1302时钟芯片。通过接一个32768Hz的晶振,然后内部进行分频后获取周期信号,再对信号进行处理,获取秒、分、时的数值。然后对DS1302进行命令操作,设置定时时间。对DS1302的操作就是对其内部寄存器的操作它的内部时间寄存器如图3-5:图3-5DS1302内部时间寄存器首先对DS1302芯片进行读写操作,然后进行写入地址,发送数据,writel1302(0x8E,0x00);状态寄存器打开写保护,writel(0x80,0x55);对秒寄存器工作,写入55秒,writel1302(0x82,0x59);对分寄存器工作,写入59分。writch1302(0x84,0x23);对时寄存器工作,写入23时,对ds1302写入了初始时间23小时59分55秒的时间,最后按BCD码进行时分秒存储顺序进行存储。通过液晶显示屏进行位选,从而对时间显示。最后进行数据的读取转换成16进制。定时功能通过get_shizhong()函数对DS102进行写入2时5分8秒的时间然后再读出,通过按键来进行启动定时。3.2.6按键程序设计按键程序通过keycan()函数来对整个模块进行编写。通过对外部时钟函数和屏幕显示函数的调用,实现对湿度,水位,时间和定时器进行设定。 按键模块程序通过判断按下哪个按键可以把它分成五个子程序,然后五个子程序里面进行编写。Keycan函数结构为:voidkeyscan(){if(s5==0){while(!s5)..}//开关键if(s1==0){s1num++;while(!s1);switch(s1num){...}}//选择键 if(s1num!=0){if(s2==0){while(!s2);switch(s1num){...}}//加减if(s3==0){while(!s3);switch(s1num){..}}}//减键 if(s4==0){while(!s4);if(seta==0){...}else{..}}}//定时器设置键当按键按下时延时10ms进行消抖,S5为手动开关键,当定时时间没到也可以通过手动按下开开启加湿,s1为选择键通过s1num标志量来判断在屏幕显示的位置,来继行数据的选择。而s2,s3,通过s1num显示的位置来对选择的数值进行增加,减小。S4为定时器设置键,按下后设定定时的时间。3.2.7蓝牙控制模块设计蓝牙控制模块主要由蓝牙模块通过串口和单片机控制设备进行数据传输。通过发送命令来对系统进行控制。其蓝牙控制代码结构为:if(RI) { RI=0; if(SBUF=='k') //发送指令K { SBUF='k'; di(); alarm=!alarm; delay(50);蓝牙模块通过手机下载蓝牙串口,与加湿器蓝牙进行匹配连接,然后对加湿器发送指令“K来对加湿器启到开关。当加湿器处于开启状态,发送指令则关,加湿器处于关闭状态,发送指令则开。 3.2.8屏幕显示程序设计屏幕显示模块调用温度检测模块、水位检测模块和外部时钟模块,对采集到的温度,湿度,水位和时间进行显示。屏幕显示程序通过初始化函数init1602()来对采集的数据进行write_byte()和read_byte(),从而显示出来。LCD1602屏幕显示程序的读写操做,屏幕和光标操作都是通过指令编程来实现,液晶内部含有十一条控制指令,如图3-6。图3-6LCD1602内部控制指令设计先对LCD1602进写入数据指令,发送指令码38H用来设置工作方式,0CH来设置光标,06H设置输入方式,01H清屏,通过80H来进行一行写入数据,然后80H+40H来进行第二行数据写入,最后LCD1602进行数据写入和读出数据。4系统调试4.1仿真软件简介本次系统设计原理图和程序完成后,我们可用仿真软件进行仿真与调试,检验现象是否与设计的一样。此次仿真过程软件调试采用Proteus,程序调试采用KeilC。4.1.2Proteus简介Proteus是一款非常实用的仿真软件,他操作方便,元器件种类齐全,对单片机电路现象调试启到很大的帮助。它具有以下优点:不同于其他的仿真软件,它是混合电路仿真软件,不仅可以对模拟电路进行调试,还可以对数字电路,甚至模数混合电路。单片机芯片类型繁多,元器件齐全没有适合的可以依照自己需要的去创建,使仿真效果更贴近硬件要达到的效果。它除了可以仿真单片机工作状态,还可以仿真外围电路和没单片机的电路工作状态。Poreus的操作过程也十分简单,打开主界面,然后在元器件里面搜索自己所需的元器件,然后进行仿真,完成后,将对应的引脚进行连接。电路的搭建完成后可以通过下面的开始键进行测试。4.1.2KeilC51简介Keil

C51是德国Keil

Sottvvaloq出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性.上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。

keil操作步骤:首先建所选芯片一个工程文件,然后进行保存。然后在建一个源文件把它添加到工程文件里面去。之后在源文件进行编写代码。编写完成后进行编译,编译没错之后生成一个.hex文件。keil编程和Proteus仿真软件联合直接用写的程序烧写到仿真软件里面。keil编译成功后生成一个后缀名后hex的文件,然后在proteus里面双击芯片浏览hex文件的所在目录将其加载,加载成功没问题后,然后就可以对整个仿真设计进行调试。4.2仿真调试本次设计在仿真中由于没有找到适合的DHT11传感器和水位传感器所以在仿真里面只显示湿度和水位上下限值,没有采集到的湿度和水位值。所以在仿真过程中看不数据采集到的现象还有蓝牙模块本身是个串口,所以在仿真中仿真不了通过手机远程控制的现象。上电后,这个就是一个屏幕显示现象仿真,LCD1602液晶显示屏第一行显示的是水位报警值20%和湿度上限值45%,第二行显示的是个时间。其仿真现象如图4-1。图4-1仿真现象接下来进行按键仿真,通过按下不同的按钮来对仿真现象进行调试。首按下第一个按钮后的,会对显示的湿度,水位上下值和时间时分秒进行选择,其仿真图,如图4-2。图4-2按下选择键后的仿真图按下第一个按钮选择后,然后按下第二个按钮,会对选择的值进行增加其仿真结果图如图4-3。图4-3按下加键后仿真图按下第一个按钮选择后,然后按下第三个按钮,会对选择的值进行减小其仿真结果图如图4-4。图4-4按下减键后仿真图按下第四个键为定时设定键,按下就会定时打开加湿,定时的时间通过第一按钮对定时的时分秒进行选择,选择后按下第二个键则增加,按下第三个则减小,其现象仿真图如图4-5。图4-5定时设定键仿真图由于没有水位传感器不能自动报警,所以在仿真过程中设置了一个报警按钮,来仿真水位低时,蜂鸣器报警现象。按下第五个按钮,按下报警键后,低电平,蜂鸣器响。其仿真现象如图4-6。4-6报警后仿真图本次仿真只能看见屏幕显示,功能键,增加键,减小键,定时间和水位报警这几个现象,其他的湿度,水位的采集数据显示和蓝牙控制只能通过硬件来进行调试4.3硬件调试Keil编写完成生成.hex文件,然后用专门的烧录器下载到硬件板里面去,从而来对各个模块进行硬件调试。硬件实物图如图4-7。图4-7硬件实物图通电后硬件温湿度,水位,时间,界面显示如图4-8。蓝牙指令界面如图4-9。图4-8 显示界面图4-9蓝牙指令界面结论本次设计为单片机智能加湿器,主要模块有DHTLL温湿度采集模块,DS1302外部时钟模块,液晶显示模块等。主要工作有,确定本课题的难点重点和需要实现的功能。确定本课题的研究方向,发展前景。进行总体设计,画出原理框架图。设计硬件,根据元器件的时序图编写驱动程序。在仿真平台上进行硬件电路的仿真及软件程序的代入。对仿真现象调试,达到最佳效果。再进行硬件设备的焊接与测试,最后撰写论文。在本次设计过程中,难点主要为以下部分:(1)焊接时未考虑管脚排版的问题,导致部分管脚与仿真图上差异较大,略显杂乱影响整体美观。(2)软件程序设计中状态控制模块对继电器控制,防干烧程序问题(3)仿真时找不到适合的温湿度传感器和水位传感器,于是有些现象仿真不了,只能通过下载硬件里面去然后来进行调试。本次设计基于市面上的加湿器,增加了一个防干烧,加湿时湿度达到最最佳湿度时停止加湿,以免加湿过度,另外还添加了个手机蓝牙远程控制,让我们可以更方便的去操作它,不足的是蓝牙只能发送命令控制开关,并不控制其他的。在此基础我们可以更智能化,比如把水位报警换成语音报警,我们

温馨提示

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

最新文档

评论

0/150

提交评论