基于mcs-51的单片机无线温度采集系统设计_第1页
基于mcs-51的单片机无线温度采集系统设计_第2页
基于mcs-51的单片机无线温度采集系统设计_第3页
基于mcs-51的单片机无线温度采集系统设计_第4页
基于mcs-51的单片机无线温度采集系统设计_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

2013届本科生毕业论文存档编号毕业论文设计论文(设计)题目基于单片机的无线温度测量系统ENGLISHTOPICTHEWIRELESSTEMPERATUREMEASUREMENTSYSTEMBASEDONSINGLECHIPMICROCOMPUTER系别物理与电子工程学院专业自动化班级学生指导教师2013年5月15日基于单片机的无线温度测量系统摘要温度检测在日常生活、工作和工程实践中具有重要的应用。随着生活水平的提高和科学技术的进步,无论是工业还是农业或者是日常生活中对温度检测的要求越来越高,要求能进行一定距离的传输。基于这点本设计主要基于MCS51单片机并由温度传感器、无线传输器、LED数码管和上位机组成的同步显示的温度采集系统解决了这个日常生活工作中的问题。工作场所的温度采集用到了温度采集芯片DS18B20来达到一定的准确度和精确度,最后采用NRF24L01模块对采集到的温度数据进行无线传输并通过由单片机控制的数码管显示当前温度,从而能打破传统温度操作受到距离限制的缺陷的同时便于温度的读取。在经过软硬件测试后,我们基本实现了用温度传感器采集温度,用NRF24L01进行一定距离传输后在接受端的上位机软件上显示出来的模型。传输距离50M,温度范围达到0至125摄氏度,精度1摄氏度。关键字MCS51;NRF24L01;LED显示;温度传感器;无线传输THEWIRELESSTEMPERATUREMEASUREMENTSYSTEMBASEDONSINGLECHIPMICROCOMPUTERABSTRACTTEMPERATUREDETECTIONINTHEDAILYLIFE,WORK,ANDHASIMPORTANTAPPLICATIONINENGINEERINGPRACTICEWITHTHEIMPROVEMENTOFLIVINGSTANDARDSANDTHEPROGRESSOFSCIENCEANDTECHNOLOGY,WHETHERAGRICULTURALORREQUIREMENTFORTEMPERATUREDETECTIONINDAILYLIFECANREQUESTFORADISTANCEOFTRANSMISSIONBASEDONTHATTHISDESIGNISMAINLYBASEDONMCS51SINGLECHIPMICROCOMPUTERANDTHETEMPERATURESENSOR,WIRELESSTRANSMITTER,LEDDIGITALTUBEANDUPPERUNITINTOSYNCHRONOUSDISPLAYOFTEMPERATUREACQUISITIONSYSTEMSOLVEDTHEPROBLEMSINDAILYLIFEWORKPLACESAMPLINGTOTEMPERATURECHIPDS18B20TEMPERATURETOACHIEVETHEPRECISIONANDACCURACY,THELASTOFTHECOLLECTEDTEMPERATUREDATABYMODULENRF24L01WIRELESSTRANSMISSIONANDTHROUGHDIGITALTUBEDISPLAYTHECURRENTTEMPERATURECONTROLLEDBYSINGLECHIPMICROCOMPUTER,WHICHCANBREAKTHETRADITIONALOPERATINGTEMPERATURE,ISLIMITEDBYDISTANCEOFDEFECTSANDEASYTOREADTEMPERATUREAFTERTHEHARDWAREANDSOFTWARETESTING,WEBASICALLYACHIEVEDWITHATEMPERATURESENSORTOCOLLECTTEMPERATURE,AFTERACERTAINDISTANCETRANSMISSIONWITHNRF24L01INACCEPTTHEPCSOFTWAREDISPLAYEDONTHEMODELTRANSMISSIONDISTANCE50M,THETEMPERATURERANGEOF0TO125DEGREESCELSIUS,THEPRECISIONOF1CKEYWORDSMCS51NRF24L01LEDDISPLAYTEMPERATURESENSORWIRELESSTRANSMISSION目录引言11系统结构及工作原理211系统结构212系统控制核心AT89C522121单片机的引脚介绍2122单片机内部资源介绍413系统工作原理简介5131数字温度传感器DS18B207132无线传输7133LED显示92下位机部分介绍1121DS18B20温度采集模块11211DS18B20简介11212DS18B20的测温方法1222LED数码显示模块1423NRF24L01无线发送模块173上位机部分介绍2031无线接收模块2032上位机上的数据显示214模块间的通信2341上位机与单片机的通信23411串口通信简介23412PC机侧VB程序2542NRF24L01与单片机的通信2543DS18B20与单片机的通信265系统调试2851DS18B20温度采集并显示2852NRF24L01发送与接收模块调试296总结31【参考文献】32附录33致谢46引言随着无线技术的日益发展,无线传输技术应用越来越被各行各业所接受,无线传输传感器的检测数据也不例外。而实际温度控制过程中既要求系统具有稳定性、实时性,又需要使系统功耗低、保证温度的均匀性和数据可实时共享,因此可设计一种低功耗的多点可方便上传至上位机的无线温度检测系统。无线温度测量系统可以由无线温度传感器节点、网关、计算机采集处理软件组成,集温度信号采集、大容量存储、无线射频发送、LED动态显示、控制与通信等功能于一体的新型系统。无线数字信号传输方式消除了长电缆传输带来的噪声干扰,整个测量系统具有极高的测量精度和抗干扰能力。无线传感器节点采用无线网状网设备,可以组成庞大的网络结构,支持多达上千个测点同时进行大型结构试验。无线温度测量设备被广泛应用于运动物体、不方便假设线路场所以及危险,有毒,有害等场所的温度测量。本系统采用先进的发射/接收和温度采集设备,便于安装,工作稳定性高,可以远距离测量温度,易于集成化、智能化,在工农业测控系统中有着广泛的应用前景。在生产过程中,可以实现对人类难以或无法到达的工作现场的监测,应用这一系统可对生产现场的工艺参数进行采集、监视和记录,为提高产品质量、降低成本提供了信息和手段。测温节点工作在各个测温地点,进行温度数据采集和无线发送。基站与多个节点进行无线通信,并通过LED显示将数据显示出来,同时可以通过无线传输技术将数据发送给PC。在本系统中,数字化无线温度传感器将体现数字化、信息化和智能化的特点,包括温度测量部分、温度数据处理部分和温度值显示三部分构成。温度测量用到了一线式数字温度传感器DS18B20,该器件体积小,集成度高,自带A/D转换功能,更重要的是功耗低。处理器选用最常用的MCS51单片机。温度数据的传输将会采用低功耗发射与接收模块NRF24L01,它在测量点接收单片机的传感器数据并把数据以无线方式传输出去,接收部分通过接收模块(同样是NRF24L01)接收数据,并进行数字滤波,然后再将接收到的数据以异步串行通信方式上传给上位机。1系统结构及工作原理11系统结构本设计采用AT89C52作为主控CPU,外加DS18B20温度采集模块、NRF24L0L无线收发模块和数码显示模块组成整个系统,如下图1所示。图1系统框架图本系统上位机与无线收发模块通过RS232连接,主要完成单片机与PC机的数据传输。下位机即MCS51与无线收发模块采用串行通信,LED为一个四合一共阴数码管,温度传感器采用DS18B20。主要完成温度采集,同步显示,同步上传至上位机。无线收发模块完成上位机和下位机数据的交换,分别由两块独立的单片机控制其收发。12系统控制核心AT89C52AT89C52是一个低电压,是一款高性能的有8位的片内的8KBYTES可反复擦写的只读与256BYTES的随机存取数据存储器,兼容标准MCS51,片内置有通用的8位和FLASH,因此这种AT89C52单片机在电子行业中有广泛的应用。正是基于此,本设计才采用AT89C52作为核心控制器件。下面简单介绍该芯片。121单片机的引脚介绍AT89C52的引脚图如图2所示。图2AT89C52的管脚排列管脚说明。电源接口VCC供电电压;GND接地。I/O接口P0口,P0口为一个8位双向I/O口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻,常用的上拉电阻为1K。P1口,P1口是一个内部提供上拉电阻的8位双向I/O口。P2口,P2口为一个内部存在上拉电阻的8位双向I/O口,且常常结合P0口控制外围数字化设备。P3口,P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。P3口也可作为AT89C51的一些特殊功能口,如下表11所示。表11P3口引脚功能表口管脚备选功能P30RXD(串行数据输入口)P31TXD(串行数据输出口)P32/INT0(外部中断口0)P33/INT1(外部中断口1)P34T0(计时器0外部输入端)P35T1(计时器1外部输入端)P36/WR(外部数据存储器写选通端)P37/RD(外部数据存储器读选通端)独立功能接口RST,复位输入。当需要复位时,要控制并保持RST脚上两个机器周期的高电平。ALE/PROG,当访问外部存储器时,地址锁控制单片机I/O口输出的低位字节信号,微处理器AT89C52可以控制让外部执行状态ALE禁止。/PSEN,外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。在访问外部数据存储器时,这两次有效的/PSEN信号将不会出现。/EA/VPP,在AT89C52访问外部程序存储器期间,不管是否有内部程序存储器,/EA都要保持低电平。XTAL1,反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2,来自反向振荡器的输出。122单片机内部资源介绍单片机内部有定时器。常说的计数器其实和这里的定时器是同一个物理的电子元件,只不过区别在于计数器记录的是单片机外部发生的事情接受的是外部脉冲,而定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件,MCS51单片机的晶振经过分频之后能提供给单片机相应的稳定脉冲,而且晶振的频率非常准确,这样就能保证单片机的计数脉冲之间的时间间隔同样也非常准确。MCS51单片机结构图如图3示。图3单片机结构图作为定时器使用时,定时器计数常将89C52单片机片内振荡器输出的脉冲经过12分频后的脉冲个数,即每个机器周期使定时器T0/T1的寄存器值自动累加1,直到溢出,溢出后继续从0开始计数,循环,所以定时器的分辨率是时钟振荡频率的1/12。作为计数器使用时,单片机通过对引脚T0P34或T1P35外部脉冲信号的计数,在输入的外部脉冲信号发生从1到0的跳变时,计数器的值就自动加1,这样计数器的最高频率一般可以是时钟振荡频率的1/24。89C52单片机设计了两个8位的特殊功能寄存器来控制定时器/计数器的工作状态,即TMOD和TCON,它俩都在特殊功能寄存器区。13系统工作原理简介温度传感器DS18B20主要完成温度的测量,DS18B20根据环境温度情况,依据其内部的工作原理,将周围的温度模拟量转换数字量通过1WIRE总线输出给单片机微控制器。微控制器主要控制各个外围模块,并与其通信。本文主要利用MCS51单片机、DS18B20数字温度传感器、NRF24L01单片无线收发器和四合一数码管实现多点无线温度测量系统,解决上述问题。其温度检测原理为单片机利用温度传感器检测温度,在数码管上进行温度显示并实时上传至上位PC机的数据处理软件。因此该系统能实现对温度实时并多点温度检测,是可以实现远程控制的无线温度检测系统。在单片机控制的系统中还存在更多的电路,对系统的正常运行起着关键的作用。下面就系统中的基于单片机的外围电路功能做如下讲述。(1)、复位电路。就是利用它把电路恢复到起始状态,它的作用如下。复位电路是保证本系统中硬件电路稳定可靠工作必不可少的一部分,复位电路的第一功能是上电复位。单片机系统电路的硬件要求有复位电路,是因为微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过475V低于525V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。(2)、电源电路。本系统是基于单片机控制的温度采集系统,单片机的电源要求是5V标准直流电源供电。另外,NRF24L01是单独采用33V直流电源供电,这里的电源需要通过电源转换,即5V转33V,本系统采用AMS111733V稳压芯片实现这一转换。AMS1117贴片式稳压芯片如图4。图4ASM1117稳压芯片131数字温度传感器DS18B20DS18B20是美国DALLAS公司生产的单总线数字温度传感器,从DS18B20读出或写人信息仅需要一根口线,这是它的最大特点和优势。DS18B20具有独特的单线接口方式,测量温度范围为55C125C,在1085C范围内精度为05C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,电源上支持3V55V的电压范围,使系统设计更灵活、方便。DS18B20虽然只与微处理器链接一条口线,但仍然可实现与微处理器的双向通讯。目前大多数传感器系统都采用放大传输数模转换这种处理模式。这种模式一般要占用数条数据/控制线,限制了单片机功能的扩展。而一线总线技术则很好地解决了这个问题。这里需要注意,挂在单总线上的器件称为单总线器件,为了区分总线上的不同器件,生产单总线器件时,厂家都刻录了一个64位的二进制ROM代码作为芯片的唯一序列号,但是由于本系统不考虑多点采集,所以本设计中的DS18B20不涉及编程系列号问题。DS18B20的引脚如图5所示。图5DS18B20电路图132无线传输该系统的无线传输模块采用的是挪威VLSI公司推出的单片射频收发一体器件NRF24L01芯片,而本文采购的是基于NRF24L01开发的由频率合成器、接收解调器、功率、晶体振荡器和调制器组成的无线收发模块,也因此有了相应的固定的丰富的软件资料,硬件上也不需外加,该模块会自动处理字头和CRC循环冗余码校验。该模块使用SPI接口与微控制器通信,配置非常方便。此外,其突出特点是功耗非常低,输出发射模式时电流只有11MA,接收模式时的电流也只为125MA,内建空闲模式与关机模式,便于节能。通过NRF24L01模块接收发送端发出的温度信息,当数据接收完成后产生接收完成中断信号,单片机确认有中断信息后读取NRF24L01接收缓冲区中的数据,根据数据包协议将接收到的信息通过数码管动态扫描方式显示当前温度。NRF24L01无线收发模块如图6。图6无线收发模块电路图无线收发模块的各引脚直接和单片机相连,在单片机的控制下,通过SPI接口完成温度数据的读入读出,发送模块和接收模块的NRF24L01完成数据的无线传输。在无线模块接收到数据时,将CD、AM信号置高电平,在数据接收完后,将DR端置为高电平,再将接收到的数据通过SPI接口MISO和MOSI口传输到单片机上。NRF24L01PPALNA无线模块工作于免许可证的24GISM频段,可以点对点应用,也可组成星形网络。NRF24L01PPALNA无线模块的核心为挪威NORDIC公司最新的高性能无线数传芯片NRF24L01,经过国内的专业设计和改造,增加大功率PA和LNA芯片,射频开关,带通滤波器等组成了专业的全双向的射频功放,即现在的NRF24L01模块,使得有效通信距离得到极大拓展。在射频部分,模块上做了大量的优化匹配调试,使得发射效率达到最高,谐波最小,使得NRF24L01PPALNA无线模块对外界设备的射频干扰达到最低,同时也不容易受到其他设备的干扰,极大提高工作的稳定性。NRF24L01PPALNA无线模块集成度极高,尺寸也只有4554MM1646MM,方便嵌入于任何空间紧张的产品中,而在本系统中通过SPI口控制NRF24L01PPALNA无线模块即可完成超远距离无线数据传送系统的设计。133LED显示数码管显示是一个系统工程中必不可少的人机交互环节,因此关于数码管的驱动也就是系统工程中的一个重要的环节。本设计采用了3位数码管动态扫描显示。LED数码管动态显示就是一位一位地轮流点亮各位数码管,对于每一位LED数码管来说,每隔一段时间点亮一次,利用人眼的“视觉暂留“效应,采用循环扫描的方式,分时轮流选通各数码管的公共端,使数码管轮流导通显示。视觉暂留效应是指景物发出或反射的光,在人的视网膜上所形成的物像会在人的视觉中保留一段时间。详细来说,即使景物从视野中消失,人眼所感受到的光像也不会马上消逝,因为有实验证明人眼的视觉暂留时间约为00502S,这是因为在外界光源突然消失时,人眼的亮度感觉是按指数规律逐渐减少的。这样当一个光源反复通断,在通断频率较低时,人眼可以发现亮度的变化;而通断频率增高时,眼睛就逐渐不能发现相应的亮度变化了。断通在高频率时给人的印象就是一组稳定的显示数据,会被认为各数码管是同时发光的。若数码管的位数不大于8位时,只需两个8位IO口。它将所有数码管的8个段线相应地并接在一起,并接到AT89C52的P0口,由P0口控制字段输出。而各位数码管的共阴极由AT89C51的P2口控制,实现8位数码管的位输出控制。其中P2仅运用了3个端口,用以直接驱动位选。2下位机部分介绍DS18B20是整个系统的检测元件,由于它采用一线总线技术,使采样后的数据与单片机的传输变得简单。LED模块是为了让在检测点可以随时看到当前检测温度。NRF24L01无线传输模块是为了让检测的数据实时发送给远处的PC上位机系统,实现远程监控等。下位机中的单片机是控制以上各模块的核心,并实现各模块的连接转换。21DS18B20温度采集模块211DS18B20简介前面已经介绍,该模块采用美国DALLAS公司推出的数字测温芯片DS18B20,它体积小,有多种封装,具有独特的单线接口。测量范围从55摄氏度到125摄氏度,拥有可以选择的9到12位温度数据分辨率,可以工作在寄生电源模式,硬件配置十分简捷方便。在本系统中温度传感器输出脚I/O直接与单片机的P16相连,采用5V电源供电。DS18B20芯片封装如图7所示。图7DS18B20芯片封装引脚定义1DQ为单数据总线,是数字信号输入/输出端;2GND为电源地;3VDD为外接供电电源输入端(在寄生电源接线方式时接地)。对于DS18B20简洁的端口引脚,只需要将它的数据线与单片机的任意一个I/O口连接并保证其正常供电,在正确合时序的程序驱动下,就可以实现温度的采集,并作出相应的其他联动控制。所以,本设计中DS18B20与单片机接口电路图8。图8DS18B20与单片机硬件图212DS18B20的测温方法DS18B20中的温度传感器刚好能自动完成对外界环境温度的测量,本系统是以12位转化为例介绍它的测温方法。DS18B20用具有16位符号扩展的二进制数据补码读数形式提供,以00625C/LSB形式表达,经DS18B20转化后得到的12位数据存储在DS18B20的两个8比特的RAM中,这样得到的数据中二进制的前面5位就是符号位,这时如果测得的温度大于0,这5位二进制数据全为0,只要将测到的数值乘于00625即可得到实际温度;再比如,如果测定的外界温度小于0,这5位二进制数据将全为1,测到的数值需要取反加1再乘于00625即可得到实际温度。该传感器采集温度流程图图9。图9DS18B20温度采集流程图该模块中读取DS18B20内部数据的程序如下。UINTGET_TEMP/读取寄存器中存储的温度数据UCHARA,BDSRESET/DS18B20复位,调用初始化子函数DELAY1TEMPWRITEBYTE0XCCTEMPWRITEBYTE0XBEATEMPREAD/读低8位BTEMPREAD/读高8位TEMPBTEMP0JIT/100/除以100得到商,为温度的十位DISPLAY2,I/在第一个数码管上显示IT100/10/100取余再除以10得到商,位温度的个位DISPLAY1,I10/在第2个数码管上显示,有小数点IT10010/100取余再用10取余,为温度的小数位DISPLAY0,I/在第3个数码管上显示23NRF24L01无线发送模块正如前面所介绍,该模块是挪威公司生产的NRF24L01在外围电路优化配置组成的。在下位机部分时,其被置为发送模式。通过SPI总线写入数据,数据传输高效可靠,并且具有自动应答和自动再发射功能。芯片采用了增强式SHOCKBURST技术,就是说输出功率和通信频道可通过设置软件程序进任意行配置。模块中NRF24L01和89C52P1口连接(如图12),单片机接110592MHZ的晶振工作,低速的单片机就能够很好地控制高速收发的射频芯片,硬件结构如图12所示。图12无线收发模块硬件原理图从设计中单片机控制的角度来看,我们只需要关注图11的六个控制和数据信号。CSN,芯片的片选线,CSN为低电平芯片工作。SCK,芯片控制的时钟线(SPI时钟)。MISO,芯片控制数据线(MASTERINPUTSLAVEOUTPUT。MOSI,芯片控制数据线(MASTEROUTPUTSLAVEINPUT。IRQ,中断信号。无线通信过程中MCU主要是通过IRQ与NRF24L01进行通信。CE,芯片的模式控制线。在CSN为低的情况下,CE协同NRF24L01的CONFIG寄存器共同决定NRF24L01的状态。该模块发送模式的工作流程如13所示。图13发送模式流程图相关发送模块子程序如下。VOIDINIT_NRF24L01VOIDINERDELAY_US100CE0CSN1SCK0SPI_WRITE_BUFWRITE_REGTX_ADDR,TX_ADDRESS,TX_ADR_WIDTHSPI_WRITE_BUFWRITE_REGRX_ADDR_P1,RX_ADDRESS,RX_ADR_WIDTHSPI_RW_REGWRITE_REGEN_AA,0X03SPI_RW_REGWRITE_REGEN_RXADDR,0X03SPI_RW_REGWRITE_REGRF_CH,0SPI_RW_REGWRITE_REGRX_PW_P1,RX_PLOAD_WIDTHSPI_RW_REGWRITE_REGRF_SETUP,0X073上位机部分介绍31无线接收模块上位机上的接收模块依然是采用硬件配置相同的NRF24L01。硬件电路与下位机部分的无线发送模块相同,以保证有相同的配置参数,便于理解也便于编程。NRF24L01初始化后的流程图图14如下。图14NRF24L01接收流程图无线接收模块相关程序如下。/函数VOIDSETRX_MODEVOID/功能数据接收配置VOIDSETRX_MODEVOIDCE0SPI_RW_REGWRITE_REGCONFIG,0X0F/IRQ收发完成中断响应,16位CRCCE1INERDELAY_US13032上位机上的数据显示PC机显示外围设备的方法很多,常用的软件有WINDOWS自带的VB、组态软件、MATLAB等。本设计上位机软件采用VBNET编写。用VBNET开发串行通信程序普遍采用的方法有如下两种一种是利用WINDOWS的API函数;另一种是采用VBNET的通讯控件SERIALPORT自行组建上位机显示终端。由于利用API函数编写串行通信程序较为复杂,需要调用许多繁琐的API函数,而VBNET的相关通讯控件提供了标准的事件处理函数、事件和方法,用户不必了解通信过程中的底层操作和API函数,从而可以比较容易、高效地实现串口通信3。下面是上位机显示温度数据的流程图如图15。图15上位机显示流程图4模块间的通信通信,是指主控单元与其他能实现控制功能的单元的数据交换和控制。在本系统中,涉及很多的通信,特别是还涉及到不同的通信方式。MCU与数码管、DS18B20、NRF24L01模块和上位机都有通信的实现,都涉及数据的读取或写入。下面就这些通信分部分做阐述。41上位机与单片机的通信411串口通信简介本系统中采用VB实现数据的在PC机端显示。由于VB下的串行端口通信控件屏蔽了通信过程中的底层操作,程序员只需要控制MSCOMM控件的属性和事件,结合VB提供的其他控件就可完成对RS232串口的初始化和下位机上温度数据的发送接收并最终显示。PC机和单片机的接口电平转换芯片采用MAX232C,接口电路图如图15所示。单片机侧的TXD(发送端)接PC机的RXD(接收端),单片机侧的RXD(接收端)接PC机的TXD(发送端),两者的GND(地)直接相连。电缆线为9针的RS232电缆。图15中标明了PC机侧发送与接收脚的针号,不能接错。单片机控制并检测温度,实时地通过RS232串口将温度数据传送给PC机。PC机侧在通过响应ONCOMM事件后就能在事件的处理程序中将数据接收、处理再送文本框显示,同时保存在设定的文件中,甚至上传至网络实现网络共享。用MSCOMM控件在上位机上进行串口通信的一般步骤如下。首先设置通信对象、端口以及配置格式比如数据位长度、校验方式、起始位个数、停止位个数等和其它相关属性。再给两端设定通信协议。然后打开通信端口,进行数据的写和读入。最后要关闭通信端口,在完成串行通信操作后,将串行通信端口的资源归还给操作系统。在本设计中采用一块MAX3221芯片把从89C52传过来的信号进行电平转换后输出到PC,把从PC发过来的信号发送给USART。USARTUNIVERSALSYNCHRONOUS/ASYNCHRONOUSRECEIVER/TRANSMITTER是指同步/异步串行接收/发送器,USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。设计中的RS232接口电路如图16所示。图16RS232电平转换电路其对应的引脚图如下表41。表419针串行口插针对应关系表DB9管脚号插针功能说明标记1接收线信号检出DCD2接收数据RD3发送数据TD4数据终端就绪DTR5信号地SG6数据传输设备就绪DSR7请求发送RTS8允许发送CTS9振铃指示RI由图15以及表41可以知道,接收使能EN接地,时钟有效;掉电模式控制脚FORCEOFF始终拉高,即MAX3221始终处在工作状态。AT89C52的TXD脚与MAX3221的11脚(DIN)相连,AT89C52的RXD脚与MAX3221的9脚(ROUT)相连;输入DIN的信号转换为RS232电平后,经MAX3221的13脚(DOUT)输出到J5(DB9)的2脚(DB9的2脚为串口的RXD脚),接口J5(DB9)的3脚(串口的TXD脚)与MAX3221的8脚(RIN)相连,这样的连接方式已将AT89C52的输出脚TXD(本设计中AT89C52的P36管脚)和输入脚RXD(本设计中AT89C52的P37管脚)连接对调,可以直接通过延长线与PC机相连。412PC机侧VB程序首先,在FORM中添加MSCOMM1通信控件,并将其属性通过PC端程序作出如下设定。WITHMSCOMM1COMMPORT1“设置串行端口号为1“SETTING“2400,N,8,1“INPUTLEN2“一次读取2字节“INPUTMODECOMINPUTMODEBINARY“二进制数据格式“RTHRESHOLD2“接收缓冲区达到2字节时产生ONCOMM事件“其他为默认值即可。其次,在FORM窗口添加两个定时器TIMER1和TIMER2,TIMER1为每次采样时间间隔计时器,初值INTERVAL30000(1毫秒/INTERVAL,所以为30秒)。TIMER2是为保证串口出错或串口无信号时自动跳出的,时间为1分钟。在构建好自己的温度显示终端时就可以等待下位机与PC的通信,并最终实现温度的在线检测。42NRF24L01与单片机的通信如前面所述,NRF24L01模块是采用SPI总线技术,实现数据在模块和AT89C52间的传输,也是微处理器控制该模块的关键。下面先介绍这种通信方式。SPI接口的英文名全称是“SERIALPERIPHERALINTERFACE“,意思是串行外围接口,是摩托罗拉公司首先在自己的MC68HCXX系列微型处理器上开始定义的。当前的SPI接口广泛地应用在EEPROM、FLASH等存储器件还有AD上,甚至和数字信号解码器也会涉及使用这样的通信方式。SPI接口能够在CPU和外围低速器件之间实时地实现同步串行数据传输,在主器件(微处理器、上位机等)的移位脉冲作用下,数据按位传输,高位在前,低位在后,通信方式为全双工,在一些检测中比通信还要快,速度可达到几兆每秒。无线模块引脚图如图17。图17NRF24L01引脚图下面是SPI接口各主要端脚的简介。(1)MOSI主器件2MISO主器件数据输入,从器件(3)SCLK由主器件产生。(4)NSS从器件使能信号,由主器件控制,有的IC会标注为CSCHIPSELECT。在进行的通信过程中,SPI接口不需要做寻址操作,因为上面已经介绍全双工通信,就会表现地简单高效。在多个从器件,即多个无线发送点向一个上位机传输数据的系统中,每个从器件需要独立的使能信号,硬件上比单个从系统要复杂一些。SPI接口在内部硬件实际上有两个功能简单的,能够传输的二进制数据为8位,在主器件发出的选中从器件使能信号和移位脉冲同时作用下,按位传输,高位在前,低位在后,而且会在SCLK的上升沿上数据改变,然后又由一位数据被同时存入中。43DS18B20与单片机的通信DS18B20以单总线协议工作,单总线通信原理会在接下来的部分详细介绍。但是通常测温分机首先要发送复位脉冲命令,使信号线上的DS18B20芯片都被复位,接着发送对ROM的操作命令,使DS18B20被激活并能够进入接收内存访问命令。访问命令会完成温度转换和温度读取等工作。该系统中会以ROM命令和存储器命令两种形式完成对DS18B20操作。ROM操作命令均为8位,这些8位的命令代码已经被广泛应用,它们分别为读ROM代码0X33H、匹配ROM代码0X55H、跳过ROM代码0XCCH、搜索ROM代码0XFOH和告警搜索代码0XECH命令;DS18B20内部的存储器操作命令为写暂存存储器代码0X4EH、读暂存存储器代码0XBEH、复制暂存存储器代码0X48H、温度变换代码0X44H、重新调出EERAM代码0XB8H以及读电源供电方式代码0XB4H命令。其对时序及电特性参数要求较高,必须严格按照它的时序要求去操作。DS18B20的数据读写由单片机来完成,包括初始化、读数据和写数据。系统软件已经广泛采用了模块化程序设计,主从式结构的通信方式。DS18B20初始化完成后处于监听状态,温度采集模块负责数据的采集工作。为保证DS18B20的严格I/O时序,需要作较精确的延时。在DS18B20的操作中,短时间延时是指10US以下的延时,在C语言下采用若干个_NOP_指令即可。因C51编译器能够为DS18B20提供若干内部调用函数,其编译结果就是在对应位置实时嵌入一个NOP汇编指令,所以短时间延时就可以利用_NOP_函数实现。如果是较长时间延时的话,即指10US以上的延时,在DS18B20操作中,用到的较长时间延时常有15US、90US、270US、540US等。因这些延时均为15US的整数倍,因此也可编写一个DELAYL5N函数,并使它成为随时能够调用的延时子函数,该函数就可以实现约15USN的延时。根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤。每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。5系统调试系统调试,是指通过软件与硬件的结合最终正确实现系统的功能,或者用其他方法验证设计等的正确。系统调试一般为如下步骤。首先,用程序编程软件验证系统中子程序的正确可行;其次,去验证整体程序的可行性;再讲子程序与硬件电路结合验证系统某个模块的可行性与正确性;最后,将所有模块结合实现系统所有的功能。下面是对本系统的部分调试过程及结果。51DS18B20温度采集并显示DS18B20采集的数据能否被下位单片机识别并在LED上显示是本次设计的第一步,这一步不仅要求DS18B20能采集温度并上传至单片机,还要去单片机能通过控制LED数码管显示当前温度。按硬件电路图,DS18B20主要C程序如下VOIDDISPLAYUCHARNUM,UCHARDAT/数据显示程序UCHARIP00SWITCHNUMCASE0I0X0EP2IBREAKCASE1I0X0DP2IBREAKCASE2I0X0BP2IBREAKDEFAULTBREAKP0TABLEDATP2IVOIDDIS_TEMPUINTT/显示温度数值函数T传递的是整型的温度UCHARI,JFORJ10J0JIT/100/除以100得到商,为温度的十位DISPLAY2,I/在第一个数码管上显示DELAY4IT100/10/100取余再除以10得到商,位温度的个位DISPLAY1,I10/在第2个数码管上显示,有小数点DELAY4IT10010/100取余再用10取余,为温度的小数位DISPLAY0,I/在第3个数码管上显示调试结果如下图18。图18LED调试结果图52NRF24L01发送与接收模块调试数据发送是本设计下位机部分的最后一个环节,要能让单片机将DS18B20采集的数据通过NRF24L01发送出去并在PC机端的单片机控制的NRF24L01接收。将相关发送和接收模块程序写入单片机后,通过主程序中的调用,实现温度的无线传输,发送端和接收端除了NRF24L01的软件设置工作模式和发送端有DS18B20接收端没有以外,其他部分均相同。相关调试后结果如下图19。图19无线发送接收调试结果图6总结本论文题目是无线温度采集系统,本系统总共涉及一下相关知识点。单片机引脚和单片机中断控制,C语言,通信技术(一线总线,SPI总线,RS232总线),CAD制图,模拟电路基础等等,在整个过程中遇到了困难,也获得了更多的知识。由于起初看到这个课题,能很清楚地知道需要用单片机、无线收发模块、串口通信,所以就低估了整个系统的相关细节,而这个细节才是决定这个课题的关键。我在别人那里找到了相关DS18B20的软硬件资料,然后自己组合了DS18B20模块的子程序,自己设计了LED显示的子程序,就直接用主程序调用了这些子程序,结果总是不很理想,如数码管的显示闪烁很厉害、数码管只是瞬间显示,数码管显示乱码等,但是很庆幸的是这些问题却表明我的硬件没有问题,我随后都通过资料和同学老师的帮助解决了软件上的问题。但是在后来增加NRF24L01模块后,问题就更多了,接收端没有反应、有反应却没有温度数据、有数据却是一个固定不变的初值等,同样这些都通过修改软件得到了解决。在解决这些问题的过程中,可以深化也学习了更多专业课知识,C程序流程图的重要性,学会子程序调用的方法,了解SPI总线通信的原理等。本设计的温度采集可以应用在不适合人类工作却又对温度有要求的场所,显示当前温度并借助上位机记录温度数据。再给这个系统增加更多其他模块,如时钟、报警等就能实现更多的功能,实现更广泛的应用。对这样的系统进行微型化、集成化,并最终实现商业化,将会促进这个系统的完美升级,激发相关配套系统的研发。本文主要阐述了无线温度采集设计方案。介绍了一种利用下位机通过无线通信的方式上传温度数据到下位机的方案。该方案简单易行,数据传输可靠性高。【参考文献】1衡军山,赵明洁基于VB60的串行通信工控软件设计及实例R承德民族职业技术学院,200522李武华,汪飞,吴建律无线收发模块在智能家庭网络中的应用今日电子,6,2002783范逸之、陈立元编著VISUALBASIC与RS232串行通信控制中国青年出版社,20024刘威基于DS18B20和NRF905的多点无线测温系统D保存地吉林大学电子科学与工程学院,20085刘志强,罗庆生一种智能化温度检测系统的设计J中国检测技术,2003,29395986薛小玲,吴寿强数字式温度检测系统的设计J闽江学院学报2003,2421201257徐爱钧,彭爱华KEILV51V70单片机高级语言编程与UVISION2应用实践电子工业出版社J,200458638周亚楠,刘存根,贾吉庆基于DS620智能温度控制系统设计传感器世界,2007019金懿,刘彭义基于单总线数字温度传感器的多点温度测量系统设计J暨南大学学报(自然科学报),2004,251515610朱卫华,黄智伟基于无线数字温度传感器的多点温度测量系统设计J工业控制计算机,2003,166575811张培仁基于C语言编程MCS51单片机原理与应用M北京清华大学出版社,2003112胡汉才单片机原理及接口技术(第二版)M北京清华大学出版社,200313袁强,陆启生,李文煜基于单片机89C51和89C2051点阵LED显示系统J中国科技信息,20061818118314VIZIMULLER,PRFDESIGNGUIDESYSTEMS,CIRCUITS,ANDEQUATIONSARTECHHOUSE,BOSTON,MA,199515AT89C51DATASHEEPPHILIPSSEMICONDUCTORS1999DEC16VYUTEPLOV,AVANISIMOVTHERMOSTATTINGSYSTEMUSINGASINGLECHIPMICROCOMPUTERANDTHERMOELECTRICMODULESBASEDONTHEPELTIEREFFECTJ,2002附录1单片机复位电路2单片机复位电路3数码管显示电路4串口通信MAX232电路524L01与单片机的接口电路6DS18B20与单片机的接口电路75V转33V稳压电路8系统效果图下位机和上位机部分程序INCLUDEINCLUDEINCLUDEDEFINEUINTUNSIGNEDINTDEFINEUCHARUNSIGNEDCHAR/NRF24L01DEFINETX_ADR_WIDTH5/5UINTSTXADDRESSWIDTHDEFINERX_ADR_WIDTH5/5UINTSRXADDRESSWIDTHDEFINETX_PLOAD_WIDTH20/20UINTSTXPAYLOADDEFINERX_PLOAD_WIDTH20/20UINTSTXPAYLOADUCHARCONSTTX_ADDRESSTX_ADR_WIDTH0X35,0X43,0X10,0X10,0X03UCHARCONSTRX_ADDRESSRX_ADR_WIDTH0X35,0X43,0X10,0X10,0X03DEFINEREAD_REG0X00/读寄存器指令DEFINEWRITE_REG0X20/写寄存器指令DEFINERD_RX_PLOAD0X61/读取接收数据指令DEFINEWR_TX_PLOAD0XA0/写待发数据指令DEFINEFLUSH_TX0XE1/冲洗发送FIFO指令DEFINEFLUSH_RX0XE2/冲洗接收FIFO指令DEFINEREUSE_TX_PL0XE3/定义重复装载数据指令DEFINENOP0XFF/保留/SPINRF24L01寄存器地址DEFINECONFIG0X00DEFINEEN_AA0X01DEFINEEN_RXADDR0X02DEFINESETUP_AW0X03DEFINESETUP_RETR0X04DEFINERF_CH0X05DEFINERF_SETUP0X06DEFINESTATUS0X07DEFINEOBSERVE_TX0X08DEFINECD0X09DEFINERX_ADDR_P00X0ADEFINERX_ADDR_P10X0BDEFINERX_ADDR_P20X0CDEFINERX_ADDR_P30X0DDEFINERX_ADDR_P40X0EDEFINERX_ADDR_P50X0FDEFINETX_ADDR0X10DEFINERX_PW_P00X11DEFINERX_PW_P10X12DEFINERX_PW_P20X13DEFINERX_PW_P30X14DEFINERX_PW_P40X15DEFINERX_PW_P50X16DEFINEFIFO_STATUS0X17UCHARNUMUINTWENDU0/NRF24L01端口定义SBITMISOP14SBITMOSIP13SBITSCKP12SBITCEP10SBITCSNP11SBITIRQP15/信号灯端口定义SBITLEDP16UNSIGNEDCHARCODETABLE0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,/带小数点的09编码0XBF,0X86,0XDB,0XCF,0XE6,0XED,0XFD,0X87,0XFF,0XEF,/不带小数点的09编码VOIDDELAYUINTZUINTX,YFORXZX0XFORY10Y0YVOIDDISPLAYUCHARNUM,UCHARDAT/数据显示程序UCHARIP00SWITCHNUMCASE0I0X0EP2IBREAKCASE1I0X0DP2IBREAKCASE2I0X0BP2IBREAKDEFAULTBREAKP0TABLEDATVOIDDIS_TEMPUINTT/显示温度数值函数T传递的是整型的温度UCHARI,JFORJ10J0JIT/100/除以100得到商,为温度的十位DISPLAY2,I/在第一个数码管上显示DELAY4IT100/10/100取余再除以10得到商,位温度的个位DISPLAY1,I10/在第2个数码管上显示,有小数点DELAY4IT10010/100取余再用10取余,为温度的小数位DISPLAY0,I/在第3个数码管上显示VOIDINIT_LED4DIS_TEMPWENDU/获取温度并显示VOIDDELAYUINTSVOIDINERDELAY_USUCHARNVOIDINIT_NRF24L01VOIDUCHARSPI_RWUCHARBYTEUCHARSPI_READUCHARREG/VOIDSETRX_MODEVOIDUCHARSPI_RW_REGUCHARREG,UCHARVALUEUCHARSPI_READ_BUFUCHARREG,UCHARPBUF,UCHARUCHARSUCHARSPI_WRITE_BUFUCHARREG,UCHARPBUF,UCHARUCHARSUCHARNRF24L01_RXPACKETUCHARRX_BUFVOIDNRF24L01_TXPACKETUCHARTX_BUF/UCHARBDATASTA/状态标志SBITRX_DRSTA6SBITTX_DSSTA5SBITMAX_RTSTA4/延时函数VOIDINERDELAY_USUCHARNFORN0N_

温馨提示

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

最新文档

评论

0/150

提交评论