论文 - AVR与虚拟仪器.doc

上传人:bao****ty 文档编号:132388199 上传时间:2020-05-15 格式:DOC 页数:14 大小:349.50KB
返回 下载 相关 举报
论文 - AVR与虚拟仪器.doc_第1页
第1页 / 共14页
论文 - AVR与虚拟仪器.doc_第2页
第2页 / 共14页
论文 - AVR与虚拟仪器.doc_第3页
第3页 / 共14页
论文 - AVR与虚拟仪器.doc_第4页
第4页 / 共14页
论文 - AVR与虚拟仪器.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《论文 - AVR与虚拟仪器.doc》由会员分享,可在线阅读,更多相关《论文 - AVR与虚拟仪器.doc(14页珍藏版)》请在金锄头文库上搜索。

1、自动加湿器队员:王晓慧 颜燕 赵令公摘要随着社会经济的发展和人们生活水平的提高,加湿器开始进入人们的视野。工厂、车间、仓库、病房和卧室,随处可见加湿器在发挥着极其重要的作用。但是,常规加湿器只是简单地持续加湿,而在现代化的工业生产及科学实验中,对空气湿度的重视程度日益提高,要求也越来越高,如果湿度不能满足要求,将会造成不同程度的不良后果。而在居家生活中,空气太干太湿也都不适宜:太干,细菌病毒容易滋生传播;太湿,容易滋生霉菌。因此,我们选择了自动加湿器的设计来有效地控制湿度,当环境湿度偏低则加湿,达到设定湿度时就停止加湿,总会把环境湿度控制在适宜的状态下,做到智能、有效和健康地加湿。目前市面上还

2、没有具有此类功能的自动加湿器,因此必将有广阔的市场前景和极大的开发价值。 一、 总体设计1 预期功能: 随着空气温度、湿度的变化自动控制加湿器的通断,依照各个工作环境最适宜的相对湿度控制调节加湿量,使其成为具备智能化恒定加湿功能的加湿器,可以在工厂、车间、仓库、医院及家庭中广泛使用。2 工作流程:利用温湿度传感器等元件,将天气变化的参数模数转化输入ATmega16单片机,经既定程序与设定的温湿度参数值分析比较后,输出高低电平信号到继电器驱动电路,进而控制加湿器的通断,实现随着环境温湿度变化而自动调节加湿器,空气湿度偏低则加湿,达到设定湿度值时停止加湿的功能。同时,使用数码管人性化直观显示室内湿

3、度。其硬件设计的原理图如下所示:单片机mega16三位七段数码管温湿度传感器DHT11继电器加湿器二、工作原理电原理图如下图:其中,左端为三位的七段数码管,可根据Mega16单片机的输出高低电平信号来显示环境的湿度值。右端上部的DHT11为4 针单排引脚封装、具有极高的可靠性与长期稳定性的数字温湿度传感器。右端下部为继电器及其驱动电路,继电器起开关作用,控制与之相连的加湿器的通断。三、硬件模块方案1 主控模块:以Atmel公司的ATmaga16单片机作为主控模块。 Mega16是高性能、低功耗的 8 位AVR 微处理器,具有先进的RISC结构,内部集成两个具有独立预分频器和比较器功能的8 位定

4、时器/ 计数器和一个具有预分频器、比较功能和捕捉功能的16 位定时器/ 计数器。可通过JTAG对MCU进行程序烧写及仿真。内置晶振,使用方便。2 电源与稳压模块:经变压器电压转换后采用5V电压为单片机及其他逻辑单元进行供电,并为整个系统提供高电平标准。3 检测模块:使用温湿度传感器DHT11来采集外部环境的数据,经模数转换后将湿度信号传入单片机。此传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接,具有超快响应、抗干扰能力强等优点。应用电路为:4 控制模块:使用继电器AGY2329来控制加湿器的通断。继电器需要功率驱动,驱动电流往往需要几百毫安,超出了AVR本身I

5、/O口的驱动能力,因此在外围硬件电路中使用了功率驱动电路。Mega16的输出端PC0接驱动电路的电阻一端,输出电平信号来控制继电器,并实现加湿器的通断操作。5 显示模块: 使用三位七段数码管,数码管为共阳极型.我们设计显示三位的空气湿度,由于湿度传感器的测试精度限制,最后小数点后我们设定一直显示零。Mega16 的PB4和PB5端口实现位选,PD0-PD6端口实现段选控制功能。四 、软件程序设计1.总体介绍本系统编程部分工作采用C语言完成,采用模块化的设计方法,利用各子程序实现各部分功能和过程的入口,完成温湿度变化识别、参数对比分析、控制继电器和湿度显示等功能。程序设计的流程如下框图所示: 2

6、软件功能定义几个函数,分别为:“dht11_start(void) /DHT11开始标志”在DHT11正式读数据前的准备工作,给DHT11一个长于18ms的低电平,以让DHT11准备读数。 “DHT11_getdata(void)/读数据函数”严格按照DHT11设计要求的时序读数。当高电平长于100us时就按一计数,低于30us就按零记。在每次高电平前有13us左右的低电平。如此三十个周期。“ void dht11_switchcode(void)/数据转换”,将采集数据的数据转化为十进制,并读出前八位湿度值。在主函数分别严格调用这些函数,并将该数值勇气段数码管显示出来,同时判断其大小,当低于

