基于蓝牙的智能遥控小车设计与实现.docx
基于蓝牙的智能遥控小车设计与实现摘要在21世纪这个信息化时代,随着科技的不断发展、物联网的逐渐兴起,网络技术 与汽车工业已经成为人类生活中不可或缺的重要组成部分。近年来,无线智能控制小车 也一直作为各大高校研究的对象,在历年的全国电子设计大赛中,毎每都会涉及这方面 的问题,可见其研究意义远大。在这个一切都将趋于智能化的时代,无线遥控技术的应 用越来越广泛,无线遥控可实现对目标对象的远程控制,这一技术给人类的生活带来了 极大地便利。本次牢业设计为一种通过蓝牙技术遥控小车动作的软硬件设计实现,本次设计了共 分为三种控制方式,分别为PC机与蓝牙从机进行通讯(QT作为图形界面),Android 手机与蓝牙从机进行通信,蓝牙主从机之间的相互通信(本论文中详细介绍此种通讯方 式)。小车上的蓝牙模块作为服务端,采用STC89C52RC单片机进行控制,双方通过蓝 牙串口进行通信,主板上设有自制的驱动电路模块,单片机驱动直流电机控制小车的动 作。蓝牙接收端接收信号,分别通过与PC端的蓝牙,手机的蓝牙、和主从机之间的配 对连接,从而接收从PC机、手机、HC-06主机发送来的动作指令。单片机对接收到的 指令进行分析,以调用相应的子函数来实现对小车的行动状态进行相应的控制,实验调 试实现小车的无线遥控等功能。关键词:STC89C52RC, STC12C5A60S2.智能小车,QT,蓝牙通信Design and Implementation of Bluetooth SmartRemote Control CarAbstractIn this information age of the 21st century, with the continuous development of technology, the gradual rise of the Internet of Things, network technology and the automotive industry has become an important part of human life indispensable. In recent years, wireless intelligent control car has also been the object of study as major universities. In the calendar year of the National Electronic Design Competition, it will often involve problems in this area. We can see its significance. Everything in this era will become intelligent, wireless remote control technology applied more widely, wireless remote control can be realized on the target object's remote control, and this technology brings to human life greatly facilitated.The graduation design of a car traveling through Bluetooth remote control hardware and software design and implementation, and the design is divided into three control methods, namely the PC to communicate with the Bluetooth slave (QT as a graphical interface). Android phones with a Bluetooth slave communication Bluetooth communication between the master from each other. Small car Bluetooth module as a server, using STC89C52RC MCU control, the two sides communicate via Bluetooth serial port, using a homemade driver circuit module, microcontroller-driven DC motor control car action on the motherboard. Bluetooth receiver module, respectively, through the end of the PC Bluetooth, Bluetooth phone, and pairing master-slave connection between machines, so that the receiver sent from the PC, phone, HC-06 host to the action command. SCM docking instructions received were analyzed to call the appropriate subroutine to achieve the action corresponding state control. Experimental realization car wireless remote and so on.Key words:STC89C52RC,STC 12C5 A60S2,IntelligentCar,QT, BluetoothCommunication摘要IABSTRACTII第1章项目概述11.1项目背景11.2项目简介113应用范围1第2章项目实施方案22-1概述22.2开发环境3第3章硬件设计43.1系统硬件框图43.2系统硬件电路设计43.2.1单片机最小系统电路设计43.2.2驱动电路设计63.2.3电源模块的电路设计83.2.4显示模块的电路设计103.2.5蓝牙模块设计113.2.6遥控模块设计123.2.7 QT界面应用12第4章软件设计134.1软件系统框图134.1.1总体设计134.1.2主机具体流程134.1.3 从机具体流程144.1.4 QT界面设计144.2主要程序代码154.2.1主机主板电路主要代码154.2.2从机主板电路主要代码154.2.3应用软件QT主要代码16第5章项目调试175.1硬件调试175.1.1调试步骤175.1.2调试中出现的问题、解决的方法及注意事项175.2软件调试185.2.1单片机代码调试185.2.2 QT代码调试185.3整体调试19第6章项目成果206.1硬件成果物206.1.1控制端成果物206.1.2接收端成果物206.2软件成果物21第7章结论22参考文献23致谢24附录25ITn项目概述在21世纪这个信息化时代,随着科技的不断发展、物联网的逐渐兴起,网络技术 与汽车工业已经成为人类生活中不可或缺的重要组成部分。近年来,无线智能控制小车 也一直作为各大高校研究的对象,在历年的全国电子设计大赛中,每每都会涉及这方面 的问题,可见其研究意义远大。在这个一切都将趋于智能化的时代,无线遥控技术的应 用越来越广泛,无线遥控可实现对目标对象的远程控制,这一技术给人类的生活带来了 极大地便利。1.1项目背景随着计算机信息技术的不断发展,智能化技术开发的速度也随之越来越快,智能化 逐渐成为发展的主流方向,大到科研领域,小到智能家居,与此同时,遥控技术就显得 尤为重要。在刚刚结束的实践学期中,我们小组完成了一款多功能的智能小车,可实现 小车的基本行驶、调速、红外遥控、避障、灭火、1602显示等功能,在这次项目中,有 一些想法并没有付诸实现,不免有些遗憾。例如,遥控分为很多种,包括蓝牙、红外、 和射频,实践学期项目采用的是红外遥控,这种方式射程近,而且发射和接受管有一定 接受的范围,因此,我想对其加以改进,作为本次毕业设计的基础,同时也是对实践学 期项目的进一步完善,本次毕业设计就是在这样的背景下提出的。1.2项目简介本次设计为一种通过蓝牙遥控小车行走的软硬件设计实现,共设计了三种控制方式, 分别为PC机与蓝牙从机进行通讯(QT作为图形界面),Android手机与蓝牙从机进行 通信,蓝牙主从机之间的相互通信。小车上的蓝牙模块HC-06作为服务端,采用 STC89C52RC单片机进行控制,双方通过蓝牙串口进行通信,主板上设有采用L298N驱 动芯片自制的驱动电路模块,单片机驱动直流电机控制小车的动作。HC-06为蓝牙接收 模块,分别通过与PC端的蓝牙,手机的蓝牙、和主从机之间的配对连接,从而接收从PC 机、手机、HC-06 ±机发送来的动作指令。单片机对接收到的指令进行分析,以调用相 应的子函数来实现对小车的行动状态进行相应的控制,实现小车的前进、后退、左转、 右转、鸣笛、转向灯等等。1.3应用范围遥控玩具,智能家居第2章项目实施方案2.1概述实现遥控的方式有很多,在本次设计中,共设计了三种遥控方式。分别为蓝牙主从 机之间的相互通信,PC机与蓝牙从机进行通讯(QT作为图形界面),Android手机与蓝 牙从机进行通信。1. 具体方案(1) 蓝牙主从机之间的相互通信通过蓝牙主机电路板与从机电路板之间的通信来实现对小车的遥控。(2) PC机与蓝牙从机进行通讯利用PC机上自定义的QT界面来实现对小车的遥控。(3) Android手机与蓝牙从机进行通信通过Android手机下的小车控制软件来实现对小车的遥控。(这里详细介绍第一种方案)2. 设计主要内容(1) 对STC89C52RC. STC12C5A60S2单片机的了解及应用主要包括:单片机最小系统的设计(晶振电路、复位电路)、单片机外围电路设计 以及程序设计。(2) L298N电机驱动芯片的应用用于控制直流电机。(3) 蓝牙芯片的应用主要包括:蓝牙主机芯片的使用,蓝牙从机芯片的使用,对小车进行控制,扩展其 功能,使其更加趋向于智能化。(4) LCD显示屏的应用采用1602显示屏显示当前小车的状态。(5) 摇杆的应用控制小车工作状态。3. 机型器件选择(1) 主控芯片该项目采用单片机作为整个系统的核心,用于控制小车。针对本设计的特点,应用 到两款单片机,蓝牙主机板上,由于需要用到模拟信号转换,为了使用方便,所以选用 STC12C5A60S2这款单片机对整个电路进行控制。而蓝牙从机板,无需进行A/D、D/A 转换,且不能用过于精简的I/O 口的单片机,综合考虑,由于STC系列单片机具有51 单片机内核,并且价格便宜,便于程序的下载,所以采用STC89C52RC型号单片机。 这种方案是一种较为理想的方案。(2) 电源模块对于一个控制系统来说,电源模块是极其重要的。因此,针对电源模块,经过对整 个系统的分析,该系统需要为电机驱动模块和单片机模块提供电压信号。其中,单片机 模块部分器件需要接5V电压,电机驱动模块需要接4.5V到7.2V电压。由于电路中不 同的电路模块所需要的工作电压和电流容量不同,所以电源模块需包含多个稳压电路, 将电池电压转换成各个模块所需要的电压。为了满足系统要求的几种电压信号,本设计 中初步我们采用将7.2V和6.5V电池组电源电压通过LM2576稳压芯片进行降压,稳压。(3) 驱动模块驱动模块有三种实现方法,分别是直流电机,步进电机和舵机。因为直流电机接口 简单且容易购买,所以我们小组选用直流电机,并且选用L298N电机驱动芯片对电机 进行控制。(4) 蓝牙通信模块蓝牙通信模块有很多种,本次毕业设计中,基于对实验需求及环境的总体考虑,我 采用HC-06蓝牙主从机进行通信。(5) 揺杆控制模块实现对小车的控制方式有很多种,例如摇杆、按键等等,为了使控制更加便捷、舒 适,本次毕业设计中,我选用摇杆的方式控制小车。(6) 显示模块常用的数码显示器器件主要有LED数码显示器和LCD液晶显示器oLCD显示器具 有散热小、低功耗、屏幕调节方便等特点,同时用途广,价格相当,在这里,我们选用 1602液晶显示器进行小车状态的显示,由单片机的总线模式连接。2.2开发环境硬件环境:64位机,自制电路板软件环境:windows 7, Keil C51, Qt Creator, Android 控制平台第3章硬件设计3.1系统硬件框图本项目是基于单片机的智能遥控小车,设计共分为两部分,小车控制端部分设计和 小车接受端部分设计。本次项目的硬件部分主要由以下几个模块组成。即两个单片机最 小系统模块、电压转换模块、遥杆控制模块、车灯照明电路、电机驱动电路、液晶显示 电路等。小车控制端部分硬件设计如图2.1所示。图2.1蓝牙从机模块硬件电路设计小车接收端部分硬件设计如图2.2所示。摇杆控制模块1602显示模块单片机最小系统蓝牙主机模块电压转换模块图2.2蓝牙主机模块硬件电路设计3-2系统硬件电路设计3.2.1単片机景小系统电路设计I. 原理图本次设计中,单片机最小系统部分包括单片机的引脚电路、复位电路、晶振电捋、外部电源的连接应用等, 其原理图如图3.1所示.VCCR510KRSTP110 Pill P112P113FnrPl 15PM6pirRS1C430pONDP33O,:P332P333 .,P335P336P337 rinxiHz C530p 4=?1P1.02P1.1VCC 40PO.O 393P1.2P0.1 384P1.3P0.2 375P1 4P0.3 366 Pl .5P0.4 357 Pl .6P0.5 348 Pl.7 Q DQTP0.6 33DA 7 177 IXO 110RXDrv* /,一EA3111TXDALE 3012 INTOPSEN 2913 INTT1 J THP2.7 28X 1 v1ST1rXtP rP2.5 2616 WRP2.4 2517丽P2.3 2418XTAL2P2.2 2319XTALIP2.1 2220 GNDP2.0 21MCU89SS2vccJTPOOPPOOPOP2POP3POO4POOS P006JOIPOOO1POP1P002P003J4P004<POOSJP006V7P00*T8|VCC崩 2GNDALE PSENp空P224 P次3P222P220JUPHO12345678PillPl 12P113P114P115Pl 16P117S1P8-2.图3.1单片机最小系统原理图2. 单片机型号的选择针对本次毕业设计的特点,在设计实施过程中,采用了两款不同的单片机,分别是STC89C52RC 和 STC12C5A6OS2.(1)小车蓝牙接收端由于STC系列单片机貝有51系列单片机的内核,STC89C52这款单片机内部有8K的F1ASH程序存储器和512B的数据存储器,不仅不需要外扩程序存储器和数据存储器.而H价格便宜,程序能够很方便的卜载,n冇可以反攵擦除的特点,同时,因为实现本 次设计功能的程序不超过8K,这款单片机足以满足小车接收端蓝牙接收应用的基本要 求,所以本次设计,小车端部分我釆用STC89C52RC型号单片机。STC89C52RC单片机引脚拝列及功能如图3.2所示。1P1 0VCC 402P1.1PO O 393P1.2P0 1384P1.3P0.2 375P1.4PO3 366P1.5P0 4 357P1.6P0.5 348P1.7P0.6 339RSTP07 321QRXDEA31UT?O ALE 3012INT0PSEN 29IJINf?P"2814 TOP2 6 2*15 T1P2 5 2616 VjP2 4 2517 RDP2 3 2418XTAL2 P2 2 2319XTAL1 P2 1 2220 GNDP2 0 21图3.2 STC89C52RC单片机引脚排列及功能该单片机共有40个引脚、32可编程I/O线、两个16位定时器/计数器、5个中断源.(2)小车蓝牙控制端STC12C5A60S2系列单片机是一款具有速度高、低功耗、并且同时具有超强的抗干 扰能力的新一代51单片机,该系列单片机指令代码与传统的湘51完全兼容,但是速度 提升了 812倍.内部集成MAX81。专用复位电路,2路PWM, 8路高速10位A/D转 换.STC12C5A60S2单片机引脚拝列及功能见图3.3所示。1 Pl O.ADCOCLKOUT2VCC 402PLI.WCIPO.O 393PI 2ADC2ECIRXD2P0 I 384P1 3 ADC3CPPO TxD2P0 J375PL4ADC4CPP1SSP0.3 366PI 5 .WC5MOSIP0 4 357PL6 ADC6MSOP0.5 348PL7 ADC7 SCLKP0 6 339P4 7 RSTP0 7 3210 INT RxD P3.0 EX LVD P4 6 RST2 J111 P3 ITxDALEP4 5 3012P3.2 匝)NAP4 4 2913P3.3T1P2.7/A15 2«14P3 4TKTCLKOUTO 15P3SINTCLKOUTIP2 6 AI4 27P2 SAI J 2616P36WDP2 4 A12 2517P3.7RDP23A11 2418XTAL2P2.2/A10 2319XT.U1P2.PA9 2220 GNDP2.0 A8 21图3.3 STC12C5A60S2单片机引脚排列及功能STC12C5A60S2系列单片机内部结构完善,STC12C5A60S2单片机中包含了 CPU、 程序存储器、数据存储器、定时/计数器、UART串口、串口 2、I/O 口、A/D转换、SPI 接口、PCA、看门狗和片内R/C振荡器、外部振荡电路等模块。STC12C5A60S2系列单 片机可称得上一个片上系统,它几乎包含了数据采集和控制中需要的所有单元模块。3.2.2驱动电路设计该模块主要芯片L298,其可以同时控制两个电机的正反转,以及改变电机的转速, 足以满足设计要求。1. 原理图驱动电路主要用于控制电机,采用LM298N作为核心单元,通过INI、IN2、IN3、 IN4、EN1、ENB传递信号给驱动板,以控制电机的正反转,其原理图设计如图3.4所图3.4驱动电路原理图2. 芯片描述(1)L298芯片描述1) L298是集成在15引脚MULTIWATT封装和PowerSO20封装上的一个集成 单片电路。2) 高电压,高电流的双通道全桥驱动。3) 接受标准TTL逻辑电平并且驱动感性负载,如继电器,直流和步进电机。4) 两个使能输入提供独立的输入信号,以启用或禁用该设备。a. 每个桥的下部晶体管的发射极连接在一起,可用于外部感应电阻的连接的 相应的外部端子。b. 提供一个额外的电源输入,从而使逻辑工作在更低的电压环境下。(2) L298芯片管脚说明芯片管脚说明见表3.1。表3.1 L298芯片管脚说明引脚号码管擲名说明1;15传感器A;传感器B该引脚与地之间连接检测电阻控制电流的负载2;3输出A;输出B桥A的输出;引脚1通过这两个引脚之冋连接的负载 所流过的电流被进行检测4电源非感性lOOnF的电容必须被连接在该引脚与地之间5;7输出1;输出2桥A为7TL兼容输入6;11使能端A;使能端BTTL兼容使能输入:L状态禁用桥A (使能A)和/或桥B (使能B)8地接地9逻辑电源电压电源电压的逻辑块。AlOOnF电容必须被连接在该引 脚与地之间10;12输入3;输入4桥B为TTL兼容输入13;14输出3;输出4桥B的输出;引脚15通过这两个引脚之间连接的负裁 所流过的电流被进行监测无连接无连接(3) L298芯片控制方式1)当Enable=O时,INI, IN2为任何值,电机均停转。2)当Enable=l时,电机工作状态见表3.2。表3.2 L298芯片控制方式电机1电机2电机1电机2小车运行状态IN1IN2IN3IN41010正转正转前行1001正转反转左转1000正转停以左电机为中心原地左转0110反转正转右转0010停正转以右电机为中心原地右转010I反转反转后退1111刹停刹停立刻停止323电源模块的电路设计目前,系统需要为电机驱动模块和单片机模块提供电压信号。其中单片机模块部分 器件需要接5V电压,电机驱动模块需要接4.5V到7.2V电压该模块主要芯片L298,其 可以同时控制两个电机的正反转,以及改变电机的转速。为了满足系统要求的几种电压 信号,本设计中初步采用将7.2V电源电压通过LM2576稳压芯片进行降压,稳压。电 路主要通过二极管和稳压二极管实现。1. 原理图电源电路主要用于为其他电路提供其所需要的电压,在该模块中,采用LM2576作 为核心单元,原理图如图3.5所示。图3.5电源模块原理图2. 芯片描述(1)LM2576芯片作用LM2576稳压器是单片集成电路,能够提供降压开关稳压器的各种功能,也能驱动3A 的负载,有优异的线性和负载调整能力,这类器件的固定输出电压有3.3V,5V,12V,15V, 还有调整的型号。(2)LM2576芯片特点1)3.3V, 5V, 12V, 15V和调节输岀的电压型号2)可调节输出电压型号,输出电压范围在线性和负载条件下1.2337V(HV 型号57V)最大正负4%3)保证3.0A输出电流4)输入电压范围广,40V到HV型号的60V5)只需要4个外部元器件的支持6)52kHz固定频率内部振荡器7)TTL关断能力,低功耗待机8)效率高9)使用标准现成的可用电感10)热关断能力,电流限制保护(3)LM2576芯片管脚LM2576芯片管脚说明见表3.3。表3.3 LM2576芯片管脚说明煎管脚名说明VlN正电源输入为减小输入的瞬态电压和调节器提供的开关电流,此 管脚应接旁路电容VOUT开关输出端输出高电压为(VinVsat)GND电路地端FEEDBACK反愤端ON/OFF待机端低电平有效(4)LM2576芯片部分应用1)简单高效的降压稳压器2)线性稳压器的高效稳压器3)卡上开关稳压器4)正到负的变换器5)负升压变换器6)为电池充电器做电源3.2.4显示模块的电路设计基于实验应用的基本要求,本次项目采用14脚的1602型号的LCD显示器,用来显 示小车遥控状态的相关数据。1. 原理图显示模块原理图如图3.6所示。2 二 n m Wr-1091图3.6显示模块原理图2. 芯片描述(1) LCDI602芯片管脚LCD 1602芯片管脚定义见表3.4。表3.4 LCDI602芯片管脚定义引脚号码管脚名说明1Vss接地2VddLCD模块逻辑电路电源(+5V)3VoLCD面板明亮度调节4RSRS=1,处理数据RS=O,处理指令5R/WR/W=l,读取 LCMR/W=0,写入 LCM6E使能信号7DBO总线8DB1总线9DB2总线10DB3总线11DB4总线12DBS总线13DB6总线14DB7总线15A背光LED正编16K背光LED负端(2) LCD 1602芯片工作原理LCD 1602显示器的DO到D8接口分别依次接在单片机的P0 口上,RS引脚高电平 输入时输入数据,低电平输入时输入指令,接在单片机的P2.0 口。RW引脚低电平输入 时向LCD写入指令或数据,高电平输入时从LCD读取信息,接在单片机P2.1 口。E引 脚使能信号,高电平输入时读取信息,高电平向低电平转换时执行指令,接在单片机的 P2.2 口。3.2.5蓝牙模块设计该模块采用HC系类蓝牙产品,此蓝牙串口模块用于把窗口模块转换为蓝牙,这种 模块工作的时候分为主机和从机,其中偶数命名的型号出厂时就确定了是主机还是从机, 并且无法进行更改。由于HC-06的指令比较少,操作简单,价格便宜,本次毕业设计中, 我采用这款芯片。1.模块描述(1) HC-06模块基本描述采用CSR主流蓝牙芯片,蓝牙V2.0协议标准、波特率默认出厂9600,用户可设置、 串口模块工作电压3.3V、工作电流,配对中为30MA,配对完毕通信中为8MA、可以 与带蓝牙笔记本电脑、电脑加上蓝牙适配器、PDA等设备进行无缝连接。(2) HC-06 管脚HC-06管脚定义见表3.5。表3.5 HC-06芯片管脚定义引画名说明PIN1UART TXD, TTL/CMOS电平,串口发送引脚PIN2UART RXD. TTL/CMOS电平,串口接收引脚PIN 11复位引脚,低电平复位,可不接PIN12VCC.典型值3.3V,可以工作于3.1-4.2V之间PIN13GNDPIN22GNDP1N24LED.工作状态指示灯从机:配对完毕前输出周期为102ms的方波,配对完毕后输出1主机:无记忆从机配对信息情况下,配对完毕前输出110ms周期的方波, 有记忆从机配对信息的情况下,配对完毕前输出750ms周期的方波,配对 完毕后输出1PIN26主机用于清空主机对从机的配对信息,清空之后,主机将随机搜索从机, 配对后将记忆从机地址,下次开机将只搜索该地址的从机2.模块详细说明HC-06原则上只要接上UART_TXD、UART_RXD、VCC、GND这四根线就能够 正常工作了。其中,3.3V单片机TXD接到HC-06的UART_RXD、3.3V单片机RXD接到HC-06 的UART_TXD、接上3.3V电源和地,就算最小系统接线完成了。3.2.6遥控模块设计本次设计中,综合设计的想法,决定应用Arduino双轴按键摇杆。1. 芯片描述2012年最新PS2双轴按键游戏摇杆模块采用SONY公司PS2游戏手柄上原装优质 金属按键摇杆电位器,模块特设二路模拟输出和一路数字输出接口,输出值分别对应 (X. Y)双轴偏移量,其类型为模拟量:按键表示用户是否在Z轴上按下,其类型为 数字开关量。模块集成电源指示灯,可显示工作状态:坐标标识符淸晰简明、准确定位 用其可以轻松控制物体(如二自由度舵机云台)在二维空间运动,因此可以通过Arduino 控制器编程,传感器扩展板插接,完成具有创意性遥控互动作品。(部分内容摘自该产 品介绍)2, 功能特点(1) 优质揺杆,使用寿命长,性能稳定(2) 两路模拟量输出,一路数字量输出(3) X,Y轴输出为两个电位器,可以通过AD转换读出扭动角度(4) 向下按揺杆,可以出动一路轻触开关,为数字输出,已上拉(5) 适用于两自由度舵机云台控制或者其他遥控比例控制(6) 适用于arduino平台,兼容arduino传感器接口3.2.7 QT界面应用本次使用Qt图形化界而进行本实验方案二的开发。Qt是一个跨平台的C+应用程 序开发框架。广泛的用于开发GUI程序,也可用于开发非GUI程序。Qt具有良好封装机 制,这使Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。 并且它具有丰富的API、支持2D/3D图形渲染、支持OpenGL:拥有大量的开发文档、XML 支持;具有Webkit引擎的集成,可以实现本地界面与Web内容的无缝集成。第4章软件设计4.1软件系统框图根据对需要所能实现功能的分析,确定本次毕业设计主要包括以下流程及功能模块。4.1.1总体设计软件总体设计流程如图4. 1所示。遥控器车图4.1总体设计流程4.1.2主机具体流程主机具体设计流程如图4.2所示。图4.2主机设计流程4.1.3从机具体流程从机具体设计流程如图4.3所示。图4.3从机设计流程4.1.4 QT界面设计Qt Creator是一个用于Qt开发的轻量级跨平台集成开发环境。本次设计的图形化界 而如图4.4所示。图4.4 Qt小车控制界面4.2主要程序代码4.2.1主机主板电路主要代码#includc <STC12C5A60S2.h>/单片机应用头文件#includc<math.h> 数学函数头文件include "I602.h" /1602 H编头文件#include "AD.h" Z/AD 转换头文件#includc "send_data.h" 串 口命令头文件*主函数*time_init(); /定时器初始化 init_1602(); /1602 初始化AD_inil(); /AD 初始化 goloxy(U);fbrtj=0J<12;j+)«Tite_LCD_data(tabig); 向 LCD 写入相应数据 while(I)gct_ad(); 采集AD,当前状态 gotoxy(0,9);fbr(j=0;j<6y+)writc_LCD_data(lab2j);gotoxy(0,I );fbr(j=0:j<6j+)writc_LCD_data(tabj); scnd_order(); 发送命令4.2.2从机主板电路主要代码#includc<rcg52.h> 単片机头文件 #includc<math.h> 数学函数头文件sbit IN1=P2A4; 定义电机1引脚sbit IN2 = P2T; 定义电机1另一引脚sbit IN3 = P2A6;定义电机2引脚sbit 1N4 = P2"7; 定义电机2另一引脚 sbit EN1 = Pl人3; 定义电机1使能端sbit EN2 = P1A4; 定义电机2使能端bit flag_REC=O;定义标志位bit flag = 0;* 匕函 数*whilc(l) 主函数、进入while循环iRflag_REC=l) 判断标志位flag_REC=O: 标志位置0if(buftI0=,O'&&bufiII=) 第一个字节为O,第二个字节为N,第三个字节为控制码 switch(buftI2)对采集的状态进行比对、并执行下面命令case 'A': stop();LED3=l ;LED2= 1 ;LED 1=1 ;LED4=1 ;break; /小车停止状态,灯均灭 case 'B,: Motor( 1 ,-60);Motor(2,60);LED3= 1;LED2=1;LED 1 =0;LED4=0;break;case T: Motor( 1,-100);Motor(2,-100);LED3=0;LED2=0;LED =0;LED4=0;break;case V:buzzcr=O:brcak; 蜂鸣器关case 'W':buzzcr=l;brcak; 蜂鸣器开caseX:LEDLED;brcak; 车前方大灯状态4.2.3应用软件QT主要代码* 头文件 *#includc "widgct.h"#includc "ui_widget.h" /图形界面头文件*主函数*Widgct:Widgcl(QWidgct *parent): 构造函数初始化 QWidgct(parcnt).ui(new Ui:Widgcl)ui->sctupUi(this);setWindowTitle(frC智能小车控制软件”);ui->closcMyComBtn->sctEnablcd(false); / 开始“关闭串口"按钮不可用ui->FOREARD->setEnablcd(false); 向前按钮不可用ui->BACK->sctEnabled( false); ui->LEFT->sc 正 nablcd 传 Ise); ui->RIGHT->sctEnablcd(false); ui->S