




已阅读5页,还剩93页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能小车无线控制系统摘要本文设计一个无线智能小车控制系统,系统分为上位机与下位机两部分,分别以单片机STC89C52作为主控芯片。上位机集成了USB和NRF905两个模块,通过USB接口与上位机(通用计算机)相连,接收由上位机传来的控制信息(例如前进、后退、左转、右转),利用NRF905无线发射模块、无线接收模块,将该控制信息经过NRF905无线传输技术433MHZ发射出去;并通过NRF905接收器接收遥控器的控制信号,再将信号传给小车电机并作出相应动作。本设计主要由电机USB传输模块、单片机处理模块、无线发射模块和无线接收模块四部分组成。该无线遥控小车的功能如下能够在有障碍物的情况下实现150米内的无线遥控;实现前进、后退、左转、右转,温度信息的采集并对采集信息处理等功能。然后将处理后的数据传送至PC端,并通过VB程序显示在屏幕上。关键词微控制器;无线传输技术;上位机;USB;控制器ABSTRACTTHEDESIGNADOPTSAWIRELESSSYSTEMWITHCARCONTROLLERSTC89C52MICROCONTROLLERASTHEMAINCONTROLCHIPTHISCONTROLLERCONCLUDEDNRF905ANDUSBMODULESTHECONTROLLERCONNECTSPCMACHINEGENERALPURPOSECOMPUTERTHROUGHGENERALUSBINTERFACE,ANDRECEIVESCONTROLLINGINFORMATIONFORWARD,BACKWARD,LEFT,RIGHTFROMTHECOMPUTERTHETHESISADOPTSWIRELESSREMOTECONTROLLINGMODULECONSISTINGOFWIRELESSSENDINGMODULEANDWIRELESSRECEIVINGMODULEITSENDSTHECONTROLLINGINFORMATIONOUTBYTHENRF905WIRELESSTECHNOLOGYAFTERRECEIVINGTHECONTROLLINGSIGNAL,THENRF905RECEIVERSENDSITTOMOTORCARANDTAKESACTIONACCORDINGLYTHISSYSTEMMAINLYCONSISTOFMOTORUSBTRANSMISSIONMODULE,SINGLECHIPMICROPROCESSINGMODULE,WIRELESSTRANSMITTINGMODULEANDWIRELESSRECEIVINGMODULESTHEWIRELESSREMOTECONTROLLINGOFTHECARFUNCTIONSAREASFOLLOWSUNDERTHECONDITIONOFTHEOBSTACLES,ITCANCOMPLETE150METERSOFWIRELESSREMOTECONTROLTHECARCANGOFORWARD,BACKWARD,LEFT,ANDRIGHTINADDITION,THELITTLECARCOLLECTSOMEINFORMATIONELSE,SUCHASTHETEMPERATURETHENTHERELATEDDATASANDINFORMATIONHAVEBEENSENDBACKTOTHEPCTHECOLLECTEDINFORMATIONISDISPLAYEDBYTHEVBPROGRAMKEYWORDSMCUWIRELESSTRANSMISSIONTECHNOLOGYPCUSBCONTROLLER引言自动化是人类文明进步和现代化的标志,特别是在当今信息时代,在我国由制造大国向制造强国转变的过程中,智能控制与自动化技术正广泛应用于工业、农业、军事、交通运输、医疗、服务和家庭方面,改变着社会各人们的生活。今天,利用无线电波传送声音和图像节目的广播和电视,已经深入到社会生活的各个角落,成为亿万人民的伴侣。利用无线电波可以传播信号的这一特性,无线电遥控技术应运而生。无线电遥控就是利用电磁波在远距离上,按照人们的一致实现对物体对象的无线操纵和控制,这种无线控制的方式就叫做无线电遥控1。无线电遥控技术发展虽然只有几十年的历史,但是在军事,国防,工农业生产以及科学技术等方面已得到了广泛的应用,并且随着电子技术的飞速发展,新型大规模遥控集成电路的不断出现,使得遥控技术有了日新月异的发展2。遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化程度大大提高。近年来,遥控技术在工业生产、家用电器,安全保卫以及人们的日常生活中使用越来越广泛,并成为发达国家研究的热点。无线遥控小车是上世纪提出的一种新型小车,由于在军事侦察、反恐、防爆、防核化及污染等危险与恶劣环境作业中有着广阔的应用前景,使其成为一个重要的研究热点3。无线遥控小车具有体积小、成本低、生存能力强、运动灵活等特点。由于其应用场合特殊,所以特别要求这类小车重量轻、体积小、能耗低、实时性好、操作使用可靠。依据无线遥控小车系统的总体结构,整个小车系统由移动平台、车载控制系统、遥控系统和传感检测四大部分组成。从系统总体来看,无线遥控小车有近端操作人员,远端移动小车和运行环境场所构成,由此构成了人小车环境三者相互紧密联系的一个整体。操作人员在遥控作业端根据作业任务的要求,通过遥控操作平台的人机交互接口,借助反馈信息控制小车完成特定的作业任务。操作人员依据终端反馈的信息,根据特定作业任务的要求发送操作与控制指令信息,控制无线遥控小车的前进、后退、转向、加速和减速。1系统方案设计11总体方案设计111设计任务设计一个无线小车的控制系统,此控制系统可以通过USB接口与无线模块相连,并通过无线模块来控制无线小车进行前进、后退、左转、右转、采集信息等操作。本设计预期要研究的主要问题有(1)如何实现USB口与串口间的转换。(2)如何实现无线传输模块的接收与发送。(3)如何通过编程实现控制系统的各项功能。(4)如何实现下位机小车的行进。(5)如何实现温度、湿度信息的采集。(6)如何设定通信协议。112设计原理系统以C51单片机作为主控芯片,移动控制平台上的单片机通过USB转串口模块连接上位机的USB口,接收控制信息(例如前进、后退、左转、右转等),并将该控制信息经过编码和调制之后,通过无线传输模块实现无线发送、接收操作指令,将控制信号发送出去供小车接收,并作出相应动作。12方案选择与论证121单片机处理模块方案18051是在8031的基础上,片内又集成有4KBROM,作为程序存储器,是1个程序不超过4KB的小系统。ROM内的程序是公司制作芯片时,代为烧制的,出厂的8051都是含有特殊用途的单片机4。所以8051应用在程序已定,且大批量生产的单片机产品中,8051是具有MCS51内核的各种型号单片机的基础,也是各种增强型,扩展型等衍生品种的核心,使用简单,可以根据自己的需要扩展外部接口。方案2AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。将多功能8位CPU组合在单个芯片中,三级程序存储器锁定,0HZ24MHZ,1288位内部RAM,32条可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。方案3CYPRESS公司的EZUSBFX2单片机CY7C68013是一款性能较高的USB20控制器5。在芯片上集成了USB和C51内核两个模块,由USB收发模块进行数据字节传输,功能强大的USB内核自动完成USB协议的转换,大大简化了8051代码。芯片集成了USB外设接口的硬件,包括非易失存储器(EPROM、EEPROM、FLASH、ROM)、微处理器、RAM、SIE(串口接口引擎)、DMA等全部功能模块。集成工业标准的8051内核,具有以下增强特性高达48MHZ的时钟;每条指令四个时钟周期;两个UART;三个计数器/定时器;扩展的中断系统;两个数据指针;33V电源;矢量USB中断;8051可工作在48MHZ、24MHZ、12MHZ三种时钟频率;四个集成FIFO,可以同16位总线进行自动转换;可工作在主/从模式;FIFO可使用外部提供的时钟或异步选通信号;为ASIC和DSP提供方便的接口;为FIFO和GPIF设计的专门自动中断矢量;最多可有40个通用目的I/O。改进增强的8051内核,性能可达到标准8051的510倍,指令系统与8051完全兼容。USB内核为USB设备开发者完成协议中大部分的通信工作,使开发者不需要深入了解USB的低级协议即可顺利开发出所需要的USB设备。综上所述方案1可以大大简化设计难度,所以采用方案1。122USB传输模块方案1CP2101及其升级产品CP2102是美国SILICON公司生产的高集成度USBUART桥接电路6。它们能够用最简单的外部电路、最少的外部器件及最小的电路板面积简便实现USB20到UART的转换。该电路的集成度高,内置USB20全速功能控制器、USB收发器、晶体振荡器、EEPROM及异步串行数据总线(UART),支持调制解调器全功能信号,无需任何外部的USB器件。功能强大,采用MLP28封装,尺寸仅为5MM5MM,占用空间非常小。与其他USBUART转接电路的工作原理类似,CP2101通过驱动程序将PC的USB口虚拟成COM口以达到扩展的目的。虚拟COM口(VCP)的器件驱动程序允许一个基于CP2101的器件以PC应用软件的形式作为一个增加的COM口独立于任何现有的硬件。COM口使用运行在PC上的应用软件以访问一个标准硬件COM口的方式访问基于CP2101的器件,PC与CP2101间的数据传输是通过USB完成的,因此,无需修改现有的软件和硬件就可以通过USB向基于CP2101的器件传输数据。CP2101的体积虽小但功能非常强大,其主要特性如下内含USB收发器,无需外接电路器;内含时钟电路,无需外接振荡器;内含上电复位电路;片内电压调节可输出33V电压;符合USB20规范的要求(12MB/S);SUSPEND引脚支持USB状态挂起;内含512字节接收缓冲器和512字节发送缓冲器;支持硬件或XON/XOFF握手;支持事件状态。方案2FT2232C是一款USB到UART/FIFO的转换电路,是FTDI公司继第二代FT232BM、FT245BM之后的第三代产品,集成了两片BM芯片的功能7。电路要用48LDLQFP封装。FT2232C具有两个多用途的UART/FIFO控制器,可分别配置成不同的工作模式。一个USB下游端口转换成两个I/O通道,每个I/O通道相当一个FT232BM或FT245BM,可以单独配置成UART接口或者FIFO接口。通过对外挂EEPROM的配置,FT2232C还提供一系列新的操作模式,如多协议同步串行机接口,这是专为同步串行协议如JTAG和SPI总线设计的。还有同步位宽模式、CPU风格的FIFO模式、多协议同步串行机接口模式、MCU主机总线竞争模式及快速光隔离串行机接口模式等。此外,该电路的驱动能力有很大提高,能够输出较之通常电路3倍的功率,这使得多个电路可能共享总线。使用FTDI公司提供的虚拟串口(VCP)驱动,对外围接口的使用就像使用PC的标准串口一样。FT2232C的特点只需添加简单配置电路,便可实现串/并口的转换;芯片上集成了全部USB协议,不需要另外编写USB固件程序;2个I/O通道相互独立,可配置成2个5V逻辑I/O接口;UART接口支持7或8位数据位,1/2位停止位,奇校验/偶校验/标志位/空位/无奇偶校验;发送数据速率3001MB/SRS2323MBS;接口模式和USB描述字符可在外部EEPROM中进行配置,还可以在板子上通过USB对EEPROM进行配置;435V525V的单电压工作范围。方案3PL2303是PROLIFIC公司生产的高集成的RS232USB接口转换器,可提供一个RS232全双工异步串行通信装置与USB功能接口便利联接的解决方案。该器件内置USB功能控制器、USB收发器、振荡器和带有全部调制解调器控制信号的UART,只需外接几只电容就可实现USB信号与RS232信号的转换,能够方便嵌入到各种设备,该器件作为USB/RS232双向转换器,一方面从主机接收数据并将其转换为RS232信息流格式发送给外设;另一方面从RS232接收数据转换为USB数据格式传送回主机。这些工作全部由器件自动完成,PL2303的高兼容驱动可在大多操作系统上模拟成传统COM端口,并允许基于COM端口应用可方便地转换成USB接口应用,通讯波特率高达6MB/S。在工作模式和休眠模式时都具有功耗低,是嵌入式系统手持设备的理想选择。该器件具有以下特征完全兼容USB11协议;可调节的35V输出电压,满足3V、33V和5V不同应用需求。PL2303的特点完全符合USB规范20(全速兼容);片内拥有USB11收发器,5V转33V的稳压器;支持RS232这样的串行接口;全双工发送器和接收器(TXD和RXD);六个引脚(RTS,CTS,DTR,DSR,DCD和RI);宽广的流量控制机制;支持从远程输入相关调制信号进行唤醒功能;两个通用的I/O(GPIO)引脚;综上所述PL2303最便宜只要3人民币,外围电路也不复杂,所以选择PL2303来作此次设计。123无线传输模块方案1红外接口是新一代的配置标准,它支持数字设备进行数据交流。红外通讯有着成本低廉、连接方便、简单易用和结构紧凑的特点,因此在小型的移动设备中获得了广泛的应用。通过红外接口,各类移动设备可以自由进行数据交换。红外线是波长在750NM至1MM之间的电磁波,它的频率高于微波而低于可见光,是一种人的眼睛看不到的光线。(1)红外传输的优点可以再同样具备红外接口的设备间进行信息交流;红外接口可省去下载或其他信息交流所发生的费用;由于需要对接才能传输信息,安全性较强。(2)红外传输的缺点通讯距离短,通讯过程不能移动,遇障碍物通讯中断;红外通讯技术的主要目的是取代线缆连接进行无线数据传输,功能单一,扩展性差。方案2蓝牙(BLUETOOTH)技术是爱立信、IBM等5家公司在1998年联合推出的一种短距10100米无线网络技术。它将各种通信设备、计算机及其终端设备、各种数字数据系统、甚至家用电器采用无线方式联接起来。(1)蓝牙传输的优点支持语音和数据传输;采用无线电技术,传输范围大,可穿透不同物质以及在物质间扩散。采用跳频展频技术,抗干扰性强,不易窃听。在各国都不受频谱的限制,理论上说,不存在干扰。(2)蓝牙传输的缺点传输距离短,目前我们所用的蓝牙一般为10米功率级别。也就是说只能在方圆十米之内进行数据之间传输。传输速度慢。目前蓝牙的峰值带宽只能达到3MB/S。方案3NRF905三频段收发合一,抗干扰能力强,特别适合工业控制场合采用DSSPLL频率合成技术,频率稳定性极好灵敏度高,100DBM低工作电压(27V),功耗小,待机状态仅为1UA,可满足低功耗设备的要求最大发射功率达10DBM具有多个频道(最多170个以上),特别满足需要多信道工作的特殊场合工作速率最高可达768KBPS外围元件最少(仅10个),基本无需调试。由于采用了低发射功率、高接收灵敏度的设计,使用无需申请许可证,开阔地的使用距离最远可达1000米,具体使用环境及元件参数有关8。NRF905的优点9433MHZ开放ISM频段免许可证使用;接收发送功能合一,收发完成中断标志;170个频道,满足多点通讯和跳频通讯,实现组网通讯;内置硬件8/16位CRC校验,开发简单,数据传输可靠;工作电压1936V,低功耗,待机模式仅25UA;收发模式切换时间1DOEVENTSLOOPRECIVEMSCOMMINPUTLABEL6CAPTIONHEXRECIVE0LABEL4CAPTION“WENDENDIFENDIFENDSUB图25温度采集视图(6)采集信息的保存与处理PRIVATESUBSAVE_CLICK采集信息保存函数OPEN“C采集TXT“FORAPPENDAS1STR1“当前温度“STR2“湿度采集“STR3“高度采集“STR4“年“STR5“月“STR6“日“STR7“时“STR8“分“STR9“秒“STR10“STR11“YYEARDATE保存时间获取MMMONTHDATEDDAYDATEHHOURTIMEMMINUTETIMESSECONDTIMEPRINT1,PRINT1,YSTR4MMSTR5DSTR6STR10HSTR7MSTR8SSTR9PRINT1,STR2,TEXT2CLOSE1ENDSUB图26采集信息保存视图(7)串口开关判断IFMSCOMMPORTOPENFALSETHENONERRORGOTOERR1ERR1IFERRNUMBER8002THENXMSGBOX“端口不存在,请选择正确串口号“KAIKAI1串口除了被打开的情况还有一个情况就是串口不存在,此错误号为8002,因此可以用ERROR判断函数来实现串口报错的信息。图27串口不存在系统报错图34NRF905程序设计NRF905的无线通信流程框图如图28保护现场地址符合否命令分类发向地址接收未超时接收下一字符是命令字吗从机发送就绪发送就绪代码与所发包数相比接收未超时将待发数据包分成每个包32个字节发送完成否发送数据包接收数据包数从机接收就绪接收数据包接收完否与接收包数相比接收数据包数发送未就绪代码数据就绪标识无效恢复现场数据就绪标识仍有效发接收错代码中断返回中断图28NRF905的无线通信流程框图单片机主函数流程图如图29主函数入口串口中断初始化无线模块初始化无线模块寄存器配置无线模块接收数据串口是否接到数据无线模块发送数据是否中断入口保护现场读取SBUF中的数据恢复现场回到断点SPI写函数图29单片机主函数流程图(1)NRF905寄存器配置参数UCHARRFCONF110X00,0X4C,0X0C,0X44,0X04,0X04,0XCC,0XCC,0XCC,0XCC,0X58对于频段设置参数CH_NO,CH_NO70的值为0X4C。通过SPI接口向NRF905配置寄存器读写配置信息。(2)SPI写操作VOIDSPIWRITEUCHARSENDUCHARIBUFSENDFORI0I1等待接受数据DOEVENTSLOOPRECIVEMSCOMMINPUTLABEL6CAPTIONHEXRECIVE0LABEL4CAPTION“WENDENDIFENDIFENDSUBPRIVATESUBCOMMAND_DENGGUANG_CLICK灯光函数IFMSCOMMPORTOPENFALSETHENXMSGBOX“请打开串口“,16ELSEMSCOMMOUTBUFFERCOUNT0清空发送缓存区DENG1DENGMOD2IFDENG10THEN判断灯的状态,并进行操作FORJ1TO5MSCOMMOUTPUTSEND5FORI1TO2000NEXTNEXTCALLCAIJIELSEFORJ1TO5MSCOMMOUTPUTSEND6FORI1TO2000NEXTNEXTCALLCAIJIENDIFDENGDENG1ENDIFENDSUBPRIVATESUBCOMMAND_SHANG_CLICK控制函数前进IFMSCOMMPORTOPENFALSETHENXMSGBOX“请打开串口“,16ELSEMSCOMMOUTBUFFERCOUNT0FORJ1TO5MSCOMMOUTPUTSEND3FORI1TO2000NEXTNEXTENDIFENDSUBPRIVATESUBCOMMAND_TINGZHI_CLICK控制函数停止IFMSCOMMPORTOPENFALSETHENXMSGBOX“请打开串口“,16ELSEMSCOMMOUTBUFFERCOUNT0FORJ1TO5MSCOMMOUTPUTSEND0FORI1TO2000NEXTNEXTENDIFENDSUBPRIVATESUBCOMMAND_XIA_CLICK控制函数后退IFMSCOMMPORTOPENFALSETHENXMSGBOX“请打开串口“,16ELSEMSCOMMOUTBUFFERCOUNT0FORJ1TO5MSCOMMOUTPUTSEND4FORI1TO2000NEXTNEXTENDIFENDSUBPRIVATESUBCOMMAND_YOU_CLICK控制函数右IFMSCOMMPORTOPENFALSETHENXMSGBOX“请打开串口“,16ELSEMSCOMMOUTBUFFERCOUNT0FORJ1TO5MSCOMMOUTPUTSEND2FORI1TO2000NEXTNEXTENDIFENDSUBPRIVATESUBCOMMAND_ZUO_CLICK控制函数左IFMSCOMMPORTOPENFALSETHENXMSGBOX“请打开串口“,16ELSEMSCOMMOUTBUFFERCOUNT0FORJ1TO5MSCOMMOUTPUTSEND1FORI1TO2000NEXTNEXTENDIFENDSUBPRIVATESUBCOMMAND1_CLICKACOMBO1TEXTKAI1KAIMOD2IFKAI10THEN判断灯的状态,并进行操作MSCOMMCOMMPORTA设置串口MSCOMMSETTINGS“9600,N,8,1“位停止位MSCOMMINPUTLEN0读取接收缓冲区的所有字符MSCOMMINBUFFERSIZE1024设置接收缓冲区为1024字节MSCOMMOUTBUFFERSIZE512设置发送缓冲区为512字节MSCOMMINPUTMODECOMINPUTMODEBINARY二进制方式发送MSCOMMSTHRESHOLD0不触发发送事件MSCOMMINBUFFERCOUNT0清除发送缓冲区数据MSCOMMOUTBUFFERCOUNT0清除接收缓冲区数据IFMSCOMMPORTOPENFALSETHENONERRORGOTOERR1MSCOMMPORTOPENTRUE打开串口COMMAND1CAPTION“串口已开启“ENDIFELSEIFMSCOMMPORTOPENTRUETHENMSCOMMPORTOPENFALSE串口关闭COMMAND1CAPTION“串口已关闭“ENDIFENDIFERR1IFERRNUMBER8002THENXMSGBOX“端口不存在,请选择正确串口号“KAIKAI1ENDIFKAIKAI1ENDSUBPRIVATESUBCOMMAND2_CLICKIFMSCOMMPORTOPENTRUETHENMSCOMMPORTOPENFALSEENDIFENDENDSUBPRIVATESUBFORM_LOAD初始化SEND10STR4MMSTR5DSTR6STR10HSTR7MSTR8SSTR9PRINT1,PRINT1,STR1,LABEL5CAPTIONSTR10LABEL6CAPTIONSTR11LABEL4CAPTIONPRINT1,STR2,TEXT2PRINT1,STR3,TEXT3PRINT1,XPRINT1,“_“CLOSE1ENDSUBPRIVATESUBTIMER1_TIMER时间函数LABEL7CAPTIONTIMEENDSUBPRIVATESUBCAIJI附加采集函数,验证发送DOUNTILMSCOMMINBUFFERCOUNT1等待数据DOEVENTSLOOPRECIVEMSCOMMINPUT接收数据LABEL6CAPTIONHEXRECIVE0MSCOMMINBUFFERCOUNT0ENDSUBPRIVATESUBJIANPAN_KEYDOWNKEYCODEASINTEGER,SHIFTASINTEGER键盘控制事件按下SELECTCASEKEYCODE选择相应操作CASEVBKEYWCALLCOMMAND_SHANG_CLICKCASEVBKEYSCALLCOMMAND_XIA_CLICKCASEVBKEYACALLCOMMAND_ZUO_CLICKCASEVBKEYDCALLCOMMAND_YOU_CLICKCASEVBKEYQCALLCOMMAND_DENGGUANG_CLICKCASEVBKEYECALLCOMMAND_TINGZHI_CLICKCASEVBKEY1CALLCOMMAND_CAIJI1_CLICKCASEVBKEY4CALLSAVE_CLICKCASEVBKEYRCALLRES_CLICKENDSELECTENDSUBPRIVATESUBJIANPAN_KEYUPKEYCODEASINTEGER,SHIFTASINTEGER键盘控制事件放开SELECTCASEKEYCODE选择相应操作CASEVBKEYWCALLQINGKONGCASEVBKEYSCALLQINGKONGCASEVBKEYACALLQINGKONGCASEVBKEYDCALLQINGKONGCASEVBKEYQCALLCAIJICASEVBKEYECALLQINGKONGENDSELECTENDSUBPRIVATESUBJIANPAN_GOTFOCUS设置键盘控制按钮属性得到焦点JIANPANCAPTION“键盘控制已开启“COMMAND_SHANGCAPTION“W“COMMAND_XIACAPTION“S“COMMAND_ZUOCAPTION“A“COMMAND_YOUCAPTION“D“ENDSUBPRIVATESUBJIANPAN_LOSTFOCUS设置键盘控制按钮属性失去焦点JIANPANCAPTION“键盘控制已关闭“COMMAND_SHANGCAPTION“COMMAND_XIACAPTION“COMMAND_ZUOCAPTION“COMMAND_YOUCAPTION“ENDSUBPRIVATESUBPANDUAN1DOUNTILMSCOMMINBUFFERCOUNT1等待接受数据DOEVENTSLOOPRECIVEMSCOMMINPUTZHENGHEXRECIVE0DOUNTILMSCOMMINBUFFERCOUNT1等待接受数据DOEVENTSLOOPRECIVEMSCOMMINPUTXIAOHEXRECIVE0LABEL6CAPTIONVALZHENGVALXIAO001LABEL4CAPTION“ENDSUBPRIVATESUBKONGENDSUBPRIVATESUBCHUANKOUENDSUBPRIVATESUBQINGKONG停止函数MSCOMMOUTBUFFERCOUNT0清空发送缓存MSCOMMOUTPUTSEND0发送停止命令ENDSUB(2)KEILC程序代码INCLUDEINCLUDEINCLUDEINCLUDEDEFINEUINTUNSIGNEDINTDEFINEUCHARUNSIGNEDCHARDEFINEBIT00X01DEFINEBIT70X80DEFINEDATA7BUFDEFINETXBUF_LEN4UCHARTXBUFTXBUF_LEN0X00,0X00,0X00,0X00CODETXADDRESS40XCC,0XCC,0XCC,0XCCUINTREDATA,SENDATAUCHARBUF,FASONGSBITCSNP14SBITMOSIP13SBITCDP11SBITPWRP10SBITTXENP00SBITSCKP17SBITMISOP16SBITAMP15SBITTRX_CEP01SBITDRP12SBITLED1P20/NRF905控制指令DEFINEWC0X00DEFINERC0X10DEFINEWTP0X20DEFINERTP0X21DEFINEWTA0X22DEFINERTA0X23DEFINERRP0X24/NRF905寄存器配置UCHARRFCONF110X00,0X4C,0X0C,0X44,0X04,0X04,0XCC,0XCC,0XCC,0XCC,0X58,/向PC串口发送数据VOIDSEND_CHARUCHARXYZSBUFXYZWHILETI0TI0/串口通信初始化VOIDINITSCON0X50/REN1允许串行接受状态,串口工作模式TMOD0X20/定时器工作方式PCON0X80TH10XFATL10XFATR11ES1/开串口中断EA1/开总中断/延时VOIDDELAYINTNUINTIWHILENFORI0I1等待接受数据DOEVENTSLOOPRECIVEMSCOMMINPUTIFRECIVE0255THENMSCOMMOUTBUFFERCOUNT0清空发送缓存区DOUNTILMSCOMMINBUFFERCOUNT1等待接受数据DOEVENTSLOOPRECIVEMSCOMMINPUTLABEL6CAPTIONHEXRECIVE0LABEL4CAPTION“TEXT2TEXTHEXRECIVE0MSCOMMOUTBUFFERCOUNT0清空发送缓存区DOUNTILMSCOMMINBUFFERCOUNT1等待接受数据DOEVENTSLOOPRECIVEMSCOMMINPUTLABEL6CAPTIONHEXRECIVE0LABEL4CAPTION“TEXT3TEXTHEXRECIVE0ENDIFWENDENDIFENDIFENDSUBPRIVATESUBCOMMAND_CAIJI2_CLICKENDSUBPRIVATESUBCOMMAND_DENGGUANG_CLICK灯光函数IFMSCOMMPORTOPENFALSETHENXMSGBOX“请打开串口“,16ELSEMSCOMMOUTBUFFERCOUNT0清空发送缓存区DENG1DENGMOD2IFDENG10THEN判断灯的状态,并进行操作FORJ1TO5MSCOMMOUTPUTSEND5FORI1TO2000NEXTNEXTCALLCAIJI采集信息ELSEFORJ1TO5MSCOMMOUTPUTSEND6FORI1TO2000NEXTNEXTCALLCAIJIENDIFDENGDENG1ENDIFENDSUBPRIVATESUBCOMMAND_SHANG_CLICK控制函数前进IFMSCOMMPORTOPENFALSETHENXMSGBOX“请打开串口“,16ELSEMSCOMMOUTBUFFERCOUNT0FORJ1TO5MSCOMMOUTPUTSEND3FORI1TO2000NEXTNEXTENDIFENDSUBPRIVATESUBCOMMAND_TINGZHI_CLICK控制函数停止IFMSCOMMPORTOPENFALSETHENXMSGBOX“请打开串口“,16ELSEMSCOMMOUTBUFFERCOUNT0FORJ1TO5MSCOMMOUTPUTSEND0FORI1TO2000NEXTNEXTENDIFENDSUBPRIVATESUBCOMMAND_XIA_CLICK控制函数后退IFMSCOMMPORTOPENFALSETHENXMSGBOX“请打开串口“,16ELSEMSCOMMOUTBUFFERCOUNT0FORJ1TO5MSCOMMOUTPUTSEND4FORI1TO2000NEXTNEXTENDIFENDSUBPRIVATESUBCOMMAND_YOU_CLICK控制函数右IFMSCOMMPORTOPENFALSETHENXMSGBOX“请打开串口“,16ELSEMSCOMMOUTBUFFERCOUNT0FORJ1TO5MSCOMMOUTPUTSEND2FORI1TO2000NEXTNEXTENDIFENDSUBPRIVATESUBCOMMAND_ZUO_CLICK控制函数左IFMSCOMMPORTOPENFALSETHENXMSGBOX“请打开串口“,16ELSEMSCOMMOUTBUFFERCOUNT0FORJ1TO5MSCOMMOUTPUTSEND1FORI1TO2000NEXTNEXTENDIFENDSUBPRIVATESUBCOMMAND1_CLICKACOMBO1TEXTKAI1KAIMOD2IFKAI10THEN判断灯的状态,并进行操作MSCOMMCOMMPORTA设置串口MSCOMMSETTINGS“9600,N,8,1“波特率4800BPS,无校验,8位数据,1位停止位MSCOMMINPUTLEN0读取接收缓冲区的所有字符MSCOMMINBUFFERSIZE1024设置接收缓冲区为1024字节MSCOMMOUTBUFFERSIZE512设置发送缓冲区为512字节MSCOMMINPUTMODECOMINPUTMODEBINARY二进制方式发送MSCOMMSTHRESHOLD0不触发发送事件MSCOMMINBUFFERCOUNT0清除发送缓冲区数据MSCOMMOUTBUFFERCOUNT0清除接收缓冲区数据IFMSCOMMPORTOPENFALSETHENONERRORGOTOERR1MSCOMMPORTOPENTRUE打开串口COMMAND1CAPTION“串口已开启“ENDIFELSEIFMSCOMMPORTOPENTRUETHENMSCOMMPORTOPENFALSE串口关闭COMMAND1CAPTION“串口已关闭“ENDIFENDIFERR1IFERRNUMBER8002THENXMSGBOX“端口不存在,请选择正确串口号“,16KAIKAI1ENDIFKAIKAI1ENDSUBPRIVATESUBCOMMAND2_CLICKIFMSCOMMPORTOPENTRUETHENMSCOMMPORTOPENFALSEENDIFENDENDSUBPRIVATESUBFORM_LOAD初始化SEND10STR4MMSTR5DSTR6STR10HSTR7MSTR8SSTR9PRINT1,PRINT1,STR1,LABEL5CAPTIONSTR10LABEL6CAPTIONSTR11LABEL4CAPTIONPRINT1,STR2,“TEXT3PRINT1,XPRINT1,“_“CLOSE1ENDSUBPRIVATESUBTIMER1_TIMER时间函数LABEL7CAPTIONTIMEENDSUBPRIVATESUBCAIJI附加采集函数,验证发送DOUNTILMSCOMMINBUFFERCOUNT1等待数据DOEVENTSLOOPRECIVEMSCOMMINPUT接收数据LABEL6CAPTIONHEXRECIVE0MSCOMMINBUFFERCOUNT0ENDSUBPRIVATESUBJIANPAN_KEYDOWNKEYCODEASINTEGER,SHIFTASINTEGER键盘控制事件按下SELECTCASEKEYCODE选择相应操作CASEVBKEYWCALLCOMMAND_SHANG_CLICKCASEVBKEYSCALLCOMMAND_XIA_CLICKCASEVBKEYACALLCOMMAND_ZUO_CLICKCASEVBKEYDCALLCOMMAND_YOU_CLICKCASEVBKEYQCALLCOMMAND_DENGGUANG_CLICKCASEVBKEYECALLCOMMAND_TINGZHI_CLICKCASEVBKEY1CALLCOMMAND_CAIJI1_CLICKCASEVBKEY4CALLSAVE_CLICKCASEVBKEYRCALLRES_CLICKENDSELECTENDSUBPRIVATESUBJIANPAN_KEYUPKEYCODEASINTEGER,SHIFTASINTEGER键盘控制事件放开SELECTCASEKEYCODE选择相应操作CASEVBKEYWCALLQINGKONGCASEVBKEYSCALLQINGKONGCASEVBKEYACALLQINGKONGCASEVBKEYDCALLQINGKONGCASEVBKEYQCALLCAIJICASEVBKEYECALLQINGKONGENDSELECTENDSUBPRIVATESUBJIANPAN_GOTFOCUS设置键盘控制按钮属性得到焦点JIANPANCAPTION“键盘控制已开启“COMMAND_SHANGCAPTION“W“COMMAND_XIACAPTION“S“COMMAND_ZUOCAPTION“A“COMMAND_YOUCAPTION“D“ENDSUBPRIVATESUBJIANPAN_LOSTFOCUS设置键盘控制按钮属性失去焦点JIANPANCAPTION“键盘控制已关闭“COMMAND_SHANGCAPTION“COMMAND_XIACAPTION“COMMAND_ZUOCAPTION“COMMAND_YOUCAPTION“ENDSUBPRIVATESUBPANDUAN1DOUNTILMSCOMMINBUFFERCOUNT1等待接受数据DOEVENTSLOOPRECIVEMSCOMMINPUTZHENGHEXRECIVE0DOUNTILMSCOMMINBUFFERCOUNT1等待接受数据DOEVENTSLOOPRECIVEMSCOMMINPUTXIAOHEXRECIVE0LABEL6CAPTIONVALZHENGVALXIAO001LABEL4CAPTION“ENDSUBPRIVATESUBKONGENDSUBPRIVATESUBCHUANKOUENDSUBPRIVATESUBQINGKONG停止函数MSCOMMOUTBUFFERCOUNT0清空发送缓存MSCOMMOUTPUTSEND0发送停止命令ENDSUB附录2上位机单片机控制程序INCLUDEINCLUDEINCLUDEINCLUDE/DEFINEUINTUNSIGNEDINTDEFINEUCHARUNSIGNEDCHAR/DEFINEBYTE_BIT00X01DEFINEBYTE_BIT70X80/BDATAUNSIGNEDCHARDATA_BUFDEFINEDATA7DATA_BUFSBITFLAG1DATA_BUF0BITFLAGS/发送数据缓冲区DEFINERXBUF_LEN4UNSIGNEDCHARRXBUFRXBUF_LEN0X00,0X00,0X00,0X00DEFINETXBUF_LEN4UNSIGNEDCHARTXBUFTXBUF_LEN0X00,0X00,0X00,0X00CODETXADDRESS40XCC,0XCC,0XCC,0XCC/NRF905工作模式控制端口SBITCSNP15SBITMOSIP14SBITCDP12SBITPWRP11SBITTXENP10SBITSCKP17SBITMISOP16SBITAMP20SBITTRX_CEP21SBITDRP13SBITLED1P00/NRF905控制指令DEFINEWC0X00DEFINERC0X10DEFINEWTP0X20DEFINERTP0X21DEFINEWTA0X22DEFINERTA0X23DEFINERRP0X24/NRF905寄存器配置UNSIGNEDCHARIDATARFCONF110X00,/配置命令/0X4C,/CH_NO,配置频段在MHZ0X0C,/输出功率为DB,不重发,节电为正常模式0X44,/地址宽度设置,为字节0X04,0X04,/接收发送有效数据长度为字节0XCC,0XCC,0XCC,0XCC,/接收地址0X58,/CRC充许,位CRC校验,外部时钟信号不使能,M晶振UINTREDATA/向PC串口发送数据/VOIDSEND_CHARUCHARXYZ/像电脑发送SBUF中的数据将XYZ写入SBUF寄存器中,通过串口传送给电脑程序ET00SBUFXYZWHILETI0TI0ET01/串口通信初始化/VOIDINITSCON0X50/REN1允许串行接受状态,串口工作模式TMOD|0X20/定时器工作方式PCON|0X80TH10XFA/BAUD2/RELOADVALUE9600、数据位、停止位。效验位无110592/TH10XF9/BAUD2/波特率、数据位、停止位。效验位无12MTL10XFATR11ES1/开串口中断EA1/开总中断/延时VOIDNRF905_DELAYINTNUINTIWHILENFORI0I650US/设置接收初始化VOIDSETRXMODEVOIDTXEN0TRX_CE1NRF905_DELAY1/NRF905_DELAYFORMODECHANGE650US/判断数据接收状态/UNSIGNEDCHARCHECKDRVOID/检查是否有新数据传入DATAREADYDR1/通过对端口写,可以使端口为输入状态,这的特性。不熟悉者可以参阅相关书籍作证将DR端口设置为输入状态。IFDR1DR0RETURN1ELSERETURN0/读NRF905接收数据VOIDRXPACKETVOIDUCHARINRF905_DELAY1/TRX_CE0/SETNRF905INSTANDBYMODENRF905_DELAY100TRX_CE0CSN0/SPIENABLEFORWRITEASPICOMMANDNRF905_DELAY1SPIWRITERRPFORI0IINCLUDEINCLUDEINCLUDEDEFINEU8UNSIGNEDCHARDEFINES8SIGNEDCHARDEFINEU16UNSIGNEDINTDEFINES16SIGNEDINTDEFINEU32UNSIGNEDLONGDEFINES32SIGNEDLONGDEFINEF32FLOATDEFINEF64DOUBLE/DEFINEUINTUNSIGNEDINTDEFINEUCHARUNSIGNEDCHAR/DEFINEBYTE_BIT00X01DEFINEBYTE_BIT70X80/BDATAUNSIGNEDCHARDATA_BUFDEFINEDATA7DATA_BUFU8U8FLAG,KU8U8COUNT,U8TEMPU8U8T_DATA_H,U8T_DATA_L,U8RH_DATA_H,U8RH_DATA_L,U8CHECKDATA,U8CHECKDATABUFU8U8T_DATA_H_TEMP,U8T_DATA_L_TEMP,U8RH_DAT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 景区服务质量安全培训课件
- 2025年阜阳界首市“政录企用”人才引进8人模拟试卷及答案详解(夺冠)
- 什么是保险合同的宽限期、中止期、终止期5篇
- 高校教师资格证考试历年真题汇编
- 2025安徽黄山市黄山区消防救援大队政府专职消防员招聘2人考前自测高频考点模拟试题及答案详解(易错题)
- 建筑工程安全施工管理
- 农业机械化节能技术研究-洞察及研究
- 社交媒体营销对摄影工作室盈利的影响-洞察及研究
- 2025湖南娄底市冷水江市城发实业有限公司招聘实验室试验员3人考前自测高频考点模拟试题附答案详解(考试直接用)
- 人工智能辅助禽类疾病精准治疗-洞察及研究
- 2025影视演出经纪居间合同正规范本
- 对外投资管理知识培训
- 《早读是需要激情的!》主题班会课件
- 道闸操作安全培训课件
- 普惠金融赋能乡村振兴的实践探索和政策建议-福建省安溪县为例
- 2025年质量月知识竞赛题库(附答案)
- 酒店电气使用安全培训课件
- 生猪订购合同书范本3篇
- 2025年妇产科学科宫颈癌筛查常见问题考试答案及解析
- 耕地占用税培训课件
- 110kV变电站及110kV输电线路运维投标技术方案
评论
0/150
提交评论