黄山学院
课程设计说明书 专 业: 自 动 化
班 级: 12自动化 卓越班、2班 学生姓名:周 振 刘东风 卢雄建 指导教师:钱 庆 文
成 绩:
2014年 12 月
日 18
课 程 设 计 任 务 书
2014年12月18 日
第一章 绪论
在课程设计选题的时候,我们组对其他的课题也不是很了解,于是就随机抽选了一个课题——“蓝牙转串口控制与应用”。
在拿到相应的硬件的时候,我们也是一片茫然,甚至不知道其中硬件的名称及其内部的原理;于是,我们无从下手,唯一能做的只有对课程设计过程中的困惑与不解不断地查资料,从网上搜索、下载相关的知识。慢慢的,我们逐渐了解整个课程设计的大致内容以及所要查找的相关知识点,正所谓有的放矢。虽然说,接下来的工作稍微顺利点;但是,毕竟我们对相关的硬件还不是很了解,因而对一步一步的设计还是有一定的困难。
从一开始的单片机最小系统到陌生的蓝牙模块,以及它们之间的配对通讯,都是一点一点地了解,慢慢吃透它们之间的关系和所要执行的内容。当然,对于最小系统,我们并不陌生,因为在我们专业课上也多次接触单片机最小系统以及他为内部的结构原理。由于不同硬件之间所支持的电平水平也是不尽相同,主要体现在串口线上,从标准的RS232电平到TTL电平的转换就是通过串口线实现的。以及对电平转换线内部的芯片MAX232我们也有相关的了解和掌握,这也仅仅是设计过程中获得的拓展知识之一。
因此,我们不仅仅是在做课程设计,我认为我们也是在进一步学习单片机,掌握蓝牙模块,同时了解基础的一些实践操作基本知识。期间,我们在陌生的蓝牙模块上面投入的精力相对多一点,通过其他一些途径了解hc05的一些相关知识和原理,然后但后来繁琐的工作模式的切换。蓝牙模块(主从一体)有两种工作模式:正常工作模式和AT设置模式。在正常工作模式下,模块可以与其他蓝牙设备进行配对通讯,进行数据的传输。其次,在一定条件下,模块进入到AT设置模式,在设置模式下,模块有三种工作状态(主机、从机、回环模式)可以进行切换。同时可以设置相应的蓝牙模块的名称,重新设置模块的波特率,更改配对密码„„
在课程设计中,我们也可以了解其他的相关知识,不仅仅是单片机知识、蓝牙模块知识,更多的是解决事情的方式与想问题的角度。其次,还有一些在实践操作中的基本知识:有色电阻值的判定、电容的其他作用、以及硬件之间的通信协议和相应的电平转换知识;同时,也积累了一些特殊芯片的相关知识。
从整个课程设计的过程来看,我们需要掌握的大致知识点有:单片机最小系统、蓝牙模块(HC-05主从一体)、串口线的四个引脚功能(VCC、GND、RXD、TXD)、以及一些相应的软件C51程序开发环境keil、串口调试助手、程序烧录软件STC_ISP等等。掌握这些知识之后,我们才能够可以顺利完成整个课程设计的实践操作。
第二章 单元电路设计、参数计算和器件的选择
1.单片机最小系统:
单片机最小系统或者成为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般包括:单片机、晶振电路、复位电路。有些最小系统还包括电源部分的简单滤波电路。
其中,在本课程设计中,主要用到单片机数据引脚P3.0(RXD)与P3.1(TXD)。
(1)复位电路:
由电容串联电阻组成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平;并且,这个高电平持续的时间由RC值来决定。典型的51单片机当RST脚的高电平持续时间两个机器周期以上就将复位。所以,适当组合RC的值就可以保证可靠的复位。一般教科书推荐C取10uF,R取8.2K。当然也有其他取法的,原则就是要让RC组合可以再RST引脚上产生不少于2个机器周期的高电平。至于具体定量计算,可以参考电路相关书籍。
单片机复位电路好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。
(2)晶振电路:
典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合。)和12MHz(产生精确的uS级时歇,方便定时操作。)
(3)单片机:
一片STC89C52或其他51系列兼容单片机应该特别注意的是:对于31脚(EA/Vpp),当接高电平时,单片机在复位后优先从内部ROM的0000H开始执行,当内部内存不够时,会从外部ROM开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行。
2.蓝牙模块HC-05(主从一体):
主是发送信号,从是接收信号,主从一体就是可发送接收信号。
主模块和从模块都可以发送和接收,它们都是双向的;不同之处在于主模块可以发起搜索,搜索其他的从模块,而主模块不会被搜索到;从模块可以被
主模块搜索到,但是,从模块不能发起搜索来搜索其他模块;一般来说是这样的,主从和从主之间可以通信,而从从和主主之间是不能通信的。
*注意:(对于两个蓝牙模块,一主一从时,当主模块附近存在从模块时并且配对密码一致时,主从模块将自动配对,当存在多个从模块时,则随机配对;下次上电后,主模块将只连接之前与之配对的从模块,因此即使多模块同时使用也不会干扰。)
温馨提示:请勿电源接到信号脚上,会直接烧坏模块。 HC-05嵌入式蓝牙串口通讯模块(以下简称模块)具有两种工作模式:命令响应工作模式和自动连接工作模式,在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;当模块处于命令响应工作模式时能执行下述所有AT命令,用户可向模块发送各种AT指令,为模块设定控制参数或发布控制命令。通过控制模块外部引脚(PIO11)输入电平,可以实现模块工作状态的动态转换。
自收自发:正常通信时RXD接其他设备的TXD,因此如果要接收自己发送的数据顾名思义,也就是自己接收自己发送的数据,即自身的TXD直接连接到RXD,用来测试本身的发送和接收是否正常,是最快最简单的测试方法,当出现问题时首先做该测试确定是否产品故障。也称回环测试。
(一) 模块参数:
1.PCB尺寸:37.3(长)*15.5(宽);
2.重量:3.5克;
3.输入电压:3.6V~6V,禁止超过7V;
4.电源防反接,接反模块不工作;
5.引出6个脚:EN/VCC/GND/RXD/TXD/STATE(蓝牙状态引出脚,未连接配对时输
出低电平,配对连接后输出高电平。)
6.模块上有连接状态指示灯LED,LED灯快闪表示没有蓝牙连接配对;LED慢闪表示进入AT命令模式;LED间隔快闪表示连接状态。
7.板载3.3V稳压芯片,输入电压3.6V~6V;未配对时,电流约30mA(因led闪烁,电流处于变化状态);配对成功后,电流大约10mA。这个电流与串口通信频繁程度成正比,如果单位时间内的数据通信量越大,电流则越高;反之,单位时间内的数据通信量越小,电流越低(接近配对未通信的电流)。
8.接口电平3.3V,可以直接连接各种单片机(Arduino/51单片机/AVR/PIC/ARM/MSP430等等),5V单片机也可以直接连接。直接连接单片机串口,不能经过MAX232芯片。
9.空旷地带有效传输距离10米,也有可能超过10米。
10.配对成功以后,可以作为全双工串口使用。无需了解任何蓝牙协议,但只支持8位数据位、1位停止位、无奇偶校验的通信格式。这也是最常用的通信格式,不支持其它格式! 11.按下按键再给蓝牙模块通电可以进入AT模式,设置参数和查询信息。
12.可以通过AT命令切换主机和从机模式。
13.模块默认波特率为9600、默认配对密码为1234、默认名称为HC-05。 注意:
模块上的状态指示灯有三种不同的状态便于判断模块状态——
1.在模块上电的同时(也可以是上电之前),将EN端置高电平(接VCC),此时STATE慢闪(1秒亮1次),模块进入AT设置状态;
2.在模块上电的时候,将EN(有的模块则是AT/KEY)端悬空或接GND,此时,STATE快闪(1秒2次),表示模块进入可配对状态。如果此时将EN端再拉高,模块也会进入AT状态,但是STATE依旧保持快闪。 3.模块配对成功后,此时STATE双闪(一次闪2下,2秒闪一次)。
(二)接线方法:
VCC:接电源正极;
GND:接电源负极;
RXD:接收端,蓝牙模块接收从其它设备发来的数据;正常情况接其它设备的发送端TXD。
TXD:发送端,蓝牙模块发送数据给其它设备;正常情况接其它设备的接收端RXD。
EN:使能端,需要进入AT模式时接3.3V。
(三)蓝牙模块的AT设置:
一般,蓝牙模块的AT模式设置的方法大致有三种:
一.默认设置;
二.用USB转UART模块设置; 三.用带有蓝牙设置的主控制器串口程序进行设置。 第一:默认设置:
模块工作角色:从模式
串口参数:9600bits/s 停止位 1位 无校验位
配对密码:1234
设备名称:HC-05
连接模式:任意连接地址
第二:用USB to UART模块设置(本课程设计中的主从切换就是用这种方法) 蓝牙与USB转串口模块连接方式,RXD-TXD TXD-RXD VCC-VCC GND-GND
要设置蓝牙AT指令,必须让PIO11引脚置高电平,然后接上蓝牙模块,当蓝牙模块变为慢闪时,则表明已经进入AT模式。(将蓝牙模块与串口模块对插)这时候将串口模块与电脑连接,打开电脑的串口调试助手便可以进行设置AT模式。
第三:用Arduino配置蓝牙AT指令
步骤一 给Arduino下载程序
#define AT 2
#define LED 13
void setup()
{
pinMode(LED,OUTPUT);
pinMode(AT,OUTPUT);
digitalWrite(AT,HIGH);
Serial.begin(38400);//这里应该和你的模块通信波特率一致
delay(100);
Serial.println("AT");
delay(100);
Serial.println("AT+NAME=OPENJUMPER-Bluetooth");//命名模块名
delay(100);
Serial.println("AT+ROLE=0");//设置主从模式:0从机,1主机
delay(100);
Serial.println("AT+PSWD=1234");//设置配对密码,如1234
delay(100);
Serial.println("AT+UART=9600,0,0");//设置波特率9600,停止位1,校验位无 delay(100);
Serial.println("AT+RMAAD");//清空配对列表
}
void loop()
{
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
步骤二 蓝牙与Arduino连线RXD-TXD TXD-RXD VCC-VCC
GND-GND EN-高电平(当很多传感器拓展板带有蓝牙接口,则可以直接将蓝牙插在拓展板接口上,不用麻烦连线。)
步骤三 按下Arduino的复位键,让程序开始运行一次,当发现板载led灯500ms闪烁时则表明已设置成功。
3.PL2303 USB转串口程序下载线(USB转TTL线):
PL2303 是Prolific 公司生产的一种高度集成的RS232-USB 接口转换器,可提供一个RS232 全双工异步串行通信装置与USB 功能接口便利联接的解决方案。PL2303 的高兼容驱动可在大多操作系统上模拟成传统COM 端口,并允许基于COM 端口应用可方便地转换成USB接口应用,通讯波特率高达6Mb/s。
(一)产品特性: 1.完全符合USB规范2.0(全速兼容)
2.片内拥有USB 1.1收发器,12 MHz的晶体振荡器
3.支持RS232这样的串行接口
4.全双工发送器和接收器(TxD和RxD)
5.奇偶错误,帧错误和串行中断检测
6.外部的RS232驱动下降控制
7.独立的串行接口电源
8.提供支持Windows和Mac OS,Linux和WinCE的驱动程序 9. 具有专为Windows XP驱动程序认证的标志 10. 该IC是SSOP封装的小尺寸28引脚
(二)PL2303引脚:
VCC(红色)——5V电源正极 GND(黑色)——电源地线
RXD(白色或黄色)——串口数据输入引脚 TXD(绿色)——串口数据输出引脚 与单片机连接方式:
RXD(白色)——连接单片机的TXD(单片机的数据输出)引脚 TXD(绿色)——连接单片机的RXD(单片机的数据输入)引脚 GND(黑色)——对地(GND对GND) VCC(红色)——对正极(VCC对VCC)
4.LED灯:
本课程设计中,就是利用蓝牙与单片机的通讯向单片机发送指令,进而控制LED灯的亮灭状态变化。
即外加一拓展设备LED灯,通过编程烧录到单片机内部,进而来根据接收到的信号来判定下一步的执行,即控制LED灯的亮灭。当然,根据自己的兴趣,都可以通过编程来控制不同的外围设备像步进电机(编程控制转速以及它的正转反转)、舵机(旋转角度的多少)„„
第三章 课程设计相应电路原理
1.模块的电路原理图:
图中KEY引脚与LED引脚分别对应本课程设计中蓝牙模块的EN引脚和STATE引脚。
2.软件程序:
/*用手机蓝牙控制led灯的亮灭*/ #include
#define uint unsigned int unsigned char flag,a,i;
unsigned char code table1[]="light on!"; unsigned char code table2[]="light off!"; //sbit led0=P1^2; void Delay() void main() {
a=0;/*初始化。。。。。。。*/
TMOD=0x20;/*设置定时器1工作方式2*/ TH1=0xfd; TL1=0xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; while(1) {
if(flag==1) {
if(a=="a") /*输入字符a,串口反馈显示“light on!*/
{
ES=0; flag=0;
for(i=0;i
SBUF=table1[i];
while(!TI); TI=0; } ES=1;
Delay(50000);
P1=0xfe; //赋初始值
for(i=0;i
Delay(50000); P1
//led0=0; }
else /*light off!"led灭*/ {
ES=0; flag=0;
for(i=0;i
SBUF=table2[i];
while(!TI); TI=0; } ES=1;
led0=1; } } } }
void ser() interrupt 4 //注意:程序运行时,先会无条件进行一次中断。 { RI=0; a=SBUF; flag=1; }
void Delay(uint t)/*延时程序*/ {
while(--t); }
3.整个课程设计:
USB转串口模块、单片机最小系统、终端串口设备、蓝牙模块主、从机。
由上图设计图示明显可以大致了解整个课程设计的原理以及相应的硬件结构,通过USB转串口模块连接电脑,另一端连接蓝牙主模块(或从模块);而另一个蓝牙从(或主模块)模块连接带有串口的目标设备单片机。首先,将已经编译好的程序(能够控制单片机外围的设备)烧录到单片机内部,从电脑端发送指令经过蓝牙主模块发送数据,进而蓝牙从模块接收数据提供给单片机,单片机经过程序进而执行相应的指令来控制单片机外围的设备。
课程设计总结与体会:
经过不断地调试与检测,最终我们终于完成了单片机与蓝牙模块之间的通讯
并控制单片机。通过两个蓝牙模块的连接配对,实现蓝牙模块间的数据传输;本课程设计中,一主一从,主模块向从模块传输数据发送数据信号,从模块接受数据经过连接的单片机,来控制外围LED灯亮闪。
通过此次课程设计,使我更加扎实的掌握了有关单片机方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵,不再是一味的理论。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终迈向检测调试环节,直到后来的成果。这次课程设计终于顺利完成了,在设计中遇到了很多问题,但经过我们不懈的努力与执着一个个困惑被解开。当然,在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可! 课程设计诚然是一门专业课最后的检测方式,给我们很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多悟,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了电阻的识别和多种软件的使用;熟悉了相应的电平转换知识;进一步了解了单片机的硬件结构;以及如何提高发现问题并解决问题的能力等等。
我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很。这多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情,有了兴趣才会有源源不断的动力。
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从实践中得出结论,才能真正将所学的知识服务于生活;因此,提高自己的实际动手能力和独立思考的能力是我们必须做到的。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
致 谢 !
参考文献:
1.周国运主编.《单片机原理及应用教程(C语言版)》 中国水利水电出版社
2. 宏晶科技 STC Microcontroller Handbook, 2007 3. 谭浩强. C程序设计. 北京:人民邮电出版社
4. 宏晶科技. STC89C5xRC/RD+系列单片机器件手册,2006 5. 周国运主编. 微机原理与接口技术. 北京:机械工业出版社,2011 6. 严紫建、刘元安著. Bluetooth蓝牙技术. 北京邮电大学出版社
黄山学院
课程设计说明书 专 业: 自 动 化
班 级: 12自动化 卓越班、2班 学生姓名:周 振 刘东风 卢雄建 指导教师:钱 庆 文
成 绩:
2014年 12 月
日 18
课 程 设 计 任 务 书
2014年12月18 日
第一章 绪论
在课程设计选题的时候,我们组对其他的课题也不是很了解,于是就随机抽选了一个课题——“蓝牙转串口控制与应用”。
在拿到相应的硬件的时候,我们也是一片茫然,甚至不知道其中硬件的名称及其内部的原理;于是,我们无从下手,唯一能做的只有对课程设计过程中的困惑与不解不断地查资料,从网上搜索、下载相关的知识。慢慢的,我们逐渐了解整个课程设计的大致内容以及所要查找的相关知识点,正所谓有的放矢。虽然说,接下来的工作稍微顺利点;但是,毕竟我们对相关的硬件还不是很了解,因而对一步一步的设计还是有一定的困难。
从一开始的单片机最小系统到陌生的蓝牙模块,以及它们之间的配对通讯,都是一点一点地了解,慢慢吃透它们之间的关系和所要执行的内容。当然,对于最小系统,我们并不陌生,因为在我们专业课上也多次接触单片机最小系统以及他为内部的结构原理。由于不同硬件之间所支持的电平水平也是不尽相同,主要体现在串口线上,从标准的RS232电平到TTL电平的转换就是通过串口线实现的。以及对电平转换线内部的芯片MAX232我们也有相关的了解和掌握,这也仅仅是设计过程中获得的拓展知识之一。
因此,我们不仅仅是在做课程设计,我认为我们也是在进一步学习单片机,掌握蓝牙模块,同时了解基础的一些实践操作基本知识。期间,我们在陌生的蓝牙模块上面投入的精力相对多一点,通过其他一些途径了解hc05的一些相关知识和原理,然后但后来繁琐的工作模式的切换。蓝牙模块(主从一体)有两种工作模式:正常工作模式和AT设置模式。在正常工作模式下,模块可以与其他蓝牙设备进行配对通讯,进行数据的传输。其次,在一定条件下,模块进入到AT设置模式,在设置模式下,模块有三种工作状态(主机、从机、回环模式)可以进行切换。同时可以设置相应的蓝牙模块的名称,重新设置模块的波特率,更改配对密码„„
在课程设计中,我们也可以了解其他的相关知识,不仅仅是单片机知识、蓝牙模块知识,更多的是解决事情的方式与想问题的角度。其次,还有一些在实践操作中的基本知识:有色电阻值的判定、电容的其他作用、以及硬件之间的通信协议和相应的电平转换知识;同时,也积累了一些特殊芯片的相关知识。
从整个课程设计的过程来看,我们需要掌握的大致知识点有:单片机最小系统、蓝牙模块(HC-05主从一体)、串口线的四个引脚功能(VCC、GND、RXD、TXD)、以及一些相应的软件C51程序开发环境keil、串口调试助手、程序烧录软件STC_ISP等等。掌握这些知识之后,我们才能够可以顺利完成整个课程设计的实践操作。
第二章 单元电路设计、参数计算和器件的选择
1.单片机最小系统:
单片机最小系统或者成为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般包括:单片机、晶振电路、复位电路。有些最小系统还包括电源部分的简单滤波电路。
其中,在本课程设计中,主要用到单片机数据引脚P3.0(RXD)与P3.1(TXD)。
(1)复位电路:
由电容串联电阻组成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平;并且,这个高电平持续的时间由RC值来决定。典型的51单片机当RST脚的高电平持续时间两个机器周期以上就将复位。所以,适当组合RC的值就可以保证可靠的复位。一般教科书推荐C取10uF,R取8.2K。当然也有其他取法的,原则就是要让RC组合可以再RST引脚上产生不少于2个机器周期的高电平。至于具体定量计算,可以参考电路相关书籍。
单片机复位电路好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。
(2)晶振电路:
典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合。)和12MHz(产生精确的uS级时歇,方便定时操作。)
(3)单片机:
一片STC89C52或其他51系列兼容单片机应该特别注意的是:对于31脚(EA/Vpp),当接高电平时,单片机在复位后优先从内部ROM的0000H开始执行,当内部内存不够时,会从外部ROM开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行。
2.蓝牙模块HC-05(主从一体):
主是发送信号,从是接收信号,主从一体就是可发送接收信号。
主模块和从模块都可以发送和接收,它们都是双向的;不同之处在于主模块可以发起搜索,搜索其他的从模块,而主模块不会被搜索到;从模块可以被
主模块搜索到,但是,从模块不能发起搜索来搜索其他模块;一般来说是这样的,主从和从主之间可以通信,而从从和主主之间是不能通信的。
*注意:(对于两个蓝牙模块,一主一从时,当主模块附近存在从模块时并且配对密码一致时,主从模块将自动配对,当存在多个从模块时,则随机配对;下次上电后,主模块将只连接之前与之配对的从模块,因此即使多模块同时使用也不会干扰。)
温馨提示:请勿电源接到信号脚上,会直接烧坏模块。 HC-05嵌入式蓝牙串口通讯模块(以下简称模块)具有两种工作模式:命令响应工作模式和自动连接工作模式,在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;当模块处于命令响应工作模式时能执行下述所有AT命令,用户可向模块发送各种AT指令,为模块设定控制参数或发布控制命令。通过控制模块外部引脚(PIO11)输入电平,可以实现模块工作状态的动态转换。
自收自发:正常通信时RXD接其他设备的TXD,因此如果要接收自己发送的数据顾名思义,也就是自己接收自己发送的数据,即自身的TXD直接连接到RXD,用来测试本身的发送和接收是否正常,是最快最简单的测试方法,当出现问题时首先做该测试确定是否产品故障。也称回环测试。
(一) 模块参数:
1.PCB尺寸:37.3(长)*15.5(宽);
2.重量:3.5克;
3.输入电压:3.6V~6V,禁止超过7V;
4.电源防反接,接反模块不工作;
5.引出6个脚:EN/VCC/GND/RXD/TXD/STATE(蓝牙状态引出脚,未连接配对时输
出低电平,配对连接后输出高电平。)
6.模块上有连接状态指示灯LED,LED灯快闪表示没有蓝牙连接配对;LED慢闪表示进入AT命令模式;LED间隔快闪表示连接状态。
7.板载3.3V稳压芯片,输入电压3.6V~6V;未配对时,电流约30mA(因led闪烁,电流处于变化状态);配对成功后,电流大约10mA。这个电流与串口通信频繁程度成正比,如果单位时间内的数据通信量越大,电流则越高;反之,单位时间内的数据通信量越小,电流越低(接近配对未通信的电流)。
8.接口电平3.3V,可以直接连接各种单片机(Arduino/51单片机/AVR/PIC/ARM/MSP430等等),5V单片机也可以直接连接。直接连接单片机串口,不能经过MAX232芯片。
9.空旷地带有效传输距离10米,也有可能超过10米。
10.配对成功以后,可以作为全双工串口使用。无需了解任何蓝牙协议,但只支持8位数据位、1位停止位、无奇偶校验的通信格式。这也是最常用的通信格式,不支持其它格式! 11.按下按键再给蓝牙模块通电可以进入AT模式,设置参数和查询信息。
12.可以通过AT命令切换主机和从机模式。
13.模块默认波特率为9600、默认配对密码为1234、默认名称为HC-05。 注意:
模块上的状态指示灯有三种不同的状态便于判断模块状态——
1.在模块上电的同时(也可以是上电之前),将EN端置高电平(接VCC),此时STATE慢闪(1秒亮1次),模块进入AT设置状态;
2.在模块上电的时候,将EN(有的模块则是AT/KEY)端悬空或接GND,此时,STATE快闪(1秒2次),表示模块进入可配对状态。如果此时将EN端再拉高,模块也会进入AT状态,但是STATE依旧保持快闪。 3.模块配对成功后,此时STATE双闪(一次闪2下,2秒闪一次)。
(二)接线方法:
VCC:接电源正极;
GND:接电源负极;
RXD:接收端,蓝牙模块接收从其它设备发来的数据;正常情况接其它设备的发送端TXD。
TXD:发送端,蓝牙模块发送数据给其它设备;正常情况接其它设备的接收端RXD。
EN:使能端,需要进入AT模式时接3.3V。
(三)蓝牙模块的AT设置:
一般,蓝牙模块的AT模式设置的方法大致有三种:
一.默认设置;
二.用USB转UART模块设置; 三.用带有蓝牙设置的主控制器串口程序进行设置。 第一:默认设置:
模块工作角色:从模式
串口参数:9600bits/s 停止位 1位 无校验位
配对密码:1234
设备名称:HC-05
连接模式:任意连接地址
第二:用USB to UART模块设置(本课程设计中的主从切换就是用这种方法) 蓝牙与USB转串口模块连接方式,RXD-TXD TXD-RXD VCC-VCC GND-GND
要设置蓝牙AT指令,必须让PIO11引脚置高电平,然后接上蓝牙模块,当蓝牙模块变为慢闪时,则表明已经进入AT模式。(将蓝牙模块与串口模块对插)这时候将串口模块与电脑连接,打开电脑的串口调试助手便可以进行设置AT模式。
第三:用Arduino配置蓝牙AT指令
步骤一 给Arduino下载程序
#define AT 2
#define LED 13
void setup()
{
pinMode(LED,OUTPUT);
pinMode(AT,OUTPUT);
digitalWrite(AT,HIGH);
Serial.begin(38400);//这里应该和你的模块通信波特率一致
delay(100);
Serial.println("AT");
delay(100);
Serial.println("AT+NAME=OPENJUMPER-Bluetooth");//命名模块名
delay(100);
Serial.println("AT+ROLE=0");//设置主从模式:0从机,1主机
delay(100);
Serial.println("AT+PSWD=1234");//设置配对密码,如1234
delay(100);
Serial.println("AT+UART=9600,0,0");//设置波特率9600,停止位1,校验位无 delay(100);
Serial.println("AT+RMAAD");//清空配对列表
}
void loop()
{
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
步骤二 蓝牙与Arduino连线RXD-TXD TXD-RXD VCC-VCC
GND-GND EN-高电平(当很多传感器拓展板带有蓝牙接口,则可以直接将蓝牙插在拓展板接口上,不用麻烦连线。)
步骤三 按下Arduino的复位键,让程序开始运行一次,当发现板载led灯500ms闪烁时则表明已设置成功。
3.PL2303 USB转串口程序下载线(USB转TTL线):
PL2303 是Prolific 公司生产的一种高度集成的RS232-USB 接口转换器,可提供一个RS232 全双工异步串行通信装置与USB 功能接口便利联接的解决方案。PL2303 的高兼容驱动可在大多操作系统上模拟成传统COM 端口,并允许基于COM 端口应用可方便地转换成USB接口应用,通讯波特率高达6Mb/s。
(一)产品特性: 1.完全符合USB规范2.0(全速兼容)
2.片内拥有USB 1.1收发器,12 MHz的晶体振荡器
3.支持RS232这样的串行接口
4.全双工发送器和接收器(TxD和RxD)
5.奇偶错误,帧错误和串行中断检测
6.外部的RS232驱动下降控制
7.独立的串行接口电源
8.提供支持Windows和Mac OS,Linux和WinCE的驱动程序 9. 具有专为Windows XP驱动程序认证的标志 10. 该IC是SSOP封装的小尺寸28引脚
(二)PL2303引脚:
VCC(红色)——5V电源正极 GND(黑色)——电源地线
RXD(白色或黄色)——串口数据输入引脚 TXD(绿色)——串口数据输出引脚 与单片机连接方式:
RXD(白色)——连接单片机的TXD(单片机的数据输出)引脚 TXD(绿色)——连接单片机的RXD(单片机的数据输入)引脚 GND(黑色)——对地(GND对GND) VCC(红色)——对正极(VCC对VCC)
4.LED灯:
本课程设计中,就是利用蓝牙与单片机的通讯向单片机发送指令,进而控制LED灯的亮灭状态变化。
即外加一拓展设备LED灯,通过编程烧录到单片机内部,进而来根据接收到的信号来判定下一步的执行,即控制LED灯的亮灭。当然,根据自己的兴趣,都可以通过编程来控制不同的外围设备像步进电机(编程控制转速以及它的正转反转)、舵机(旋转角度的多少)„„
第三章 课程设计相应电路原理
1.模块的电路原理图:
图中KEY引脚与LED引脚分别对应本课程设计中蓝牙模块的EN引脚和STATE引脚。
2.软件程序:
/*用手机蓝牙控制led灯的亮灭*/ #include
#define uint unsigned int unsigned char flag,a,i;
unsigned char code table1[]="light on!"; unsigned char code table2[]="light off!"; //sbit led0=P1^2; void Delay() void main() {
a=0;/*初始化。。。。。。。*/
TMOD=0x20;/*设置定时器1工作方式2*/ TH1=0xfd; TL1=0xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; while(1) {
if(flag==1) {
if(a=="a") /*输入字符a,串口反馈显示“light on!*/
{
ES=0; flag=0;
for(i=0;i
SBUF=table1[i];
while(!TI); TI=0; } ES=1;
Delay(50000);
P1=0xfe; //赋初始值
for(i=0;i
Delay(50000); P1
//led0=0; }
else /*light off!"led灭*/ {
ES=0; flag=0;
for(i=0;i
SBUF=table2[i];
while(!TI); TI=0; } ES=1;
led0=1; } } } }
void ser() interrupt 4 //注意:程序运行时,先会无条件进行一次中断。 { RI=0; a=SBUF; flag=1; }
void Delay(uint t)/*延时程序*/ {
while(--t); }
3.整个课程设计:
USB转串口模块、单片机最小系统、终端串口设备、蓝牙模块主、从机。
由上图设计图示明显可以大致了解整个课程设计的原理以及相应的硬件结构,通过USB转串口模块连接电脑,另一端连接蓝牙主模块(或从模块);而另一个蓝牙从(或主模块)模块连接带有串口的目标设备单片机。首先,将已经编译好的程序(能够控制单片机外围的设备)烧录到单片机内部,从电脑端发送指令经过蓝牙主模块发送数据,进而蓝牙从模块接收数据提供给单片机,单片机经过程序进而执行相应的指令来控制单片机外围的设备。
课程设计总结与体会:
经过不断地调试与检测,最终我们终于完成了单片机与蓝牙模块之间的通讯
并控制单片机。通过两个蓝牙模块的连接配对,实现蓝牙模块间的数据传输;本课程设计中,一主一从,主模块向从模块传输数据发送数据信号,从模块接受数据经过连接的单片机,来控制外围LED灯亮闪。
通过此次课程设计,使我更加扎实的掌握了有关单片机方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵,不再是一味的理论。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终迈向检测调试环节,直到后来的成果。这次课程设计终于顺利完成了,在设计中遇到了很多问题,但经过我们不懈的努力与执着一个个困惑被解开。当然,在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可! 课程设计诚然是一门专业课最后的检测方式,给我们很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多悟,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了电阻的识别和多种软件的使用;熟悉了相应的电平转换知识;进一步了解了单片机的硬件结构;以及如何提高发现问题并解决问题的能力等等。
我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很。这多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情,有了兴趣才会有源源不断的动力。
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从实践中得出结论,才能真正将所学的知识服务于生活;因此,提高自己的实际动手能力和独立思考的能力是我们必须做到的。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
致 谢 !
参考文献:
1.周国运主编.《单片机原理及应用教程(C语言版)》 中国水利水电出版社
2. 宏晶科技 STC Microcontroller Handbook, 2007 3. 谭浩强. C程序设计. 北京:人民邮电出版社
4. 宏晶科技. STC89C5xRC/RD+系列单片机器件手册,2006 5. 周国运主编. 微机原理与接口技术. 北京:机械工业出版社,2011 6. 严紫建、刘元安著. Bluetooth蓝牙技术. 北京邮电大学出版社