1、 1 编号: 哈尔滨工业大学 大一年度项目中期检查报告 项目名称: 基于 AVR 单片机的温湿度监测和数据采集系统设计 项目负责人: 孙灜 学号: 1110100407 联系电话: 15804668268 电子邮箱: sunying_ 院系及专业 电气学院 测控技术与仪器专业 指导教师: 刘 大同 职称: 讲师 联系电话: 13895701031 电 子 邮 箱 院系及专业: 电气学院 测控技术与仪器专业 哈尔滨工业大学基础学部制表 填表日期: 2012 年 3 月 23 日 2 一、项目团队成员 (包括项目负责人、按顺序) 姓名 性 别 所在院 学号 身份证号 本人签字 孙灜 男 电气学院
2、 1110100407 230103199309161610 孙灜 徐杰伊 男 电气学院 1110100420 360281199302098018 徐杰伊 杨文宗 男 电气学院 1110100429 640323199410210811 杨文宗 马豪凡 男 电气学院 1110100421 410184199110223855 马豪凡 孙佳睿 男 电气学院 1110100409 230108199308130216 孙佳睿 二、指导教师意见 三、项目专家组意见 1是否达到中期目标(在内打): 达到中期目标 基本达到中期目标 未达到中期目标 2成绩评定(在内打): 合格 改进后可继续执行 不合格
3、,项目实施意见: 提出警告、观察后再定继续执行或中止 中止实施 3其它意见和建议: 组长签名: ( 盖 章 ) 年 月 日 签 名: 年 月 日 3 四、项目研究中期报告 (一)立项背景 (二)项目研究内容及实施方案 (三) 项目实施的进展情况及初步取得的成果 (四)结题预期目标 (五)经费使用情况 (一)立项背景 温度、湿度作为最为常见的物理量, 而且 是系统常需要测量、控制和保持的量 。 其测量、测试方法和技术是测试领域和仪器学科的重要问题,开展基于 AVR 单片机结合温湿度传 感器设计技术的温湿度测量系统课题研究,能够有效锻炼 我们 的软、硬件设计和调试等基本能力,具有重要的实用价值和意
4、义。 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU 随机存储器 RAM、只读存储器 ROM、多种 I/O 口和中断系统、定时器 /计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、 A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 所以 单片机在检测和控制系统中得到广泛的应用 。 AVR单片机与 51单片机、 PIC单片机相比具有一系列的优点 : 1:在相同的系统时钟下 AVR运行速度最快; 2: 芯片内部的 Flash、 EEPROM、 SRAM容量较大; 3:所有型号的 Flash、 EEPROM都可以
5、反复烧写、全部支持在线编程烧写 (ISP); 4:多种频率的内部 RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作; 5:每个 IO口都可以以推换驱动的方式输出高、低电平,驱动能力强; 6:内部资源丰富,一般都集成 AD、 DA模数器; PWM; SPI、 USART、 TWI、 I2C通信口;丰富的中断源等。 目前支持 AVR 单片机编译器的语言主要有 汇编语言、 C 语言、 BASIC 语言等。其中 C编译器主要有 CodeVisionAVR、 AVRGCC、 IAR、 ICCAVR 等, C 语言编译器由于它具有功能强大、 运用灵活、代码小、运行速度快等先天性的优点
6、,使得它在专业程序设计上具有不可代替的地位。 数据采集 定义 通常有两种解释:一种是指盘点机、掌上电脑等终端电脑设备;另外一种是指网络数据采集用的软件。数据采集系统包括了:可视化的报表定义、审核关系的定义、报表的审批和发布、数据填报、数据预处理、数据评审、综合查询统计等功能模块。通过信息采集网络化和数字化,扩大数据采集 的覆盖范围,提高审核工作的全面性、及时性和准确性;最终实现相关业务工作管理现代化、程序规范化、决策科学化,服务网络化。 (二)项目研究内容及实施方案 项目研究内容: 1 了解单片机温湿度传感器及数据采集的概念 2 了解基于 AVR 单片机的温湿度传感器的应用范围及市场前景 3
7、选择 AVR 单片机型号及温湿度传感器 4 单片机控制程序开发 4 5运用传感器进行数据的采集与处理,整理数据结果,处理相关信息,完成实验报告。 实施方案: 1主要通过上网搜索,查阅书籍以及咨询老师等方法,并以小组为单位展开讨论和集体学习。 2小 组通过社会调查的形式了解社会各行业对基于 AVR 单片机的传感器的需求和将来的市场前景。 3选择 AVR 单片机型号及温湿度传感器: 以 AVR 单片机为核心搭建此单元,负责控制数据存储及数据处理等功能。 AVR 单片机是一种 RISC 精简指令集的高速 8位单片机,相对于出现较早也较为成熟的 51系列单片机, AVR系列单片机片内资源更为丰富,接口
8、也更为强大,同时由于其价格低等优势,在很多场合可以替代 51系列单片机。 AVR 单片机的特点比较明显,可以总结为高速、低功耗、 I/O 功能强、具有强大的定式 /计数器及通讯接口。在设计中我们采用 了 ATmega16L 单片机 4 单片机控制程序开发: 软件设计开发工具 : AVR STUDIO 开发软件,用于编写 AVR 程序,自带下载功能; 5 软硬件调试 6 进行试验,运用传感器进行数据的采集与处理 7 整理数据结果,处理相关信息,完成实验报告 (三)项目实施的进展情况及初步取得的成果: 1 对基础知识略有了解,进行书籍阅读与网上查阅。 单片机是一种集成在电路芯片,是采用超大规模集成
9、电路技术把具有数据处理能力的中央处理器 CPU随机存储器 RAM、只读存储器 ROM、多种 I/O口和中断系统、定时器 /计时器等功能 (可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、 A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 综上 AVR的优点我们以 Atmel 公司的Atmega16L 单片机为控制中心 , 温度测量使用 DS18B20 单总线数字温度传感器 ,及 DHT11湿度传感器并 采用 1602字符型液晶显示器作为温湿度值的显示输出。编程使用 AVR STUDIO编译器 , 该编译软件自带了使用器件库函数文件 , 省去了编写器件驱动程序的步骤 ,
10、 为程序的编写带来了极大的方便。 2 进行了市场调查,如对温室大棚及粮仓中温湿度传感 器进行了调查,对其工作原理进行了简单了解。( 档案管理:纸制品对于温湿度极为敏感,不当的保存会严重降低档案保存年限利用如 LTM8901 系列 +LTM8662+LTM8520 即可组成环境监控系统,配上排风机,除湿器,加热器,即可保持稳定的温度,避免虫害,潮湿等问题。 温室大棚:植物的生长对于温湿度要求极为严格,不当的温湿度下,植物会停止生长、甚至死亡利用LTM8901C+LTM85202,配合气体传感器,光照传感器等可组成一个数字化大棚温湿度监控系统,控制农业大棚内的相关参数,从而使大棚的效率达到极致。
11、动物养殖:各种动物在不同的温度下会表现出不同的生长状态,高质高产的目标要依靠适宜的环境来保障。 药品储存:根据国家相关要求,药品保存必须按照相应的温湿度进行控制。根据最新的 GMP认证,对于一般的药品的温度存储范围为 0-30 。 烟草行业:烟草原料在发酵过程中需要控制好温湿度,在现场环境方便的情况下可利用 LTM8590 等无线温湿度传感器监控温湿度,在环境复杂的现场内,可利用 RS-485 等数字量传输的 LTM8901C 进行检测控制烟包的温湿度,避免发生虫害,如果操作不当,则会造成原料的大量损失。 ) 3 选择 AVR 单片机型号及温湿度传感器: 5 ( 1)选择 ATmega16L
12、单片机 PQ1A 开发板。 ( 2) DS18B20 数字温度传感器: 传统温度测量系统中 , 一般选用模拟式温度传感器。常用的模拟式温度传感器 , 其中一个共同特点是输出为模拟量 , 因此在测量电路中必须经过 A/D 转换才能成为计算机所能处理的数字量。数字式温度传感器将非电模拟量转换到数字信号这一处理过程的多个环节集成在单芯片上 , 实现了在测量点将温度值数字化 , 有效解决了传统温度传感器外围电路复杂 ,抗干扰能力差的弊病 , 降低了对系统的要求。而且 DS18B20是 PQ-1A开发板上自带的温度传感器方便简洁。 DS18B20 的测量温度范围是 - 55 +125。该温度传感器的输出
13、温度数据可与摄氏度校准 , 使用查找表或转换规则就可计算温度值。为了检测测量系统的准确性 , 进行了温度测量实验。由于铂电阻温度传感器的精度高 , 稳定性好 , 应用温度范围广 ,因此 , 作为一种常用的温度检测器 , 不仅广泛用于工业测温 ,而且被制成各种标准温度计。这里 , 采用PT1000 作为标准温度计。将 DS18B20 和 PT1000 捆绑在一起放入高低温箱中进行测试 , 通过改变高低温箱的温度 , 待箱 中温度稳定后 , 记录在液晶显示器上显示温度值 ; 同时用高精度万用表测 PT1000 铂电阻的具体阻值 , 然后根据 PT1000 的分度表算出温度值 , 将两者数值对比即可
14、算出系统的误差。 (3)DH11湿度传感器: DHTxx 系列数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式测湿元件和一个 NTC测温元件,并与一个高性能 8位单片机相连接。因此,该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个 DHTxx传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在 OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行输出接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为各
15、类应用甚至最为苛刻的应用场合的最佳选则。 4 硬件电路设计图及实物连接图: 6 5 选择 DS18B20同时选择 ICCAVR 及 AVR STUDIO 进行编程及下载 关于程序设计: #include /包含型号头文件 #include /包含 “位 “操作头文件 #include /标准输入输出头文件 #include /包含自定义常量头文件 #include “SMG.C“ /包含数码 管显示函数 /* 函数名称 : B20_init 功 能 : 复位 DS18B20 参 数 : 无 返回值 : 无 /*/ void B20_init(void) DDRA|=BIT(DS18B20);
16、/配置为输出 PORTA /拉低 Delayus(600); /等待 600微秒 PORTA|=BIT(DS18B20); /释放总线 Delayus(60); /等待 60微秒 DDRA /配置为输入 while(PINA /等待 DS18B20拉低 while(!(PINA /等待 DS18B20 释放总线 /* 函数名称 : B20_readB 功 能 : 读取一个字节的数据 参 数 : 无 返回值 : retd-返回的一个字节数据 /*/ uchar B20_readB(void) uchar i,retd=0; for(i=0;i=1; /右移,准备接受新的数据位 DDRA|=BIT
17、(DS18B20); /配置为输出 PORTA /拉低,启动读数据位 AVR 单片机系统开发板 PQ-1A 速度: 1MIPS/s 16K FLASH 512字节 EEPROM 1K SRAM JTAG 接口、 UART 接口、 SPI 接口 I/O 直接驱动数码管、 LED、继电器等 功耗低、具有加密功能 7 PORTA|=BIT(DS18B20); /释放总线 Delayus(5); /等待 5微秒 DDRA /配置为输入,开始读取数据位 if(PINA /是就将此位置高 Delayus(50); /等待 50微秒 return retd; /将读到的一个字节返回 /* 函数名称 : B2
18、0_writeB 功 能 : 写入一个字节的数据 参 数 : wrd-要写入的数据 返回值 : 无 /*/ void B20_writeB(uchar wrd) uchar i; for(i=0;i=1; /右移,为写入新的数据位做准备 Delayus(50); /等待 50微秒 /* 函数名称 : Read_temp 功 能 : 读取温度值 参 数 : 无 返回值 : rettemp-返回的温度值 /*/ uint Read_temp(void) uchar templ,temph; uint temp; B20_init(); /初始化,每次写命令都从初始化开始 B20_writeB(0x
19、cc); /跳过 ROM B20_writeB(0x44); /启动温度转换 B20_init(); /初始化,每次写命令都从初始化开始 B20_writeB(0xcc); /跳过 ROM B20_writeB(0xbe); /读寄存器 templ=B20_readB(); /读温度低字节 temph=B20_readB(); /读温度高字节 temp=templ+temph*256;/将温度整理成 16位变量 return temp; /返回 16位变量 /* 函数名称 : Num_BCD 8 功 能 : 将一个字节的整数转换成三位 BCD码 参 数 : num-需要转换的整数 返回值 :
20、chr-三位 BCD码数组指针 /*/ uchar* Num_BCD(uint num) uchar i,chr3; uchar *rept; rept= /返回指针指向 BCD码数组 for(i=0;i3;i+) chr2-i=num%10; /对 10 取余数(其实是求模,但是对于正数,取余与求模是相等的) num/=10; /除以 10,为取出下一位做准备 return rept; /返回指针 /* 函数名称 : main 功 能 : 完成温度的读取与显示 参 数 : 无 返回值 : 无 /*/ void main(void) uint t; uchar *temppt; uchar i
21、,temp3; Board_init( ); /初始化开发板 while(1) t=Read_temp(); /读取 温度值 t*=0.625; /转换成实际温度的 10倍 temppt=Num_BCD(t);/将实际温度的 10 倍转换成 BCD 码 for(i=0;i3;i+) /将转换后的 BCD码存入显示数组 tempi=*(temppt+i); for(i=0;i3;i+) /显示温度 if(i=1) temp1+=16; /如果是各位,则加上小数点(数码管的译码数组有所改变,读者可以看 10_DS18B20 文件夹下的 SMG.C 文件) One_smg_display(tempi,i+1); Delayms(5); 大致流程图: 9 6 进行软硬件调试及数据采集: 运用 AVR STUDIO 及 DS18B20温度传感器部分实验图: (测量室温图) (测量体温升温过程) (四)结题预期目标: 1.加强 C语言基础从而自行编译控制程序,并熟练应用 AVR STUDIO 软 件。 2.熟练应用 DHT11 湿度传感器并增加测量湿度试验。 10 3.进行数据采集并进行分析处理 (五)经费使用情况 书费 100 元 其他费用 100 元 附件: DHT11 温湿度传感器 C语言程序