毕业论文-基于at89s51单片机与无线技术的仓库温度采集系统_第1页
毕业论文-基于at89s51单片机与无线技术的仓库温度采集系统_第2页
毕业论文-基于at89s51单片机与无线技术的仓库温度采集系统_第3页
毕业论文-基于at89s51单片机与无线技术的仓库温度采集系统_第4页
毕业论文-基于at89s51单片机与无线技术的仓库温度采集系统_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录摘要IABSTRACTII第一章绪论4第二章系统总体设计方案521单片机主模块5211AT89S51单片机特点6212最小单片机系统722温度传感器7221温度传感器简介8222DS18B20性能特点与内部结构923无线通信模块介绍14231NEWMSGRF905工作模式17232NEWMSGRF905寄存器配置1824键盘模块1925显示报警模块2026其它模块23第三章软件设计2431主程序流程24311系统温度采集终端主程序实现24312系统主机终端主程序实现2532温度的采集及数据的处理26321DS18B20初始化27322数据的读取与处理2833无线通信子程序31331NEWMSGNRF905初始化31332寄存器的配置32333数据的发送与接收3434温度的显示模块3635按键子程序37第四章总结与展望39参考文献40摘要随着社会主义现代化的发展,在科学技术突飞猛进的今天,人工智能起不不可忽视的作用。尤其是各种智能化的仪器、仪表在农、工业的广泛应用给社会带来了极大的便利。本文就是一个利用温度来实现简单智能控制的例子。它完成了从温度的采集、转换、显示以及控制的一系列任务。由于时间关系,本文并未深入探讨温度的具体实例。例如根据温度来控制热水器、电风扇等与温度有关的设备。但是它提供了一个通过温度来控制设备的基本思想和原理。相信能在实际应用中为我们的生活带来更大的便利。本课题提出一种基于单片机的无线温度采集系统方案,该方案是利用单片机控制DS18B20温度传感器采集温度、控制LED数码管实时显示温度值、控制NEWMSGNRF905进行数据的无线传输。本系统中所用到的器件是AT89S51单片机、数字温度传感器DS18B20和无线芯片NEWMSGNRF905,数据接收后由单片机AT89S51作为核心控制部件译码,由MAX7219驱动的LED数码管显示当前的温度值,外加执行电路来完成系统的报警等预期任务。关键词单片机;温度采集;NEWMSGNRF905;DS18B20;LED数码管显示;ABSTRACTWITHTHEDEVELOPMENTOFSOCIALISTICMODERNIZATION,MAKEASPURTOFPROGRESSINSCIENCEANDTECHNOLOGYTODAY,ARTIFICIALINTELLIGENCEDOESNOTPLAYAROLECANNOTBEIGNOREDESPECIALLYVARIOUSKINDSOFINTELLIGENTINSTRUMENTS,INSTRUMENTINTHEAGRICULTURAL,INDUSTRIALAPPLICATIONHASBROUGHTGREATCONVENIENCETHISPAPERISTHEUSEOFTEMPERATURETOASIMPLEEXAMPLEOFINTELLIGENTCONTROLITCOMPLETESTHETEMPERATUREFROMTHEACQUISITION,CONVERSION,DISPLAYANDCONTROLOFASERIESOFTASKSBECAUSEOFTHETIME,THISDIDNOTDISCUSSSPECIFICEXAMPLESOFTEMPERATUREFOREXAMPLE,ACCORDINGTOTHETEMPERATURECONTROLWATERHEATER,ELECTRICFANANDTEMPERATURERELATEDEQUIPMENTIBELIEVETHATINTHEPRACTICALAPPLICATIONFOROURLIVESMORECONVENIENTTHISPAPERPUTSFORWARDAWIRELESSTEMPERATURECOLLECTIONSYSTEMBASEDONMCUPROGRAM,THEPROGRAMISTHEUSEOFMICROCOMPUTERCONTROLOFDS18B20TEMPERATURESENSORTEMPERATURECOLLECTION,CONTROLLEDDIGITALTUBEDISPLAYREALTIMETEMPERATUREVALUE,CONTROLOFNEWMSGNRF905WIRELESSDATATRANSMISSIONTHESYSTEMUSEDINTHEDEVICEISTHEAT89S51MICROCONTROLLER,DIGITALTEMPERATURESENSORDS18B20ANDNEWMSGNRF905WIRELESSCHIP,DATARECEIVEDBYAT89S51MICROCONTROLLERASCORECONTROLCOMPONENTDECODING,DRIVENBYMAX7219LEDDIGITALTUBEDISPLAYSTHECURRENTTEMPERATUREVALUE,ANDTHEEXECUTIVECIRCUITTOCOMPLETETHESYSTEMALARMEXPECTEDTASKKEYWORDSSINGLECHIPMICROCOMPUTERTEMPERATUREACQUISITIONNEWMSGNRF905DS18B20LEDDIGITALTUBEDISPLAY第一章绪论21世纪的今天,科学技术的发展日新月异,科学技术的进步同时也带动了测量技术的发展,现代控制设备不同于以前,它们在性能和结构发生了翻天覆地的变化。我们已经进入了高速发展的信息时代,测量技术是当今社会的主流,广泛地深入到应用工程的各个领域。温度是工业、农业生产中常见的和最基本的参数之一,在生产过程中常需对温度进行检测和监控,采用微型机进行温度检测、数字显示、信息存储及实时控制,对于提高生产效率和产品质量、节约能源等都有重要的作用。伴随工业科技、农业科技的发展,温度测量需求越来越多,也越来越重要。多路无线温度采集系统可被广泛应用于温度测量或相应的可转换为温度量或供电故障监控的工业、农业、环保、服务业、安全监控等工程中,例如城市路灯故障检测和供电线路防盗监视、城市居民小区供热检测、大型仓库温度检测、工业生产测控、农业生产温度测控、环保工程、故障监控工程等。考虑到许多工业环境中对多点温度进行监控,一般需要测量几十个点以上。本设计是以AT89S51单片机作为控制核心,提出以DS18B20的单总线分布式温度采集与控制系统。多个温度传感节点通过单总线与单片机相连形成分布式系统。控制器通过温度传感器实时检测各节点的温度变化由智能数字温度传感器DS18B20完成对仓库现场温度的多点采集,并由NRF905完成数据的无线通信,数据接收后由单片机AT89S51作为核心控制部件译为码,由MAX7219驱动的LED数码管显示当前的温度值,外加一定的执行电路来完成系统的报警等预期任务。因为采用微型机进行温度检测、数字显示、信息存储及实时控制,对于提高生产效率和产品质量、节约能源等都有重要的作用,并且温度参数对工业生产的重要性,所以温度测量系统的精确度和智能化一直受到企业的重视。所以学习并研究温度测量及相关知识可做为一个较为实用的课题的方向,能获得较实用的知识和方法。同时它应用的领域也相当广泛,可以应用到消防电气的非破坏性温度检测,电力、电讯设备的过热故障预知检测,各类运输工具之组件的过热检测,保全与监视系统之应用,医疗与健诊的温度测试,化工、机械等设备温度过热检测。因此前景是相当的可观。第二章系统总体设计方案此系统是基于AT89S51单片机并由智能数字温度传感器DS18B20完成对仓库现场温度的多点采集,用NEWMSGNRF905作为无线模块进行无线数据传输,数据接收后由单片机AT89S51作为核心控制部件译码,并由MAX7219驱动的LED数码管显示当前的温度值,外加执行电路来完成系统的报警等预期任务。系统整体结构ISM频道数据采集系统键盘显示单片机单片机无线发射无线接收图21系统整体结构工作流程1数据采集设备采集现场数据参数,并由单片机控制提取。2单片机将有用数据加入数据位置编码通过无线射频模块发射。3无线射频模块发射接收数据。4单片机控制提取接收到的数据并送至显示模块适时显示当前温度值,并根据键盘预先设定上限温度值报警。21单片机主模块主控单片机采用一片ATMELAT89S51。根据题目要求,充分利用了单片机灵活控制的优点,发挥其优势功能,采用单片机控制显示信号灯,提高了系统的灵活性,设置方便。AT89S51芯片本身集成了看门狗(WDT)电路,这是为了系统更加的稳定可靠,避免了系统因为死机而停止工作的情况发生这种做法对于实际上长时间运行在恶劣状况的交通灯控制系统来说是十分必要的。它可以完成自动加载复位,省去人工调整的麻烦,可以做到无人职守。211AT89S51单片机特点AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4KBYTESISPINSYSTEMPROGRAMMABLE的可反复擦写1000次的FLASH只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFLASH存储单元,51系列单片机还具有省电耐用,可多次编程,性能稳定,物美价廉的优点,其次单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统,实现远程控制。另外AT89C51在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。AT89S51总结具有如下特点与MCS51单片机产品兼容4K字节在系统可编程FLASH存储器1000次擦写周期全静态工作0HZ33MHZ32个可编程I/O口线2个16位定时器/计数器6个中断源全双工UART串行通道低功耗空闲和掉电模式掉电后中断可唤醒看门狗定时器双数据指针灵活的ISP编程(字或字节模式)4055V电压工作范围212最小单片机系统下图是本设计中用到的单片机最小系统图22单片机最小系统系统采用12MHZ晶振,由于系统对晶振要求不高,可以根据情况适当改变晶振频率;另外系统的复位可上电复位,也可手动复位。22温度传感器温度的测量是从金属物质的热胀冷缩开始。水银温度计至今仍是各种温度测量的计量标准。可是它的缺点是只能近距离观测,而且水银有毒,玻璃管易碎。代替水银的有酒精温度计和金属簧片温度计,它们虽然没有毒性,但测量精度很低,只能作为一个概略指示。不过在居民住宅中使用已可满足要求。在工业生产和实验研究中为了配合远传仪表指示,出现了许多不同的温度检测方法,常用的有电阻式、热电偶式、PN结型、辐射型、光纤式及石英谐振型等。它们都是基于温度变化引起其物理参数如电阻值,热电势等的变化的原理。随着大规模集成电路工艺的提高,出现了多种集成的数字化温度传感器。本设计将要用到的是DS18B20温度传感器。221温度传感器简介测量温度的关键是温度传感器,温度传感器的发展主要经过了三个阶段(1)传统的分立式温度传感器(含敏感元件)(2)模拟集成温度传感器控制器(3)智能温度传感器。模拟集成传感器是采用硅半导体集成工艺而制成的,因此亦称硅传感器或单片集成温度传感器。模拟集成温度传感器是在20世纪80年代问世的,它是将温度传感器集成在一个芯片上,可完成温度测量及模拟信号输出功能的专用IC。模拟集成温度传感器的主要特点是功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590、AD592、TMP17、LM135等。模拟集成温度控制器主要包括温控开关和可编程温度控制器,典型产品有LM56、AD22105和MAX6509。某些增强型集成温度控制器例如TC652/653中还包含了刀转换器以及固化好的程序,这与智能温度传感器有某些相似之处。但它自成系统,工作时并不受微处理器的控制,这是二者的主要区别。智能温度传感器亦称数字温度传感器是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术ATE的结晶。目前,国际上已开发出多种智能温度传感器系列产品。智能温度传感器内部都包含温度传感器、A/D转换器、信号处理器、存储器或寄存器和接口电路。有的产品还带多路选择器、中央控制器CPU、随机存取存储器RAM和只读存储器ROM。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器MCU;并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。目前,国际上新型温度传感器正从模拟式向数字式、从集成化向智能化和网络化的方向飞速发展。数字式温度传感器DS18B20正是朝着高精度、多功能、总线标准化、高可性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。因此,智能温度传感器DS18B20作为温度测量装置己广泛应用于人民的日常生活和工农业生产中。采用温度芯片DS18B20测量温度,可以体现系统芯片化这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。所以集成芯片的使用将成为电路发展的一种趋势。本方案应用这一温度芯片,也是顺应这一趋势。根据其时序特点给出了DS1820和AT89S51单片机构成的温度测控系统的应用电路如下图23DS18B20典型应用DS18B20采集到的模拟信号通过内部转换为数字信号,通过一总线DQ与单片机直接通信,无需A/D转换,单片机从其寄存器中直接提取数据再做相应处理后,交由无线模块发射。222DS18B20性能特点与内部结构1、DS18B20的性能特点如下1独特的单线接口仅需要一个端口引脚进行通信;2多个DS18B20可以并联在惟一的三线上,实现多点组网功能;3无须外部器件;4可通过数据线供电,电压范围为3055V;5零待机功耗;6温度以3位数字显示;7用户可定义报警设置;8报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;9负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。2、DS18B20的外形及管脚排列如下图24图24DS18B20封装3、DS18B20内部结构主要由六分组成164位光刻ROM。开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20可以采用一线进行通信的原因。64位闪速ROM的结构如下8B检验CRC48B序列号8B工厂代码(10H)MSBLSBMSBLSBMSBLSB内部电源探测位和单线端口位产生器暂存器下限触发上限触发温度传感器存储器和控制逻辑图25DS18B20内部结构2非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值。3高速暂存存储,可以设置DS18B20温度转换的精度。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PRAM。高速暂存RAM的结构为8字节的存储器,结构如图25所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。它的内部存储器结构和字节定义如图22所示。低5位一直为,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式。BYE0温度测量值LSB(50H)BYTE1温度测量值MSB(50H)E2PROMBYTE2TH高温寄存器TH高温寄存器BYTE3TL低温寄存器TL低温寄存器BYTE4配位寄存器配位寄存器BYTE5预留(FFH)BYTE6预留(0CH)BYTE7预留(IOH)BYTE8循环冗余码校验(CRC)图26DS18B20内部存储器结构DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。TMR1R011111图27DS18B20字节定义由表21可见,分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以00625LSB形式表示。当符号位S0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表22是一部分温度值对应的二进制温度数据。表21DS18B20温度转换时间表R1R0分辨率/位温度最大转向时间/MS00993750110187510113751112750表22一部分温度对应值表温度/二进制表示十六进制表示125000001111101000007D0H8500000101010100000550H25062500000001100100000191H10125000000001010000100A2H0500000000000000100008H000000000000010000000H051111111111110000FFF8H101251111111101011110FF5EH2506251111111001101111FE6FH551111110010010000FC90H4CRC的产生在64BROM的最高有效字节中存储有循环冗余校验码(CRC)。主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。5)寄生电源寄生电源有二极管VD1、VD2、寄生电容C和电源检测电路组成,如图所示。电源检测电路用于判定供电方式。DS18B20有两种供电方式3055V的电源供电方式和寄生电源供电方式(直接从数据线获取电源)。若采用外部电源给器件供电,外部电源接VCC引脚通过VD2向器件供电,如图所示。寄生电源供电时,VCC端接地,器件从单线总线上获取电源,如图所示。在I/O线呈低电平时,改由电容C上的典雅继续向器件供电。该寄生电源的优点第一,检测远程温度时无需本地电源;第二、缺少正常电源时也能读ROM。外部电源供电图28外部电源供电寄生电源供电图29寄生电源供电23无线通信模块介绍随着我国国际地位和科研水平的不断提高,无需导线连接的无线数据系统对用户有着极大的吸引力。无线数据系统采用了能在局域范围内无线传输信息的数字网络,在不改动原有设施的前提下,将有效的数据信息准确、快速和安全地传送给与会者。因此,无线数据系统设备的设计得到了国内外相关领域厂商的广泛关注,未来,无线数据系统很有可能代替现有的有线数据系统,成为今后数据传输的主流。要了解无线数据传输,就得先了解无线传输技术。下面大概介绍一下几种常见的无线传输技术1U段无线传输技术超高频(UHFULTRAHIGHFREQUENCY)。UHF波段则是指频率为3003000MHZ的特高频无线电波。具有特点是1)稳定性高2)写距离远3)讯速率较高但U段技术由于频段多、使用范围广,容易串频和被听,保密性较差。2红外线技术红外通讯技术的特点1)它是目前在世界范围内被广泛使用的一种无线连接技术,被众多的硬件和软件平台所支持;2)通过数据电脉冲和红外光脉冲之间的相互转换实现无线的数据收发。3)主要是用来取代点对点的线缆连接;4)具有不能穿透障碍物的特性,有效保障了会议信息的安全与保密;5)安装方便快捷,成本低;当然我们还是需要注意一下红外线技术的一些局限性。在进行系统安装时,设备距离红外信号收发器的距离通常比较短,大都在10米内,且应远离其它红外光源(如日光灯,等离子屏等),以避免干扰。3WAP技术WAP是WIRELESSAPPLICATIONPROTOCOL(即无线应用协议)的缩写。无线应用协议也称为无线应用程序协议,目前应用广泛,是在数字移动电话、INTERNET及其他个人数字助理机PDA、计算机应用之间进行通信的开放性全球标准。在工作方面,对于日理万机、经常与时间竞赛的商务人士,WAP更能为用户提供市场上最新的第一手信息,完全配合用户的业务和工作需要。在生活方面,无论用户身在何处,都可以通过WAP上网,进行各项线上银行服务,在娱乐方面,WAP也为用户提供了崭新的消费模式,无论您走到那里,都可以随心所欲地与朋友甚至其他WAP用户,一起上网、玩游戏,一起分享WAP的乐趣。BOSCH的DCN无线讨论系统采用的就是该无线技术。通过倍受赞誉的无线介入点能够为方圆40米(164英尺)左右的空间提供稳固如一的强大连接。WAP既可部署在会议室中心以获得最佳的覆盖率,也可以移动到会议室中最适合的位置。尽管WAP有其强大的优势,但是也必须指出WAP在技术角度上的局限性,主要存在于两个方面1)WAP设备和WAP承载网络2)WAP设备受CPU、随机访问存储器(RAM)、只读存储器(ROM)和处理速度的限制。3)WAP承载网络是低功率的网络,一般在办公环境中的带宽多为11M,。WAP承载网络的固有特性是可靠性不高、稳定性不高和不可。424G频射技术24G无线技术,其频段处于2405GHZ2485GHZ之间。所以简称为24G无线技术。这个频段里是国际规定的免费频段,是不需要向国际相关组织缴纳任何费用的。这就为24G无线技术可发展性提供了必要的有利条件。而且24G无线技术不同于之前的27MHZ无线技术,它的工作方式是全双工模式传输,在抗干扰性能上要比27MHZ有着绝对的优势。这个优势决定了它的超强抗干扰性以及最大可达10米的传输距离。此外24G无线技术还拥有理论上2M的数据传输速率,比蓝牙的1M理论传输速率提高了一倍。这就为以后的应用层提高了可靠的保障。24G有着自己独到的优势所在。相比蓝牙它的产品制造成本更低,提供的数据传输速率更高。相比同样免费的27MHZ无线技术它的抗干扰性、最大传输距离以及功耗都远远超出。据上介绍,因此这里就运用了无线通信模块(NEWMSGRF905)。NEWMSGRF905芯片是挪威NORDIC公司推出的的单片射频收发器。芯片工作电压DC1936V,32引脚QFN封装,内置硬件CRC检错和点对多点通信地址控制,工作在433/868/915MHZ三个ISM频段,频段之间收发模式切换时间650US。其引脚说明如表1所示表23引脚说明针号功能说明缩写1电源33V36VDCVCC2TX_EN1为TX模式,TX_EN0为RX模式TX_EN3发送或接收数据使能TRX_CE4芯片上电PWR_UP5时钟输出(不用)UCLK6载波检测CD7地址匹配AM8接收或发送数据完成DR9SPI输出MISO10SPI输入MOSI11SPI时钟SCK12SPI使能CSN13接地GND14接地GND231NEWMSGRF905工作模式NEWMSGRF905由PWR、TRX_CE、TX_EN组成控制四种工作模式两种活动RX/TX模式和两种节电模式。(1)SHOCKBURST模式SHOCKBURSTTM收发模式下,使用片内的先放先出堆栈区,数据低速从微控制器送入,但高速发射,这样可以尽量节能,因此,使用低速的微控制器也能得到很高的射频数据发射速率,与射频协议相关的所有高速信号处理都在片内进行,这种做法有三大好处尽量节能;低的系统费用;数据在空中停留的时间短,抗干扰性高。在SHOCKBURSTTM收发模式下,RF905自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去。在发送数据时自动加上字头和CRC校验码,当发送完成后,DR引脚通知微处理器数据发送完毕。(2)节能模式RF905的节能模式包括关机模式和节能模式。在关机模式,RF905的工作电流最小,一般为25UA。进入关机模式后,RF905保持配置字中的内容,但不会接收或发送任何数据。空闲模式有利于减小工作电流,其从空闲模式到发送模式或接收模式的启动时间也比较短。在空闲模式下,RF905内部的部分晶体振荡器处于工作状态。232NEWMSGRF905寄存器配置NEWMSGRF905的所有配置都通过SPI接口进行。SPI接口由5个寄存器组成,一条SPI指令用来决定进行什么操作。SPI接口只有在掉电模式和STANDBY模式是激活的。1)、状态寄存器(STATUSREGISTER)寄存器包含数据就绪DR和地址匹配AM状态。2)、RF配置寄存器(RFCONFIGURATIONREGISTER)寄存器包含收发器的频率、输出功率等配置信息。3)、发送地址(TXADDRESS)寄存器包含目标器件地址,字节长度由配置寄存器设置。4)、发送有效数据(TXPAYLOAD)寄存器包含发送的有效SHOCKBURST数据包数据,字节长度由配置寄存器设置。5)、接收有效数据(TXPAYLOAD)寄存器包含接收到的有效SHOCKBURST数据包数据,字节长度由配置寄存器设置。在寄存器中的有效数据由数据准备就绪DR指示。射频寄存器的各位的长度是固定的。然而,在SHOCKBURSTTM收发过程中,TX_PAYLOAD、RX_PAYLOAD、TX_ADDRESS和RX_ADDRESS4个寄存器使用字节数由配置字决定。RF905进入关机模式或空闲模式时,寄存器中的内容保持不变。NEWMSGRF905与AT89S51单片机构成的温度测控系统的应用电路如下图210NEWMSGNRF905发射与接收电路它采用SPI接口与ATS89S51串行通信,ATS89S51可以用一般I/O口来SPI接口,只需添加代码模拟SPI时序即可。本设计就是采用普通I/O口模拟SPI接口的。24键盘模块基于本系统按键较少,采用矩阵式键盘,电路复杂且会加大编程难度。所以这里采用独立式按键电路,每个按键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。电路设计简单,且编程极其容易采用独立式按键电路。按键硬件设计本设计中,按键基本有两种功能,一是完成温度上限的设定,二是完成测量点的选择,二者工作不冲突,故为节省资源,可利用中断的不同让按键工作于两种模式下,即采用按键复用。这样并能实现按键功能实时性的要求。其硬件电路如下所示图211按键电路如图中所示,K0为按键模式1(上限温度设定)的中断触发信号K5为按键模式2(温度显示点选择)的中断触发信号,K1、K2、K3、K4为复用键,在模式1时分别为调节位选上调下调完成功能;在模式2时分别为显示1号、2号、3号测量点温度及模式结束键。这样便完成了按键预期功能。25显示报警模块本系统中要求显示数据简单且亮度较大,采用LCD显示价格较高,且在强光下亮度一般不足。而采用LED显示器在亮度、可视角度和刷新速率等方面,都更具优势。在强光下也可以照看不误,并且对温度适应性较强。由于单片机的I/O有限,为了更好的分配资源,显示模块要求用串行传输。MAX7219是MAXIM公司的7段共阴极LED数码管专用驱动器,每一片MAX7219最多可驱动8位LED,完全满足本设计的要求,且集BCD码译码器、多路扫描器、段驱动和位驱动电路于一体,内含88位双口静态SRAM,可保存8位LED数据,不仅使用方便,连线简单,而且还可串联,大大简化了硬件电路设计,减少软件的工作量。MAX7219直接与单片机相连如下图所示图212MAX7219显示驱动电路MAX7219具有典型的三线串行接口,命令与数据组成16位字串,从DOUT引脚输出,当每一个CLK脉冲上升沿到来时,串行数据从DIN引脚进入MAX7219内部移位寄存器,最先收到的是高位。在第16个CLK上升沿,LOAD引脚若变为高电平,则数据就会被锁存到内部寄存器中。下图为MAX7219的时序图。图213MAX7219时序图如图所示,DIN为串行数据输入端,当CLK为上升沿时,数据载入16位内部移位寄存器;CLK为串行时钟输入端,最大工作频率为10MHZ;LOAD为片选端,当LOAD为低电平时,该器件接收来自DIN的数据,接收完毕,LOAD返回高电平时,接收的数据将锁定;DIG0DIG7为吸收显示器共阴极电流的位驱动线,其最大值。可达500MA,在关闭状态时,输出V;SEGASEGG和DP为驱动显示器7段及小数点的输出电流,约40MA,可软件调整,关闭状态时,接入GND;DOUT为串行数据输出端,通常直接接入下一片MAX7219的DIN端。本设计中未用到DOUT端。通过V引脚和ISET引脚之间所接的外部电阻RSET控制MAX7219,RSET越大,段电流越小,但是其为9530。此时为典型段电流37MA。为了减少外界干扰,在MAX7219的V引脚与GND引脚之间接一个01F的涤纶电容和一只10F的钽电容。MAX7219所能直接驱动的是共阴极小电流LED显示器,它不能直接驱动共阳极LED显示器,否则会损坏器件。为了报警达到目的,直到工作人员采用相应措施改善温度条件,故采用了蜂鸣器置的方法报警。其硬件电路如下所示图214报警电路当温度超过上限时,置位P37使报警电路工作,可通过开关S0关掉报警,但当报警作用起到后,为了不让它在处理温度问题同时不继续报警,故加上一个单刀双掷开关和一个反指示灯,可人工先择报警状态,或为蜂鸣器或为指示灯工作。26其它模块电源模块本系统中除了NRF905使用33V电压外,其它均采用5V电压。主要是因为NRF905电源电压是33V36VDC,而在33V时性能最佳。考虑到系统的特点,采用220V交流供电,故需要以下电压变换图215220V交流变5V直流电源电路图2165V直流变33V直流第三章软件设计本章主要介绍单片机通过NRF905模块及DS18B20检测温度的软件实现方法,包括温度的采集,采样点的识别,数据的处理及发射与接收,以及温度的显示的控制。31主程序流程设计中要完成按键设定温度报警上限值(按键模式1),按键更改显示不同测量点的温度(按键模式2),但单片机不能一直处于查询状态,那样太浪费单片机资源,又不利于系统整体流程的复杂程度,故采用了中断方式。考虑到本系统的开关机次数不会太多,为了节省成本,未对单片机ROM区的资源进行扩展,而温度的上下限值保存于RAM区没定的变量中,系统开机或重启时要首先对温度上下限进行设定。主要包括发射端与接收端主程序如下311系统温度采集终端主程序实现发射端的主要任务就是温度采集,并通过无线模块发送出去,并对读取的温度值了相应处理,分离出小数、整数,加入了测量点代码。具体流程如下NRF905NRF905DS18B2030S图31温度采集端主程序流程图312系统主机终端主程序实现接收端主要完成把发送端发送的数据接收,并送到MAX7219显示出来,中途接收按键中断,设定温度报警上限值(按键模式1),更改显示不同测量点温度(按键模式2),模式的切换通过不同的外部中断来区别。MAX7219NRF905DRNRFNRF905SPEAKERMAX7219YYNN图32系统主机终端主程序流程图32温度的采集及数据的处理在本设计中采用DS18B20作为温度采集设备,它与单片机通过一总线通信,有严格的时序要求,为了方便接收端数据的处理,温度采集后并对其数据进行了处理,并加入测量点识别码;故其软件设计过程主要包括温度的读取与数的处理,具体流程如下所示321DS18B20初始化X0DQ1DS18B20DQDQ0480USDQ1XDQX1X0图33温度采集初始化流程图如上图所示DS18B20的初始化要完成以下工作(1)先设置好初始化成功标志,将数据线置高电平“1”。(2)延时(该时间要求的不是很严格,但是尽可能的短)(3)数据线拉到低电平“0”。(4)延时750微秒(该时间的时间范围可以从480到960微秒)产生复位脉冲。(5)数据线拉到高电平“1”,释放总线。(6)延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定初始化成功与否。)322数据的读取与处理由于设计中选用的的温度传感器芯片要写入命令字来控制相应的动作,且有严格的时序要求,当然需要有相应的子程序;由于本设计中要求对不同的温度点加以区别,并显示出来,故采用自行给编码比较容易实现,这里的编码必须由温度采集点给出,才能达到区别的目的,所以在发射击的温度值中直接加入相应编码,与温度值一同发出,并在接收端解码、显示出其编码信息,与其温度值相对应的出现在LED显示屏上。本文此处介绍DS18B20读一字节子程序,写一字节子程序,和读取温度值及数据处理子程序。以下是用于向DS18B20写写一字节子程序流程8I0DQ0DQ60US120USDQ1DATYNII1I8图34DS18B20写命令字的写字节子程序流程图如上图所示,DS18B20的写时序有严格的要求DS18B20的写操作。(1)数据线先置低电平“0”,写时序开始。(2)延时确定的时间为15微秒。(3)把要写入的数据按从低位到高位的顺序按位发送字节。(4)延时时间为60到120微秒,使写时间片结束。(5)将数据线拉到高电平释放总线。(6)重复上(1)到(6)的操作到所有的字节全部发送完。(7)最后将数据线拉高,返回。下是从DS18B20中读取一个字节子程序8I0,DATDQ0DATDQ1,DQ1DAT1DAT0NYYNII1I8图35DS18B20中读取一个字节子程序流程图如上图所示,读操作同样也有严格的时序要求DS18B20的读操作(1)将数据线拉低“0”,读时间片开始。(2)在1到15微秒内,数据线拉高,释放总线,读走数据。(3)按先低位后高位的顺序依次读入8位。(4)将数据线拉高“1”。(5)延时至60微秒使读时间片结束。(6)拉高返回。以下是读取温度值及数据处理子程序DS18B20DS18B200XC0X4DS18B20DS18B200XCXBETEMP1TEMP24TEMP24图36读取温度值及数据处理子程序流程图如上图所示,读取温度值及数据处理应包括以下过程(1)对DS18B20初始化。(2)跳过读序列号,并启动温度转换。(3)再对DS18B20初始化。(4)跳过读序列号,并写入读取温度命令字。(5)立刻读取温度值。(6)数据处量,包括分离出小数部分,整数部分,以及加入编码部分。33无线通信子程序本设计中采用了NEWMSGNRF905射频模块完成数据传输。单片机通过SPI接口与NEWMSGNRF905相接,并完成对其控制。故软件设计中主要包括NEWMSGNRF905初始化,寄存器的配置,发射与接收程序,其具体流程分别如下所示331NEWMSGNRF905初始化初始化的过程就是对无线模块进配置的过程,其中相关配置的参数见附录。以下是无线模块的初始化流程SPINRF90510CSN1SPI图37无线模块的初始化流程图由于无线模块是通过SPI与单片机进行通信的,所以要先打开SPI接口,在循环写入相关的十字节的配置信息,写入完成后,关闭SPI,以便其它操作。332寄存器的配置如上所述,无线模块是通过SPI与单片机进行通信的,所有配置字都是通过SPI接口送给RF905。必须进行SPI读写才能完成对无线模块的相关配置,以及数据的读取。下面要先介绍SPI的读写操作,再介绍相关配置字的选择。配置字都是通过SPI接口送给RF905。下面是SPI的写子程序流程图DATBUF,I8DATBUF1SPIMOSI0SPIMOSI1SPISCKDATI8YNYN图38SPI的写子程序流程图步骤一MOSI线准备好需要发送的数据位。步骤二SCK置高,器件读取MOSI线上的数据。步骤三SCK置低,准备发送数据的下一位。以上步骤循环执行8次,通过SPI向器件发送数据完成。单片机也是通过SPI接口从RF905中读取数据的,下面是SPI的读子程序流程图8I0DATBUFSPISCK1MISO1DATBUF1DATBUF0SPISCK0YYNNII1I8图39SPI的读子程序流程图步骤一MISO线准备好需要读取的数据位。步骤二SCK置高,主机读取MISO线上的数据。步骤三SCK置低,准备接收数据的下一位。以上步骤循环执行8次,通过SPI向器件发送数据完成333数据的发送与接收所有的SPI操作都是为了数据的接收与发送,这里介绍数据通过无线模块发送接收的软件实现。下面是通过无线模块接收两个字节的子程序流程图NRF905TRX_CE0SPICSN0SPIRXBUFICSN1SPIDR|AM0NRF905TRX_CE1YN图310无线模块接收两个字节的子程序流程图步骤一TRX_CE0必须将此引脚置低,使905进入STANDBY模式。步骤二发送RRP指令。步骤三循环调用SPIREAD函数,读取接收到的数据。步骤四等待DR和AM引脚复位为低电平。(中间夹有CSN电平变化)。数据包接收完成下面是通过无线模块发送两个字节的子程序流程图CSN0SPISPISPI4SPICSN11MSSPICSN0SPICSN1TRX_CE11MSTRX_CE0NRF905STANDBY图311无线模块发送两个字节的子程序流程图步骤一通过SPIWRITE函数发送WTP命令,准备写入TX有效数据。步骤二循环调用SPIWRITE向TXPAYLOAD寄存器写入TX有效数据。(中间夹有CSN电平变化)步骤三延时。步骤四通过SPIWRITE函数发送WTA命令,准备写入TX地址。步骤五循环调用SPIWRITE向TXADDRESS寄存器写入TX地址。步骤六TRX_CE1开始发送数据。延时,NRF905数据发送完成。34温度的显示模块同样节省了I/O接口资源,MAX7219和AT89S51采用串行方式传输数据,数据格式为16位,发送到DIN端的串行数据在每个CLK的上升沿移至内部16位移位寄存器中,然后在LOAD的上升沿,将数据锁存到数字或控制寄存器中。通过移位寄存器传送DIN端的数据,D8D11是寄存器地址D0D7为数据D12D15为无关位MAX7219接收的第1位为D15。MAX7219中共有14个数据和控制寄存器。MAX7219与AT89S51的编程,主要为初始化子程序。程序流程如下MAX7219CS1,CLK1,DAT1图312MAX7219初始化子程序流程图如上图所示,所有向MAX7219中写的数据都是DIN准备好,在CLK上升沿时送入相应寄存器。数据送到相应寄存器后,其输出就会有相应动作。35按键子程序另外通过中断来设定温度报警上限值(按键模式1);通过按键复用更改显示不同测量点的温度(按键模式2);其软件设计流程如下按键模式111KEY1KEY41KEY31KEY21NNNNYYYY图313按键设定温度报警上限值子程序流程图为了利用外部中断的不同来区别不同的模式,故采用了单独的触发按键,本模式由外部中断0(INT0)端触发,另外,为了调节的需要,设置了上调、下调改变调节位按键,另外为了系统使用的方便,专门增加的中断结束按键。按键模式2NRF9051NRF9052NRF9053KEY1KEY41KEY31KEY21NNNNYYYY图314温度检测点选择子程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论