单片机温度、湿度监控与报警装置.

上传人:最**** 文档编号:116589011 上传时间:2019-11-16 格式:DOCX 页数:21 大小:1.59MB
返回 下载 相关 举报
单片机温度、湿度监控与报警装置._第1页
第1页 / 共21页
单片机温度、湿度监控与报警装置._第2页
第2页 / 共21页
单片机温度、湿度监控与报警装置._第3页
第3页 / 共21页
单片机温度、湿度监控与报警装置._第4页
第4页 / 共21页
单片机温度、湿度监控与报警装置._第5页
第5页 / 共21页
点击查看更多>>
资源描述

《单片机温度、湿度监控与报警装置.》由会员分享,可在线阅读,更多相关《单片机温度、湿度监控与报警装置.(21页珍藏版)》请在金锄头文库上搜索。

1、单片机实验报告 -温度、湿度监控与报警装置 系别: 电子信息工程系 专业: 电子信息工程 班级: 姓名: 2014-01-05目录一、作品功能3二、需求分析 3三、方案设计31总体方案32硬件部分 33软件部分6四、测试过程与结果18五、实验体会21六、器件清单211、 作品功能本次实验的功能为:1.能够检测环境温度,并显示2.能够检测环境湿度,并显示3.能够通过按键设定报警温度和湿度,并显示4.在达到(或超过)报警温度、湿度时进行有效报警5.设定测量周期,进行周期性测量6.通过计算机设定报警温度、湿度,并能够将检测的温度、湿度传输到计算机显示二、需求分析 本次实验介于需要对温度、湿度检测并且

2、显示,所以对各种元器件的需求如下:DS18B20,常用的温度传感器,具有体积小,硬件开消低,抗干扰能力强,精度高的特点;AM1001湿度传感器;ATmeg16单片机;在开发该模块的过程中,出现了模拟电压接入后会被单片机自身电压影响电压值的现象,因此特使用LM324芯片焊接了一个电压跟随器,将输入电压“锁住”。对于我们小组的拟在串口通讯中增加的功能,则是选择了借用蓝牙通讯模块,对计算机与单片机之间进行数据通讯,可以避免更改报警温度、湿度时的线路连接问题 而在开发环境中,我们选择的是更加熟悉的codevision3、 方案设计1 总体方案硬件部分在实现温湿度报警装置的实验设计过程中,我们小组主要采

3、用了查询的方式来进行温湿度的读取和显示,在与计算机的实时交互中,接收信息时使用了中断的方式。ADC模数测量,使用了PA3口作为测量口,PC0作为DS18b20的数据接口。使用USART异步串口通讯的方法与计算机收发数据。核心控制模块上使用了ATmega16单片机,这款单片机我们比较熟悉,又比较方便能在市面上找到合适的集成好的开发板,且其资源对这个实验来说是比较充足的。我们的硬件设计主要有下图的几个模块构成:串口通讯模块模块设计湿度监测模块温度监测模块湿度监测模块核心控制模块按键、蜂鸣器、液晶显示等外设温度传感器传输的是数字信号通过串口通信传输到单片机温度传感器:DS18B20数字温度传感器DS

4、18B20,常用的温度传感器,具有体积小,硬件开消低,抗干扰能力强,精度高的特点。型 号 测温范围 安装螺纹 电缆长度 适用管道TS-18B 20 -55125 无 1.5 mTS-18B 20A -55125 M10X1 1.5m DN1525TS-18B 20B -55125 1/2”G 接线盒 DN40 60AM1001湿度传感器通过串口通信传输模拟信号参数:技术参数:(1)供电电压(Vin): DC 4.5-6V(2)消耗电流: 约2mA(MAX 3mA)(3)使用温度范围: 050(4)使用湿度范围: 95%RH 以下(非凝露)(5)湿度检测范围: 2095%RH(6)保存温度范围:

5、 050(7)保存湿度范围: 80%RH 以下(非凝露)(8)湿度检测精度: 5%RH(0-50,30-80%RH)(9)电压输出范围: 0.6-2.85V DC注:该模块为模拟量输出,因此,只需要在单片机上编写一段模拟电压测量的代码,再按比例将输入电压转化为湿度值即可将湿度测量测量出来匹配硬件电路电压跟随电路:在开发该模块的过程中,出现了模拟电压接入后会被单片机自身电压影响电压值的现象,因此特使用LM324芯片焊接了一个电压跟随器,将输入电压“锁住”。拟在串口通讯中增加的功能:拟借用蓝牙通讯模块,对计算机与单片机之间进行数据通讯,可以避免更改报警温度、湿度时的线路连接问题3软件部分程序:/*

6、This program was produced by theCodeWizardAVR V2.05.0 ProfessionalAutomatic Program Generator?Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.http:/Project : Version : Date : 2014/1/5Author : NeVaDaCompany : Comments: Chip type : ATmega16Program type : ApplicationAVR Core Clock frequency: 3.6864

7、00 MHzMemory model : SmallExternal RAM size : 0Data Stack size : 256*/#include #include #include / 1 Wire Bus interface functions#include #include / Alphanumeric LCD Module functions#include #include #include /a0是信号线/ Alphanumeric LCD Module functions#define AD_SE_ADC3 0x03 /ADC3int data1,data2,data

8、3,data4;float data5;char lcd110,lcd210,lcd310,lcd410,lcd510;unsigned int temp1=0x92,temp2=0x90,T1=28,HY1=50,T4=10,HY4=20,signal1=0,signal2=0,signal3=0;unsigned char tem6,T210,HY210,T310,HY310;float tem1;#ifndef RXB8#define RXB8 1#endif#ifndef TXB8#define TXB8 0#endif#ifndef UPE#define UPE 2#endif#if

9、ndef DOR#define DOR 3#endif#ifndef FE#define FE 4#endif#ifndef UDRE#define UDRE 5#endif#ifndef RXC#define RXC 7#endif#define FRAMING_ERROR (1FE)#define PARITY_ERROR (1UPE)#define DATA_OVERRUN (1DOR)#define DATA_REGISTER_EMPTY (1UDRE)#define RX_COMPLETE (1RXC)/ USART Receiver buffer#define RX_BUFFER_

10、SIZE 8char rx_bufferRX_BUFFER_SIZE;#if RX_BUFFER_SIZE = 256unsigned char rx_wr_index,rx_rd_index,rx_counter;#elseunsigned int rx_wr_index,rx_rd_index,rx_counter;#endif/ This flag is set on USART Receiver buffer overflowbit rx_buffer_overflow;/ USART Receiver interrupt service routineinterrupt USART_

11、RXC void usart_rx_isr(void)char status,data;status=UCSRA;data=UDR;if (status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN)=0) rx_bufferrx_wr_index+=data;#if RX_BUFFER_SIZE = 256 / special case for receiver buffer size=256 if (+rx_counter = 0) #else if (rx_wr_index = RX_BUFFER_SIZE) rx_wr_index=0; if (+rx_counter = RX_BUFFER_SIZE) rx_counter=0;#endif rx_buffer_overflow=1; if(data=C) signal1=1; signal2=0; signal3=0; else if(signal1=1) if(data=U) signal3=1; else if(signal3=1) if(signal2=0) T1=T1%10+(data-48)*10; else if(signal2=1)

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

当前位置:首页 > 高等教育 > 大学课件

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