




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于无线网络的多点信息采集系统设计基于无线网络的多点信息采集系统设计#它的连接图和产生的抖动波形如图10所示。vccGND图10键盘连接图及产生的抖动波形3.3.5显示电路设计3.3.5.1温度显示工作原理LCD1602可以采用两种方式与单片机连接,一种是采用8位数据总线D0—D7,和RS、R/W、EN三个控制端口;另一种是只用D4-D7作为四位数据分两次传送。本实验将使用并采用八位数据方式来控制1602显示,如图11所示:STC89C52P2.0LCD1602P27DB0P05DB7P0.6RSP0.7RWE图11STC89C52与LCD1602接口电路图进行LCD设计主要是LCD的控制/驱动和外界的接口设计。控制主要是通过接口与外界通信、管理内/外显示RAM,控制驱动器,分配显示数据;驱动主要是根据控制器要求,驱动LCD进行显示[9]控制器还常含有内部ASCII字符库,或可外扩的大容量汉字库。STC89C52的P0.7与LCD1602的使能端E相连,P0.6读写选择端与R/W相连,P0.5与RS相连,当使能端使能时,再通过命令端来控制读数据、写数据、写命令。控制P2端口与LCD1602A的数据端口相连,传输数据LCD1602的性能参数LCD1602A的管脚排列如下图,它共有16个脚,各引脚功能如下:
1"FLTKT162T=ST4153l-1耳斗V_1__■-DSD5匸MD213126E:OOD111飞1O89图12LCD1602引脚图VSS:电源地;VDD:电源正极;VL:液晶显示偏压信号,对比度调整端,接地时最高,接正电源时最低,可接10K电位器调整;RS:寄存器选择,高电平选择数据寄存器低电平选择指令寄存器;R/W:读/写选择,高电平读操作,低电平写操作;E使能信号:当E端由高电平跳变成低电平时,液晶模块执行命令;BLA:背光源正极;BLK:背光源负极;D0~D7:数据端口;3.3.5.3芯片的主要技术参数及应用配置表4LCD1602A主要技术参数显示容量:16x2个字符芯片工作电压:4.5〜5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95x4.35(WXH)mm表5LCD1602A接口信号说明表指令码功能—C0■D—0111000设置16*2显示,5*7点阵,8位数据接口指令码功能001DCBD=1开显示D=0关显示C=1显示光标C=0不显示光标B=1光标闪烁B=0光标不闪烁0001NSN=1当读/写一个字符后,地址指针加1,且光标加1;N=0当读/写一个字符后,地址指针减1,且光标减1;S=1当写一个字符,整屏显示左移(N=1)或者右移(N=0),以得到光标不移动而整屏移动的效果;S=0当写一个字符,整屏显示不移动。0000表61602A显示模式系统软件设计系统软件设计方案本系统采用C语言编写,主程序主要由四部分构成,系统通电后首先初始化系统,依次完成温度采集、温度处理、数据发送、数据显示等四项功能。温度采集部分主要完成2个温度测试点的温度数据采集任务;温度处理部分主要是将采集到的温度数据用单片机进行处理然后从发射模块把处理后的数据发送出去;数据显示部分主要实现温度数据的显示,显示方式根据设计要求支持1到3个温度测试点的轮流循环显示和固定显示两种模式;通过串口通信实现用户与系统之间的交互。
图13系统软件总流程图主机系统软件结构主要是CC1100初始化及射频接收函数、串口通信函数等。从机系统结构流程图:从机系统软件结构主要有以下几个关键函数:DS18B20初始化及温度采集函数、CC1100初始化及射频发送函数、数据显示函数等。从下图所示可以看出各文件间的调用关系。下面简要介绍一下各个程序文件的功能:主程序文件(main.c):实现系统的初始化,整个系统的运行控制;LCD显示函数(LCD.asm):包含显示的端口初始化,显存的刷新,LCD的闪CC1100发送函数(fasong.c):包含了nRf905的初始化,发送温度数据;DS18B20驱动函数(dsl8b20-driver.c):启动DS18B20测温,并读取测温结果;中断服务函数(ISR.asm):系统的显示刷新,温度数据发送均通过中断完成;
图14从机系统软件结构从机系统主程序如图14所示:主要功能是负责温度的实时显示,读出并处理DS12B20的测量温度值以及启动CC1100发送
图15从机系统主程序流程图
图16DS18B20的初始化流程各功能模块程序的设计温度采集程序程序设计先需将DS18B20进行初始化,其初始化流程图如图15所示;如果DS18B20初始化成功,将会返回‘1',否则返回‘0'。读出温度子程序的流程图如图16所示;它的主要功能是读出RAM中的9个字节,在读出时须进行CRC校验,校验有错时不进行温度数据的改写。图17从DS18B20读一位数据流CC1100发射及接收程序设计CC1100发射模式如图18,CC1100接收模式如图19所示。4.2.2.1发射模式当MCU有数据需要发往规定节点时,接收节点的地址(TX-address)和有效数据(TX-payload)通过SPI接口传送给高频头;MCU设置TRX_CE,TXEN为高来启动传输;当AUTO_RETRAN被设置为高,高频头将连续地发送数据包,直到TRX_CE被设置为低;当TRX_CE被设置为低时,高频头结束数据传输并将自己设置成待机模式。
图18CC1100发射模式4.2.2.2接收模式通过设置TRX_CE高,TXEN低来选择RX模式;650us以后,高频头监测空中的信息;当高频头发现和接收频率相同的载波时,载波检测(CD)被置高;当高频头接收到有效的地址时,地址匹配(AM)被置高;当高频头接收到有效的数据包(CRC校验正确)时,高频头去掉前导码,地址和CRC位,数据准备就绪①R)被置高;MCU设置TRX_CE低,进入standby模式(待机模式);MCU可以以合适的速率通过SPI接口读出有效数据;当所有的有效数据被读出后,高频头将AM和DR置低。
图19CC1100接收模式从机中断服务该系统用到了以下中断:IRQ2_TMB、IRQ4_4KHz、IRQ5_2Hz、IRQ7-433MHZ下面逐个介绍其作用及中断服务流程:IRQ2_TMB中断如图20:自动模式下,切换DS18B20通道。IRQ4_4KHz中断如图21:数码管动态显示的刷新。IRQ5_2Hz中断如图22:设置状态下,闪烁被设置位。IRQ7-433MHZ中断如图23:CC1100发送数据。图20IRQ2-TWB中断服务流程图21IRQ5-2KHZ中断服务流程IRQ7-433MHZ中1调用CC1100发送函数清除中断标志位图22IRQ4-4KHZ中断服务流程4.2.4RS232接口通信软件设计图23IRQ7-433MHZ中断服务在本设计中PC机发送字符与接受字符均采用查询方式,发送前先读取通信或状态寄存器,查询发送保持寄存器是否为空;接收前先读取通信或状态寄存器,查询一帧据是否收完。从机采用中断方式,即接受到地址帧后就进行串行口中断申请,CPU响应后,进入中断服务程序,按照通讯协议要求发出命令号,完成相应功能,便能实现数据通讯。测试总结调试在板子焊接过程中,依次对模块进行测试,先对焊接的单片机最小系统进行了测试,顺利工作,然后对数码管的显示进行了测试,显示数据,等整体焊接完成后,运用KeilC软件对程序进行调试,就遇到了很多问题,例如把程序下载后有时不显示数据没有任何迹象,有时是无线收发部分的问题,不能把采集的温度数值成功发送出去,反复排查硬件电路的连接,把硬件问题彻底解决后又不断地调试程序,最终显示了温度数据。总结我通过这次试验,更加深入的了解了温度传感器,无线传输模块,以及51单片机的结构功能和具体应用,也使我们对电路PCB板有了更深的认识,开阔了我们的眼界,丰富了我们的知识,增长了我们的见识。在老师和同学们的帮助下,我们完成了本次试验,我们的无线温度采集系统,可以实现温度的无线采集,并且相当精确。但也有些问题,就是有些功能没有实现,或者是很不理想,这也是自己知识缺陷,没能很好理解这些知识和他们的特性。本文基于CC1100和DS18B20设计了一个无线测温系统,具有体积小、功耗低等优点,且充分利用了STC89C52资源,使得该系统的数据采集和运算处理十分的方便简单,并且可以与室内的PC机相连进行实时全方位的监测。本设计适用于采油厂、发电厂、钻井施工、大型仓库储存等不宜进行有线测温的场合,应用前景广阔。方案的扩展:本方案的可扩展性比较强,整个程序的程序框架已经搭建好,可以接多个DS18B20实现更多路的温度采集,也可以用于采集湿度、烟雾浓度、关照强度等数据,可以广泛应用于生产生活中;另外CC1100在接收数据成功时连续接收,接收不到数据时连续显示信息,可进一步改进:使发-接,不是无限连续的。致谢整个毕业论文的过程,在尤连荣老师的悉心指导和严格要求下,我终于完成了《基于无线网络的多点信息采集系统设计》的论文。首先,衷心感谢我的指导老师尤连荣老师。在本次毕业设计过程中,尤老师给予我精心的指导,并为我提供了丰富的背景资料和创新性的意见和建议,使我的毕业设计得以顺利完成。尤老师严谨勤奋的工作作风、扎实广博的学识和平易近人的性格,使我在学习方面得到了很大的收获,它们将是我受益终生的财富。其次,我也要感谢我的老师,感谢各位老师这四年中在学习中、生活上的关心和照顾;感谢各位同学,同学们在生活中给予很大的帮助,在学习上也给极大的鼓舞。最后,我要深深感谢辛勤养育我的父母。在我求学期间,他们始终给予我最大的支持和鼓励,使我勇于战胜各种困难,顺利完成学业。希望我的进步能给他们带来喜悦和安慰。参考资料何立民.单片机高级教程.北京:北京航空航天大学出版社.2004.7.粟世明,刘湘涛.单片机原理与应用.北京:电子工业出版社.2006.8.李华.MCU-51系列单片机实用接口技术.北京:北京航空航天大学出版社,1993.6.陈光东.单片机微型计算机原理与接口技术(第二版).武汉:华中理工大学出版社,1999.4.徐淑华,程退安,姚万生.单片机微型机原理及应用.哈尔滨:哈尔滨工业大学出版社,1999.6.锻九州.放大电路实用设计手册.沈阳:辽宁科学技术出版社,2002.5.张胜全,D18B20数字温度计在微机温度采集系统中的序编制.南京:南京大学出版社1998.3.刘迎春,叶湘滨.现代新型传感器原理及其应用。北京:国防工业出版社,1998.朱定华.现代微机原理与接口技术.北京:电子工业出版社,2004.《Theprincipleandapplicationof1-wiredigitaltemperaturesensorDS18B20》JacbMillman,ArvinGrabel:Microeletronics,2ndEdition,McGraw-Hill,I-nc,1988CC1100PRELIMINARYDataSheet(Rev.1.01)附1温度采集和显示模块#include<reg52.h>#include<intrins.h>#include<reg52.h>#include<intrins.h>#defineINT8Uunsignedchar#defineINT16Uunsignedint#defineWRITE_BURST0x40#defineREAD_SINGLE0x80#defineREAD_BURST0xC0#defineBYTES_IN_RXFIFO0x7F字节数#defineCRC_OK0x80//连续写入//读//连续读//接收缓冲区的有效//CRC校验通过位标志sbitGDO0=P1A3;sbitGDO2=卩3人2;sbitMISO=P1A6;sbitMOSI=P1A5;sbitSCK=P1A7;sbitCSN=P1A2;sbitLED2=P3A4;sbitLED1=P3A5;sbitKEY1=P3A6;sbitKEY2=P3A7;sbitled3=P2A0;sbitled2=P2A1;sbitled1=P2A2;sbitled0=P2A3;sbitst=P2A5;sbitDQ=P2A7;INT8UPaTabel[8]={0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60};INT8Useg[10]={0xC0,0xCF,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//0~~9段码INT8Useg1[10]={0x40,0x4F,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};INT8Udatatemp_data[2]={0x00,0x00};INT8Udispaly[8];//*****************************************************************************voidSpiInit(void);voidCpuInit(void);voidRESET_CC1100(void);voidPOWER_UP_RESET_CC1100(void);voidhalSpiWriteReg(INT8Uaddr,INT8Uvalue);voidhalSpiWriteBurstReg(INT8Uaddr,INT8U*buffer,INT8Ucount);voidhalSpiStrobe(INT8Ustrobe);INT8UhalSpiReadReg(INT8Uaddr);voidhalSpiReadBurstReg(INT8Uaddr,INT8U*buffer,INT8Ucount);INT8UhalSpiReadStatus(INT8Uaddr);voidhalRfWriteRfSettings(void);voidhalRfSendPacket(INT8U*txBuffer,INT8Usize);INT8UhalRfReceivePacket(INT8U*rxBuffer,INT8U*length);voiddelay1(INT16Ui);voidds_reset(void);voidwrite_byte(INT8Uvalue);INT8Uread_byte(void);voidread_temp();
voidwork_temp();//CC1100STROBE,CONTROLANDSTATUSREGSITER#defineCCxxx0_IOCFG20x00//GDO2outputpinconfiguration#defineCCxxx0_IOCFG10x01//GDO1outputpinconfiguration#defineCCxxx0_IOCFG00x02//GDO0outputpinconfiguration#defineCCxxx0_FIFOTHR0x03//RXFIFOandTXFIFOthresholds#defineCCxxx0_SYNC10x04//Syncword,highINT8U#defineCCxxx0_SYNC00x05//Syncword,lowINT8U#defineCCxxx0_PKTLEN0x06//Packetlength#defineCCxxx0_PKTCTRL10x07//Packetautomationcontrol#defineCCxxx0_PKTCTRL00x08//Packetautomationcontrol#defineCCxxx0_ADDR0x09//Deviceaddress#defineCCxxx0_CHANNR0x0A//Channelnumber#defineCCxxx0_FSCTRL10x0B//Frequencysynthesizercontrol#defineCCxxx0_FSCTRL00x0C//Frequencysynthesizercontrol#defineCCxxx0_FREQ20x0D//Frequencycontrolword,highINT8U#defineCCxxx0_FREQ10x0E//Frequencycontrolword,middleINT8U#defineCCxxx0_FREQ00x0F//Frequencycontrolword,lowINT8U#defineCCxxx0_MDMCFG40x10//Modemconfiguration#defineCCxxx0_MDMCFG30x11//Modemconfiguration#defineCCxxx0_MDMCFG20x12//Modemconfiguration#defineCCxxx0_MDMCFG10x13//Modemconfiguration#defineCCxxx0_MDMCFG00x14//Modemconfiguration#defineCCxxx0_DEVIATN0x15//Modemdeviationsetting#defineCCxxx0_MCSM20x16//MainRadioControlStateMachineconfiguration#defineCCxxx0_MCSM10x17//MainRadioControlStateMachineconfiguration#defineCCxxx0_MCSM00x18configuration#defineCCxxx0_FOCCFG0x19configurationTOC\o"1-5"\h\z#defineCCxxx0_BSCFG0x1A#defineCCxxx0_AGCCTRL20x1B#defineCCxxx0_AGCCTRL10x1C#defineCCxxx0_AGCCTRL00x1D#defineCCxxx0_WOREVT10x1E#defineCCxxx0_WOREVT00x1F#defineCCxxx0_WORCTRL0x20#defineCCxxx0_FREND10x21#defineCCxxx0_FREND00x22#defineCCxxx0_FSCAL30x23#defineCCxxx0_FSCAL20x24#defineCCxxx0_FSCAL10x25#defineCCxxx0_FSCAL00x26#defineCCxxx0_RCCTRL10x27#defineCCxxx0_RCCTRL00x28#defineCCxxx0_FSTEST0x29#defineCCxxx0_PTEST0x2A#defineCCxxx0_AGCTEST0x2B#defineCCxxx0_TEST20x2C#defineCCxxx0_TEST10x2D#defineCCxxx0_TEST00x2E//Strobecommands#defineCCxxx0_SRES0x30#defineCCxxx0_SFSTXON0x31synthesizer(ifMCSM0.FS_AUTOCAL=1).//MainRadioControlStateMachine//FrequencyOffsetCompensation//BitSynchronizationconfiguration//AGCcontrol//AGCcontrol//AGCcontrol//HighINT8UEvent0timeout//LowINT8UEvent0timeout//WakeOnRadiocontrol//FrontendRXconfiguration//FrontendTXconfiguration//Frequencysynthesizercalibration//Frequencysynthesizercalibration//Frequencysynthesizercalibration//Frequencysynthesizercalibration//RCoscillatorconfiguration//RCoscillatorconfiguration//Frequencysynthesizercalibrationcontrol//Productiontest//AGCtest//Varioustestsettings//Varioustestsettings//Varioustestsettings//Resetchip.//Enableandcalibratefrequencyonlythesynthesizerisonlythesynthesizeris#defineCCxxx0_SXOFF#defineCCxxx0_SCALitoff#defineCCxxx0_SRXcomingfromIDLEand#defineCCxxx0_STXcalibrationfirstifandCCAisenabled:#defineCCxxx0_SIDLEsynthesizerandexit#defineCCxxx0_SAFCsynthesizer#defineCCxxx0_SWOR(Wake-on-Radio)#defineCCxxx0_SPWDhigh.#defineCCxxx0_SFRX#defineCCxxx0_SFTX#defineCCxxx0_SWORRST#defineCCxxx0_SNOPcommandstotwo//IfinRX/TX:Gotoawaitstatewhere//running(forquickRX/TXturnaround).0x32//Turnoffcrystaloscillator.0x33//Calibratefrequencysynthesizerandturn//(enablesquickstart).0x34//EnableRX.Performcalibrationfirstif//MCSM0.FS_AUTOCAL=1.0x35//InIDLEstate:EnableTX.Perform//MCSM0.FS_AUTOCAL=1.IfinRXstate//OnlygotoTXifchannelisclear.0x36//ExitRX/TX,turnofffrequency//Wake-On-Radiomodeifapplicable.0x37//PerformAFCadjustmentofthefrequency0x38//StartautomaticRXpollingsequence0x39//EnterpowerdownmodewhenCSngoes0x3A//FlushtheRXFIFObuffer.0x3B//FlushtheTXFIFObuffer.0x3C//Resetrealtimeclock.0x3D//Nooperation.Maybeusedtopadstrobe//INT8Usforsimplersoftware.TOC\o"1-5"\h\z#defineCCxxx0_PARTNUM0x30#defineCCxxx0_VERSION0x31#defineCCxxx0_FREQEST0x32#defineCCxxx0_LQI0x33#defineCCxxx0_RSSI0x34#defineCCxxx0_MARCSTATE0x35#defineCCxxx0_WORTIME10x36#defineCCxxx0_WORTIME00x37#defineCCxxx0_PKTSTATUS0x38#defineCCxxx0_VCO_VC_DAC0x39#defineCCxxx0_TXBYTES0x3A#defineCCxxx0_RXBYTES0x3B#defineCCxxx0_PATABLE0x3E#defineCCxxx0_TXFIFO0x3F#defineCCxxx0_RXFIFO0x3F/******************************************************************************〃函数名:delay(unsignedints)//输入:时间//输出:无//功能描述:普通廷时,内部用staticvoiddelay(unsignedints){unsignedinti;for(i=0;i<s;i++);for(i=0;i<s;i++);}voidhalWait(INT16Utimeout){do{_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}while(--timeout);}voidSpiInit(void){CSN=0;SCK=0;CSN=1;}/************************〃函数名:CpuInit()//输入:无//输出:无〃功能描述:SPI初始化程序/******************************************************************************voidCpuInit(void){SpiInit();delay(5000);}//*****************************************************************************〃函数名:SpisendByte(INT8Udat)//输入:发送的数据//输出:无//功能描述:SPI发送一个字节INT8USpiTxRxByte(INT8Udat){INT8Ui,temp;temp=0;SCK=0;for(i=0;i<8;i++){if(dat&0x80){MOSI=1;}elseMOSI=0;dat<<=1;SCK=1;_nop_();_nop_();temp<<=1;if(MISO)temp++;SCK=0;_nop_();_nop_();}returntemp;}〃函数名:voidRESET_CC1100(void)//输入:无//输出:无//功能描述:复位CC1100voidRESET_CC1100(void){CSN=0;while(MISO);SpiTxRxByte(CCxxx0_SRES);//写入复位命令while(MISO);CSN=1;}//函数名:voidPOWER_UP_RESET_CC1100(void)//输入:无//输出:无//功能描述:上电复位CC1100voidPOWER_UP_RESET_CC1100(void)
{CSN=1;halWait(1);CSN=0;halWait(1);//复位CC1100CSN//复位C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社交媒体营销合同书二零二五年
- 2025设备借款抵押合同样本
- 2025短期雇佣员工合同
- 2025北京家庭装修设计合同样本(官方)
- 2025南京徐工汽车制造有限公司矿卡合同
- 2025年工厂租赁合同范本
- 艺术学的探索旅程
- 银行服务优化策略
- 医学博士之路
- 2025年电子商务平台合作合同模板
- 珠宝零售店运营管理手册范本
- 电缆沟工程量计算表(土建)
- 初中数学课堂教学中应重视学生阅读理解能力的培养
- 中层干部因私出国境请假审批表
- 潍柴发动机WD615系列分解图册
- 碎石、砂出厂合格证
- 泵站水锤计算书
- 中国城市规划设计研究院交通评估收费标准
- 配件来源及报价明细表
- IQC供应商品质管理看板
- 钢结构安装专项方案(电梯井)
评论
0/150
提交评论