7、60的时候就启动继电器,以带动加湿器工作。3软件流程准备开始标志:当低电平低于18ms后,单片机将输出端口改为输入,开始读取DHT11的数据。然后将电平拉高,等待DHT11响应,DHT11将电平信号拉低以示响应单片机信号,而后将电平拉高准备发送数据信息。读取数据过程:DHT11先发送12-14us的低电平信号,然后紧跟高电平,如果在116118us左右,将自动识别为1,如果在2628us左右将识别为0。这样循环40次,共40为二进制数,每八位为一组,其中包括八位湿度整数位、八位湿度小数位、八位温度整数位,八位温度小数位、八位较检位。由于设计的需要,现只读取八位湿度整数值。将读取的湿度值转化为十

8、进制数,并用数码管显示,同时判断其大小是否符合60,如果不是就将加湿器打开,以给空气加湿到预定值。如此循环,大约每一秒采集一次信息。4软件功能采集信息并将信息转化为数字量输出,同时判断其是否符合要求,并以此为依据开通或关闭加湿器。五 系统测试及指标参数1湿度变化:空气湿度的测量范围为2060%RH,我们选择的工作区间为30%RH60%RH,5-4 0,当湿度小于20% RH时加湿器开始工作,大于60%RH时加湿器停止工作。2 可以通过数码管实现空气湿度的人性化显示。六 所需资源 单片机开发板1个 面包板1个 DHT11湿度传感器芯片1个继电器1个三位数码管1个二极管、三极管若干电阻、电容、导线

9、若干七 发展空间 传统加湿器只具有加湿功能,而我们设计的自动加湿器具有智能控制空气湿度的功能,极大地方便了人们的生活,提高了生活质量。目前市面上尚无具有同等功能的加湿器,且此加湿器造价低廉,因而市场前景广阔。适应于家居、车载、办公等小型场所,同时也可以应用于大型仓库和工厂、车间等环境的空气湿度的自动控制,有利于仓库管理和精准控制。 但是现在我们设计的加湿器还功能比较单一,只能实现湿度控制,而且湿度值必须提前设定好写入单片机,将来的发展可以通过外加键盘实现湿度阈值的可调性或者根据外界湿度值来控制加湿器工作速度的快慢变化,以实现更广阔的发展空间。八 成员分工赵令公: 软件设计 部分硬件设计及电路焊

10、接 答辩PPT 系统设计总结报告颜燕: 部分硬件设计及电路焊接 html网页 实验报告 系统总结报告及修改王晓慧: 部分硬件设计及电路焊接 课程设计报告(论文) 后期包装 周报告附 所用程序/*This program was produced by theCodeWizardAVR V2.03.4 StandardAutomatic Program Generator?Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.http:/Project : Version : Date : 2009-6-12Author : Company :

11、Comments: Chip type : ATmega16Program type : ApplicationClock frequency : 1.000000 MHzMemory model : SmallExternal RAM size : 0Data Stack size : 256*/#include #include #define DHT11_DATA PORTA.0#define DHT11_DATA_SET DHT11_DATA=1#define DHT11_DATA_CLI DHT11_DATA=0#define DHT11_DATA_OUT DDRA.0=1#defi

12、ne DHT11_DATA_IN DDRA.0=0#define DHT11_DATA_READ PINA.0unsigned int dht11_data2;unsigned int dht11_readdata;bit dht11_flag=0;unsigned char humidity;/湿度8位数据值/unsigned char humidity1;/unsigned char temp; /温度8位数据值unsigned char flag;unsigned char x,y,t;unsigned char shidu;flash unsigned char led_710=0xC

13、0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;unsigned char dht11_start(void)/dht11开始标志unsigned char count=0;DHT11_DATA_OUT;DHT11_DATA_CLI;/将数据线拉低18ms以上/delay_ms(18);/延迟18ms以上即可for(t=1;t;t- )PORTB=0x10; PORTD=led_7y;delay_ms(5);PORTB=0x20;PORTD=led_7x;delay_ms(5); DHT11_DATA_IN;DHT11_DATA_SET;/释放数据

14、线while(DHT11_DATA_READ)delay_us(5);count+;if(count10)return 0;/延迟等待50us,超过则失败while(!DHT11_DATA_READ);/等待低电平结束return 1;/返回1 ,表示dht11响应void dht11_getdata(void)/读数据函数unsigned char i=0,j=0,count=0;while(DHT11_DATA_READ);/等待数据线高电平结束for(j=0;j2;j+) /舍去校验位for(i=0;i=15;i+)/读16位数据while(!DHT11_DATA_READ);/1bit开始低电平信号结束delay_us(30);if(DHT11_DATA_READ)dht11_readdata=1;dht11_readdata|=0x0001;elsedht11_readdata=1;/判断位值flag=2;while(DHT11_DATA_READ&flag+);if(flag=1) break;/等待高电平结束if(f

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号