- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于AVR单片机的电子温湿度测量仪 小组成员:陈柏宇 娄睿 刘通 课题目的 在科学飞速发展的今天,对于温湿度等环境参数的检测越来越科学化、系统化,主要体现在参数检测的自动化和数据的计算机处理和显示,而且科学研究对于温湿度数据的要求也越来越高,于是电子温湿度测量仪应运而生。 课题目的 电子温湿度测量仪的出现解决了利用传统温湿度仪测量中的一些问题: 传统温度计利用固体、液体、气体受温度的影响而热胀冷缩等的现象为设计的依据,在测量的范围、精度、方便性及本身的体积大小等都有较大的局限。由于测温介质的不同有时也会造成安全隐患。 课题目的 课题设计 以ATmega16为检测与控制核心的单片机,以数字温湿度传感器DHT11作为温湿度的检测核心,再以LED数码管显示屏作为输出终端显示数据 课题设计 硬件部分 系统由主控制器、温湿度传感器、LED显示电路等构成。系统模块较多,所以应合理分配I/O 口资源,各模块以ATmega16L单片机为核心相连接。 课题设计 关于单片机ATmega16 该单片机是一款高性能、低功耗的8位AVR微处理器,具有先进的RISC结构,内部有大容量的ROM、RAM、Flash和EEPROM,集成4通道PWM,SPI串行外设接口,同时具有8路10位A/D转换器,对于数据采集系统而言,外部无需单独的A/D转换器,从而可节省成本。另外,该单片机提供JTAG调试接口,可采用自制的简易JTAG仿真器进行程序调试。 课题设计 关于DHT11数字温湿度传感器 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在精确的湿度校验箱中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。 课题设计 数字信号输出,从而减少信号的预处理负担 单总线结构输出有效的节省用户控制器的I/O口资源。并且,不需要额外电器元件 四引脚安装,超小尺寸 独特单总数据传输线协议使得读取传感器的数据更加便捷。 全部校准,编码方式为八位二进制 课题设计 关于显示电路的设计 显示电路采一个二位七段数码管动态显示,显示结果清晰。 课题设计 DHT11传感器整个读写分为,上位机发送起始信号,上位机接收下位机发来的握手响应信号,读‘0’,和读‘1’四个步骤。所有的信号除主机启动复位信号外,全部都由DHTxx产生。 课题设计 课题设计 软件部分 软件共分为显示模块、系统初始化函数模块、定时器 TIMER0 溢出中断模块、数据采集模块四个部分。 课题设计 课题设计 //******************************************************************** interrupt [TIM0_OVF] void timer0_ovf_isr(void) { TCNT0 = 0xE1; time_counter++; } //***************************************************************** 课题设计 //******************************************************************* unsigned char dht11_start(void)//dht11开始标志 { unsigned char count=0; DHT11_DATA_OUT; DHT11_DATA_CLI;//将数据线拉低18ms以上 delay_ms(25);//延迟18ms以上即可 DHT11_DATA_IN; DHT11_DATA_SET;//释放数据线 while(DHT11_DATA_READ) { delay_us(5); count++; if(count10) return 0;//延迟等待50us,超过则失败 } while(!DHT11_DATA_READ);//等待低电平结束 return 1;//返回1 ,表示dht11响应 } void dht11_getdata0(void)//读取湿度函数 { unsigned c
文档评论(0)