基于单片机的蓝牙传输_第1页
基于单片机的蓝牙传输_第2页
基于单片机的蓝牙传输_第3页
基于单片机的蓝牙传输_第4页
基于单片机的蓝牙传输_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的蓝牙传输简易无线数据收发设计赛项报告日期:二〇一五年五月三十一日摘要本设计以STC89C52单片机为控制核心。经蓝牙模块实现无线连接,发送数据和接收数据,通过LCD1602显示接收的数据和编辑发送的数据,两个单片机通过内部程序实现实时接收、发送和显示,从而完成相关要关键字:控制;无线连接;接收;发送;显示LCDLCD1602模STC89C52注:由于STC89C52芯片串口寄存器的容量限制,每次收发只能一个字主控制模块主控制模块矩阵键盘模LCD1602模STC89C52矩阵键盘模无线信号本作品通过HC-05主从机一体蓝牙模块实现与带蓝牙的设备先通过OPP蓝牙协议来实现配对连接,实现连接配对可通过电路板上的数字按键来实现输入,经STC89C52单片机处理后通过HC-05蓝牙无线传送到另一方单片机上,通过STC89C52单片机处理后可在LCD1602液晶显示所接受到1-3使用说明在接通电源前,先把蓝牙模块插到单片机上,紧接着启动电源。观察蓝牙模块的指示灯,等待两个单片机之间的连接匹配,待指示灯出现双闪后就匹配连接成功。接下来可根据自己想要发送数据在单片机的按键区域(0~9)按下,按下后显示屏便出现你所要发送的数据,确认无误之后就按下单片机上的发送按钮即马上发送到另一方单片机上(两个单片机可以互相发送)!2系统硬件设计2-1主控制模块STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/量2级中断结构),全双工串行口。另外STC89C52可降至0Hz静态逻内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。选择,指令代码完全兼容传统8051.[2]频率可达48MHz4.用户应用程序空间为8K字节5.片上集成512字节RAM拉,P0口是漏极开路输出,作为总线扩需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片8.具有EEPROM功能由外部中断低电平触发中断方式唤醒11.通用异步串行口(UART),还可用定时器软件实现多个UART13.PDIP封装2-2蓝牙收发模块AT指令集HC-05嵌入式蓝牙串口通讯模块(以下简称模块)具有两种工作模式:命令响应工作模式和自动连接工作模式,在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;当模块处于命令响应工作模式时能执行下述所有AT命令,用户可向模块发送各种AT指令,为模块设定控制参数或发布控制命令。通过控制模块外部引脚(PIO11)输入电平,可以实现模块工作状串口模块用到的引脚定义:1、PIO8连接LED,指示模块工作状态,模块上电后闪烁,不同的状态闪烁间隔不同。2、PIO9连接LED,指示模块连接成功,蓝牙串口匹配连接成功后,LED长亮。3、PIO11模块状态切换脚,高电平-->AT命令响应工作状态,低电平或悬空-->蓝牙常规工作状态。4、模块上已带有复位电路,重新上电即完成复位。2、上电,模块进入AT命令响应状态。3、超级终端或其他串口工具,设置波特率38400,数据位8位,停止位1位,无校验位,无流控制。4、串口发送字符“AT+ROLE=1\r\n”,成功返回“OK\r\n”,其中5、PIO置低,重新上电,模块为主模块,自动搜索从模块,建立连接。2-3液晶显示模块第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳3.3V或5V工作电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM内建有192个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器CGRAM特征应用微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。操作控制注:关于E=H脉冲——开始时初始化E为0,然后置E为1。2-4矩阵键盘模块注:键盘输入部分使用矩阵键盘的设计原理。3系统软件设计3-1源程序#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitrs=P2^6;sbitrw=P2^5;sbitKey=P2^4;ucharcodetable_Receive[]={"Receive:"};ucharcodetable_Send[]={"Send:"};ucharcodetable[]={'0','1','2','3','4','5','6','7','8','9'};ucharnum,temp,temp2,a,flag,add;ucharn,m;voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidwrite_lcd_com(ucharcom){rs=0;P0=com;delay(5);delay(5);}voidwrite_data(uchardate){rs=1;P0=date;delay(5);en=(1);delay(5);}voidlcdinit(){write_lcd_com(0x38);write_lcd_com(0x0c);write_lcd_com(0x06);write_lcd_com(0x01);for(m=0;m<8;m++){write_data(table_Receive[m]);delay(1);}write_lcd_com(0x80+0x40);for(n=0;n<8;n++){write_data(table_Send[n]);delay(1);}}voidkeyscan(){P1=0xfe;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(2);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case0xee:num=1;break;case0xde:num=2;break;case0xbe:num=3;break;case0x7e:num=4;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}num=num-1;}}P1=0xfd;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(2);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case0xed:num=5;break;case0xdd:num=6;break;case0xbd:num=7;break;case0x7d:num=8;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}num=num-1;}}P1=0xfb;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(2);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case0xeb:num=9;break;case0xdb:num=10;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}num=num-1;}}}voidKey1(){if(Key==0){delay(2);if(Key==0){switch(num){case0:SBUF=0x00;while(!TI);TI=0;break;case1:SBUF=0x01;while(!TI);TI=0;break;case2:SBUF=0x02;while(!TI);TI=0;break;case3:SBUF=0x03;while(!TI);TI=0;break;case4:SBUF=0x04;while(!TI);TI=0;break;case5:SBUF=0x05;while(!TI);TI=0;break;case6:SBUF=0x06;while(!TI);TI=0;break;case7:SBUF=0x07;while(!TI);TI=0;break;case8:SBUF=0x08;while(!TI);TI=0;break;case9:SBUF=0x09;while(!TI);TI=0;break;}while(!Key);}}}voidget(){if(RI==1){RI=0;switch(SBUF){case0x00:temp2=0;break;case0x01:temp2=1;break;case0x02:temp2=2;break;case0x03:temp2=3;break;case0x04:temp2=4;break;case0x05:temp2=5;break;case0x06:temp2=6;break;case0x07:temp2=7;break;case0x08:temp2=8;break;case0x09:temp2=9;break;}write_lcd_com(0x80+add);write_data(table[temp2]);add++;}}voidmain(){SCON=0x50;TMOD=0x20;TH1=0xfd;TL1=0xfd;TR1=1;REN=1;SM0=0;SM1=1;add=8;Key=1;rw=0;lcdinit();while(1){keyscan();write_lcd_com(0x80+0x40+8);write_data(table[num]);get();Key1();}}4系统性能分析4-1优缺点由于基于STC89C52单片机处理,串口信号的寄存器只有2个字节(接收1个字节,发送1个字节),所以只能一次发送或者接收一个字节的优点,经济实惠,成本相对较低;缺点,用单片机制作的主控板受制版工艺、布局结构、器件质量等因素的影响导致抗干扰能力差,故障率高,不易扩展,对环境依赖性强,开发周期长。一个采用单片机制作的主控板不经过很长时间的实际验证很难形成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论