蓝牙智能遥控小车毕业设计论文 - 图文 下载本文

江苏理工学院毕业设计论文

第五章 蓝牙遥控小车程序设计

在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件更为重要。在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。 5.1主程序设计

开始各模块初始化开串口中断发送欢迎标语检测是否有障碍Y停车并返回字符串提示N定时器中断程序流程图N检测串口是否有数据NY判断接受数据定时器1中断每隔1S中断一次根据不同的数据返回相应的提示字符串并驱动小车停车等待根据公式计算速度将速度值发送到上位机

将速度值转化为字符串格式发送到缓存区

图5.1 主程序流程图 图5.2 定时器中断流程图

第24页 共55页

江苏理工学院毕业设计论文

程序见附录B

图5.1为蓝牙遥控小车的程序流程图,从图中可以看出,小车可以实现蓝牙遥控功能,且在小车行驶过程中,自动检测障碍并提示控制人员。也可以自动测试行驶速度,将速度值送至上位机显示。

在主程序中最主要的一段程序是串口通讯程序,串口通讯函数如下例程1,单片机的串口通讯是为了实现上位机与下位机的数据传输,单片机是通过管脚RXD和管脚TXD与外界通讯的,SUBF是串行口的缓冲寄存器,单片机与上位机的通信数据都是临时存放在SUBF寄存器中的,通过软件的读写操作就可以实现单片机与外设之间的数据通讯了。

串口通讯的初始化主要是对SCON、TCON、TMOD、IE几个寄存器的设置; SCON SM0 SM1 SM2 SM3 REN TB8 RB8 TI RI 串行口控制寄存器 定时器/计数器控制寄存器 定时器/计数器工作方式设置寄存器 中断允许控制寄存器 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TMOD GATE C/T M1 M0 GATE C/T M1 M0 IE

EX0 ET0 EX1 ET1 ES ET2 -- EA 示例程序1:

void Send_Char(unsigned char DATA) {

ES=0;//关闭串口中断

flag1=0;

SBUF=DATA; //将数据发送出去,可以在电脑串口工具的接收区观察 while(!TI);//数据发送完毕之后,T1会置1 TI=0;

ES=1;//重新允许串口中断 }

第25页 共55页

江苏理工学院毕业设计论文

5.2电脑端蓝牙控制软件的设置

软件的设置:1设置波特率,串口号,数据位,停止位,校验位;

2绑定键值;

3设置发送间隔(一般设置在19ms内,收发数据会稳定些); 4开始监听键盘;

图5.3 上位机软件设计

运行电脑上的控制端,打开软件后,设置以上参数后,这里主要是设置按键的绑定值:W绑定十六进制0X33,0X33在程序中对应的是前进标志符;A绑定十六进制0X11,0X11在程序中对应的是左转标志符;D绑定十六进制0X22,0X22在程序中对应的是右转标志符;S绑定十六进制0X44,0X44在程序中对应的是后退标志符;设置完参数后点击开始,数据接收界面时会显示欢迎信息,提示已经入蓝牙控制模式。此时该软件就会通过蓝牙与小车连接,这时就可以随心所欲的遥控小车了(当然遥控距离有限制)。

第26页 共55页

江苏理工学院毕业设计论文

5.3蓝牙模块参数设置

通过串口通讯软件和AT指令对蓝牙主从模块参数经行设置,先上电,然后手动按下AT Mode按钮,进入后Status灯慢闪。这时就可以对蓝牙模块的参数经行自定义设置了:

1、设置配对密码:命令格式【AT+PSWD=<4位密码>】,查询当前密码格式【发送AT+PSWD?】

2、设置串口参数:命令格式【AT+UART=<波特率?>,<几位停止位?>,<几位校验位?>】,查询当前串口参数【发送AT+UART?】

3、模块主从机设置:命令格式【AT+ROLE=<0或1或2>】,查询当前蓝牙模块角色【AT+ROLE?】

0:从机(Slave),被动连接。

1:主机(Master),主动搜索周围的蓝牙从机,并发起连接。和从机连接成功之后便建立起了一条透明的数据传输通道。

2:回环:被动连接,接收远程蓝牙主设备数据并将数据原样返回给远程蓝牙主设备。

4、修改模块名称:命令格式【AT+NAME=<蓝牙模块的名称>】,查询蓝牙模块名称【AT+NAME?】

第27页 共55页