欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于无线环境监测系统的设计.doc

    • 资源ID:63963819       资源大小:318KB        全文页数:31页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于无线环境监测系统的设计.doc

    编号 淮安信息职业技术学院毕业论文题目基于ATmega16无线环境监测系统的设计学生姓名胡海洋学 号系 部电子工程学院专 业电子信息工程技术班 级指导教师杜锋 顾问教师二一二年六月摘 要设计一个无线环境监测系统,以ATmega16单片机为控制核心,制作一个终端和2个节点,整个系统采用无线监测系统调制方式,终端能从节点获取节点的环境温度和光照信息,并且节点能够实现中继转发的功能。实践结果表明,该系统能够通过无线的方式对环境温度进行监测。环境监测是指通过对影响环境质量因素的代表值的测定,确定环境质量(或污染程度)及其变化趋势。随着科技的不断进步,特别是计算机技术和网络技术的不断发展,环境检测由经典的化学分析向仪器与计算机和网络相结合的方式,实现了无线环境的检测。本文中设计了一个无线环境检测系统.以ATmega16单片机为控制核心实际制作一个终端和2个节点,终端能从节点获取节点的环境温度和光照信息,并且节点能够实现中继转发的功能。整个系统采用无线调制方式,收发都使用一个天线,终端发射信号时.将欲传输的信息通过串口输出的电平控制本振的开断从而实现无线调制,后级使用丙类功放发射,接收端节点将天线上的信号进行放大,然后倍压检波,通过自适应比较器解调出数据,最后再向终端回传环境信息。系统以ATmega16单片机作为终端和节点的主控芯片,光照探测山光敏电阻来实现,温度可由单片机内部自带的温度传感器得到,数据的调制、接收采用串口通信,使用VU口来控制天线的收发模式。关键词:ATmega16单片机 1602液晶显示 无线温度传感目 录摘 要I第一章 绪论1第二章 总体设计方案32.1无线环境监测方案论证32.2无线环境监测系统框图3第三章 系统硬件设计53.1单片机最小系统电路设计53.1.1单片机的选型53.1.2 ATmega16 性能指标53.1.3 ATmega16的引脚53.1.4 ATmega16最小系统电路设计63.2显示电路设计73.2.1显示器件的选择73.2.2 1602管脚功能73.2.3 ATmega16与1602的接口电路83.3无线监测电路设计93.3.1 DS18B20无线温度传感器93.3.2 DS18B20结构框图93.3.3 DS18B20无线温度传感器与单片机的接口电路103.4稳压电源电路设计113.4.1稳压电源电路框图113.4.2稳压电源工作原理12第四章 系统软件设计134.1系统软件设计分析134.2 ADC转换程序设计134.3 显示程序流程图14第五章 总结与展望15致 谢17参考文献19附录1 原理图21附录2 源程序23第一章 绪论近年来,随着无线传感器网络技术的迅猛发展,以及人们对于环境保护和环境监督提出的更高要求,越来越多的企业和机构都致力于在环境监测系统中应用无线传感网络技术的研究。环境监测是指通过对影响环境质量因素的代表值的测定,确定环境质量(或污染程度)及其变化趋势。随着科技的不断进步,特别是计算机技术和网络技术的不断发展,环境检测由经典的化学分析向仪器与计算机和网络相结合的方式,实现了无线环境的检测。本文中设计了一个无线环境检测系统.以ATmega16单片机为控制核心实际制作一个终端和2个节点,终端能从节点获取节点的环境温度和光照信息,并且节点能够实现中继转发的功能。无线传感器网络是由大量分布的不同规格和功能的具有感知、计算和通信能力的微型传感器节点,通过自组织的方式构成的一个以数据为中心的无线网络。大量传感器节点通过相互之间的分工协作,可实时感知、监测和采集分布区域内的监测对象或周围环境的信息。在国防安全、工农业领域各种控制、城市管理、生物医疗、环境监测、抢险救灾、防恐反恐、危险区域远程控制等许多领域都有着重要的科研价值和实用价值,具有十分广阔的应用前景。在工农业生产中,对环境的温度和光照等参数常常会提出一些特殊的要求,甚至要求实现对温度和光照的实时监视和控制。该无线环境监测系统智能化程度高,可实现对周边环境温度和光照信息的探测,并实时显示数据,将采集到的数据进行保存和分析处理,每个探测节点可与监测终端进行无线传输。第二章 总体设计方案2.1无线环境监测方案论证方案一:由于本设计是环境监测电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。方案二:考虑到用无线温度传感器,在单片机电路设计中,大多都是使用无线传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。2.2无线环境监测系统框图无线环境监测总体设计方框图如图21所示,控制器采用单片机ATmega16,温度传感器采用DS18B20,用1602来实现温度显示。在整个系统的设计过程中,终点和节点都需要一个主控芯片进行处理。主芯片选用ATmega16系列单片机。在信号调制方面采用了无线传感器调制方案。初始化调用显示子程序1S到?初次上电读出温度值温度计算处理显示数据刷新ADC转换开始命令NYNY图2-1 主程序流程图第三章 系统硬件设计3.1单片机最小系统电路设计3.1.1单片机的选型ATmega16作为温度测试系统设计的核心器件。ATmega16是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。3.1.2 ATmega16 性能指标(1)高性能、低功耗的8位AVR微处理器(2)先进的RISC结构:32个8位通用工作寄存器(3)非易失性程序和数据存储器:可以对锁定位进行编程以实现用户程序的加密(4) JTAG 接口:支持扩展的片内调试功能(5)外设特点:两个具有独立预分频器和比较器功能的8位定时器/计数器;两个可编程的串行USART(6)特殊的处理器特点:片内/片外中断源;6种睡眠模式:空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby模式以及扩展的Standby模式(7)I/0和封装:32个可编程的I/0口(8)工作电压:ATmega16L:2.7-5.5V;ATmega16:4.5-5.5V(9)速度等级8MHz ATmega16L;0-16MHz ATmega16(10) ATmega16L在1MHz,3V,25时的功耗正常模式:1.1mA;空闲模式:0.35mA3.1.3 ATmega16的引脚ATmega16 的引脚图,如图3-1所示。图3-1 ATmega16 的引脚图3.1.4 ATmega16最小系统电路设计ATmega16单片机的最小硬件系统,包括:复位电路、晶振电路、AD转换滤波电路、串口电平转换电路、JTAG仿真接口,电源。ATmega16最小系统电路图,如图3-2所示。图3-2 ATmega16最小系统电路图ATmega16内置了上电复位设计,并且在熔丝位里可以设置复位时的额外时间,故AVR外部的复位线路在上电路时,可以设计的很简单:直接拉一只10K的电阻到VCC即可(Rrst)。为了可靠复位,再加上一只0.1uF的电容(Crst)以消除干扰、杂波。IN4148(Drst)的作用有两个:(1)将复位输入的最高电压钳在Vcc+0.5V左右;(2)系统断电时,将Rrst(10K)电阻短路,让Crst快速放电,从而当下一次通电时,能产生有效的复位。在AVR单片机工作期间,按下S-RST(复位按钮)开关再松开时,将在复位脚产生一个低电位的复位脉冲信号,触发AVR单片机复位。ATmega16还内置了RC振荡线路,可以产生1M、2M、4M、8M的振荡频率。不过,内置的毕竟是RC振荡,在一些对时间参数要求较高的场合,比如有要使用AVR单片机的UART与其它的单片机系统或PC机通信时,为了实现高速可靠的通信,就需要比较精确时钟来产生精确的通信波特率,这时就要使用精度高的片外晶体振荡电路作为AVR单片机系统的工作时钟。3.2显示电路设计3.2.1显示器件的选择显示电路使用1602液晶显示模块,它有以下几个优点:(1)显示质量高:由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线显示器那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。(2)数字式接口:液晶显示器是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。(3)体积小、重量轻:通过显示屏上的电极控制液晶分子状态来得到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。(4)功耗低:液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。3.2.2 1602管脚功能1602的管脚图,如图3-3所示。图3-3 1602的管脚图1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线 。VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中由表3.1可见。表3.1 引脚与功能引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0底4位三态、 双向数据总线 0位(最低位)8DB1底4位三态、 双向数据总线 1位9DB2底4位三态、 双向数据总线 2位10DB3底4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极寄存器选择控制表,由表3.2可见 表3.2 寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据注:关于E=H脉冲开始时初始化E为0,然后置E为1,再清0。busy flag(DB7):在此位为被清除为0时,LCD将无法再处理其他的指令要求。 3.2.3 ATmega16与1602的接口电路ATmega16与液晶模块1602的接口电路,如图3-4所示图3-4 液晶显示1602与ATmega16的接口电路3.3无线监测电路设计3.3.1 DS18B20无线温度传感器DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20的性能特点如下:(1)多个DS18B20可以并联在惟一的三线上,实现多点组网功能;(2)无须外部器件;(3)可通过数据线供电,电压范围为3.05.5;(4)零待机功耗;(5)温度以9或12位数字;(6)用户可定义报警设置;(7)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。3.3.2 DS18B20结构框图DS18B20采用3脚PR35封装,其框图如图3-5所示。DS18B201 2 3GND I/O VDD图3-5 PR35封装DS18B20有三个主要数字部件:1)64位激光ROM,2)温度无线传感器,3)非易失性温度报警触发器TH和TL。R1R0分辨率/位温度最大转向时间/ms00993.750110187.510113751112750 表3.3 DS18B20温度转换时间表由表3.3可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。DS18B20的测温原理是这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在55所对应的一个基数值。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。3.3.3 DS18B20无线温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图3-6 所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。图3-6 DS18B20与单片机的接口电路当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。3.4稳压电源电路设计3.4.1稳压电源电路框图稳压电源电路框图,如图3-7所示启动电路基准电压误差放大短路保护过热保护恒流源调整管安全工作区保护输入地输出RscRARB图3-7稳压电源电路框图3.4.2稳压电源工作原理稳压电源电路主要由电源变压器、桥式整流电路、电容及三端稳压器组成。三端稳压器采用LM7805集成稳压器。如图3-8所示电路为输出电压+5V、输出电流1.5A的稳压电源。它由电源变压器T1,桥式整流电路D1D4,滤波电容C1、C3,防止自激电容C2、C3和一只固定式三端稳压器(7805)极为简捷方便的搭成的。图3-8 稳压电路图220V交流市电通过电源变压器变换成交流低压,再经过桥式整流电路D1D4和滤波电容C1的整流和滤波,在固定式三端稳压器LM7805的Vin和GND两端形成一个并不十分稳定的直流电压(该电压常常会因为市电电压的波动或负载的变化等原因而发生变化)。此直流电压经过LM7805的稳压和C3的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。本稳压电源可作为TTL电路或单片机电路的电源。三端稳压器是一种标准化、系列化的通用线性稳压电源集成电路,以其体积小、成本低、性能好、工作可靠性高、使用简捷方便等特点,成为目前稳压电源中应用最为广泛的一种单片式集成稳压器件。第四章 系统软件设计4.1系统软件设计分析利用无线传感器对环境进行监测,无线温度传感器是与ATmega16单片机进行电路设计的无线传感器。需要通过软件设计与分析才能进行无线环境监测。软件部分主要包括:1602显示转换程序、ADC转换程序、LCD初始化程序。主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度。4.2 ADC转换程序设计温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图4-1所示发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束图4-1 ADC转换流程图转换程序/*函数功能:初始化ADC入口参数:无返回值:无*/void init_ADC(void)ADMUX=0x40;/内部5v基准电源,ADC 转换结果右对齐,单端输入ADC0 ADCSRA=0xff;/ADC使能,开始转换,自动触发,中断标志,中断使能,128预分频 SFIOR=(0<<ADTS2)|(0<<ADTS1)|(0<<ADTS0);/连续转换模式/*函数功能:数据处理入口参数:adc_datah,adc_datal返回值:无*/void data_do(uint adc_datadh,uint adc_datadl) uint temp_1,temp_2,temp_3; temp_1=adc_datadh*256; temp_2=adc_datadl; temp_3=temp_1+temp_2; temp_4=(long)(temp_3 * 5) / 1.024; NYN无线温度显示寄存器十位数0?百位数0?十位数显示符号百位数不显示百位数显示数据(不显示符号) 结束Y图4-2显示流程图4.3 显示程序流程图第五章 总结与展望经过将近一个月的单片机课程设计,终于完成了我的无线环境监测系统的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,通过自己的努力完成毕业设计!在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件系统的设计,需要有很巧妙的程序算法,虽然以前也有编写过几次程序,但我觉的写好一个程序并不是一件简单的事,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。通过毕业设计论文让我更多的学会了去收集资料,去自主的学习。不但能掌握学习技巧还能学到课外知识,更加丰富了我的大学生活。从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序的设计只有在经常的写与读的过程中才能提高,硬件的操作只有一次次的试验才能成功,这就是我在这次课程设计中的最大收获。致 谢在论文完成之际,我首先向关心帮助和指导我的指导老师杜锋老师表示衷心的感谢并致以崇高的敬意!在论文工作中,遇到了很多的困难,一直得到杜锋老师的亲切关怀和悉心指导,使我克服了这些。杜锋老师以其渊博的学识、严谨的治学态度、求实的工作作风和他敏捷的思维给我留下了深刻的印象,我将终生难忘。再一次向他表示衷心的感谢,感谢他为学生营造的浓郁学术氛围,以及学习、生活上的无私帮助! 值此论文完成之际,谨向杜锋老师致以最崇高的谢意!在学校的学习生活即将结束,回顾两年多来的学习经历,面对现在的收获,我感到无限欣慰。为此,我向热心帮助过我的所有老师和同学表示由衷的感谢!特别感谢我的师兄、师姐以及班主任对我的学习和生活所提供的大力支持和关心!还要感谢一直关心帮助我成长的室友(、)在我即将完成学业之际,我深深地感谢我的家人给予我的全力支持!最后,衷心地感谢在百忙之中评阅论文和参加答辩的各位专家、教授!参考文献1.彭同明,徐学勤.单片机原理及应用M.北京:中国电力出版社,20052.潘勇,孟庆斌.基于DSl 8B20的多点温度测量系统设计电子量技术,20083.昂志截,金海红.基于ATmega16的无线传感器网络节点的设计与通信实现J.现代电子技术,20074.李文伸,段朝玉.短距离无线数据通信入门与实战M.北京:北京航空航天大学出版社,20065.李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,19986.李广弟.单片机基础M.北京:北京航空航天大学出版社,19947.廖常初.现场总线概述J.电工技术,19998. 谢自美.电子线路综合设计M.武汉:华中科技大学出版社,20079. 夏继强.单片机应用设计培训教程实践篇M.北京:北京航空航天大学出版社,200810. 王毅.单片机器件应用手册M.人民邮电出版社,199511. 康华光.电子技术基础(模拟部分)(第五版)M.武汉:华中科技大学出版社,2007附录1 源程序/*8M晶振条件*/#include <iom16v.h>#include <macros.h>#define uchar unsigned char#define uint unsigned int#define nop() asm("nop")#define Ds18b20_Port PORTB#define Ds18b20_DDR DDRB#define Ds18b20_PIN PINB#define SIO 7/* DS18B20操作定义*/#define CLR_DS18B20Ds18b20_Port&=(1<< SIO )/数据线强制拉低#define SET_DS18B20Ds18b20_Port|=(1<<SIO)/数据线强制拉高,上拉#define HLD_DS18B20Ds18b20_DDR|=(1<<SIO)/Mega16控制总线#define RLS_DS18B20 Ds18b20_DDR&=(1<< SIO ) /释放总线#define STU_DS18B20Ds18b20_PIN&=(1<<SIO)/数据线的状态#define RS_1 PORTB|=(1<<0)#define RS_0 PORTB&=(1<<0)#define RW_1 PORTB|=(1<<1)#define RW_0 PORTB&=(1<<1)#define E_1 PORTB|=(1<<6)#define E_0 PORTB&=(1<<6)long temp_4;void delayUs(uchar temp) while(temp-);/*延时一个机器周期*/void _nop_(void) unsigned char i; for(i=0;i>0;i+);/*函数功能:延时1ms(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒*/void delay1ms() unsigned char i,j; for(i=0;i<10;i+) for(j=0;j<33;j+) ; /*函数功能:延时若干毫秒入口参数:n*/ void delay(unsigned char n) unsigned char i; for(i=0;i<n;i+) delay1ms(); /*函数功能:判断液晶模块的忙碌状态返回值:result。result=1,忙碌;result=0,不忙*/ unsigned char BusyTest(void) unsigned char result; DDRD=0X00; RS_0; /根据规定,RS为低电平,RW为高电平时,可以读状态 RW_1; E_1; /E=1,才允许读写 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 result=PIND; /将忙碌标志电平赋给result result=result&0x80; E_0; return result; /*函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate*/void WriteInstruction (unsigned char dictate) while(BusyTest(); /如果忙就等待 DDRD=0XFF; RS_0; /根据规定,RS和R/W同时为低电平时,可以写入指令 RW_0; E_0; /E置低电平(根据表8-6,写指令时,E为高脉冲, / 就是让E从0到1发生正跳变,所以应先置"0" _nop_(); _nop_(); /空操作两个机器周期,给硬件反应时间 PORTD=dictate; /将数据送入P0口,即写入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E_1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E_0; /当E由高电平跳变成低电平时,液晶模块开始执行命令 函数功能:初始化ADC入口参数:无返回值:无*/void init_ADC(void)ADMUX=0x40;/内部5v基准电源,ADC 转换结果右对齐,单端输入ADC0 ADCSRA=0xff;/ADC使能,开始转换,自动触发,中断标志,中断使能,128预分频 SFIOR=(0<<ADTS2)|(0<<ADTS1)|(0<<ADTS0);/连续转换模式/*函数功能:数据处理入口参数:adc_datah,adc_datal返回值:无*/void data_do(uint adc_datadh,uint adc_datadl) uint temp_1,temp_2,temp_3; temp_1=adc_datadh*256; temp_2=adc_datadl; temp_3=temp_1+temp_2; temp_4=(long)(temp_3 * 5) / 1.024; /*函数功能:用1602显示转换后的数据入口参数:无返回值:无*/void show_data(void) WriteAddress(0x47); WriteData(temp_4/1000+0x30); WriteData(temp_4/100)%10+0x30); WriteData(temp_4%100)/10+0x30); WriteData('.'); WriteData(temp_4%100%10+0x30); WriteData('c'); WriteData('m');#pragma interrupt_handler ADC_end:15/ADC 转换结束中断服务程序void ADC_end(void) uint adc_datal,adc_datah;ADCSRA&=BIT(ADIE); /关转换结束中断adc_datal=ADCL;adc_datah=ADCH;data_do(adc_datah,adc_datal);show_data();ADCSRA|=BIT(ADIE); /开转换结束中断void main() uint temp_h,temp_t,temp_p,temp_z1,temp_z2; uint temp,temp1; uchar temp_count; PORTD=0XFF; DDRD=0XFF; PORTB=0XFF; DDRB=0XFF; DDRA=0X00; CLI();/disable all interrupts init_ADC(); LcdInitiate(); WriteAddress(0x40); WriteData('H'); WriteData('e'); WriteData('i'); WriteData('g'); WriteData('h'); WriteData('t'); WriteData(':'); while(1) CLI();/disable all interrupts temp=readTempDS18B20(); temp1=(float)temp*0.625; temp_h=(uint)temp1/1000+0x30; temp_t=(uint)temp1%1000/100+0x30; temp_p=(uint)temp1%1000%100/10+0x30; temp_z2=(uint)temp1%10+0x30; WriteAddress(0x00); WriteData('T'); WriteData('e'); WriteData('m'); WriteData('p'); WriteData(':'); WriteData(temp_t); WriteData(temp_p); WriteData('.'); WriteData(temp_z2); WriteData(0XDF); WriteData('C'); SEI(); /re-enable interrupts delay(800); 附录2 源程序

    注意事项

    本文(基于无线环境监测系统的设计.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开