基于单片机蓝牙模块传输数据毕业设计方案作品.docx

上传人:b****6 文档编号:16394464 上传时间:2023-07-13 格式:DOCX 页数:14 大小:194.14KB
下载 相关 举报
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第1页
第1页 / 共14页
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第2页
第2页 / 共14页
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第3页
第3页 / 共14页
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第4页
第4页 / 共14页
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第5页
第5页 / 共14页
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第6页
第6页 / 共14页
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第7页
第7页 / 共14页
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第8页
第8页 / 共14页
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第9页
第9页 / 共14页
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第10页
第10页 / 共14页
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第11页
第11页 / 共14页
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第12页
第12页 / 共14页
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第13页
第13页 / 共14页
基于单片机蓝牙模块传输数据毕业设计方案作品.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于单片机蓝牙模块传输数据毕业设计方案作品.docx

《基于单片机蓝牙模块传输数据毕业设计方案作品.docx》由会员分享,可在线阅读,更多相关《基于单片机蓝牙模块传输数据毕业设计方案作品.docx(14页珍藏版)》请在冰点文库上搜索。

基于单片机蓝牙模块传输数据毕业设计方案作品.docx

基于单片机蓝牙模块传输数据毕业设计方案作品

基于51单片机蓝牙模块数据传输设计(修订版)

摘要

本设计以STC89C52单片机为控制关键。

经蓝牙模块实现无线连接,发送数据和接收数据,经过LCD1602显示接收数据和编辑发送数据,两个单片机经过内部程序实现实时接收、发送和显示,从而完成相关要求。

     

1方案设定

1-1电路设计框图

无线信号

串口串口

图4-1

注:

因为STC89C52芯片串口寄存器容量限制,每次收发只能一个字节。

1-2功效叙述

本作品经过HC-05主从机一体蓝牙模块实现和带蓝牙设备先经过OPP蓝牙协议来实现配对连接,实现连接配对可经过电路板上数字按键来实现输入,经STC89C52单片机处理后经过HC-05蓝牙无线传送到另一方单片机上,经过STC89C52单片机处理后可在LCD1602液晶显示所接收到数据!

1-3使用说明

在接通电源前,先把蓝牙模块插到单片机上,紧接着开启电源。

观察蓝牙模块指示灯,等候两个单片机之间连接匹配,待指示灯出现双闪后就匹配连接成功。

接下来可依据自己想要发送数据在单片机按键区域(0~9)按下,按下后显示器便出现你所要发送数据,确定无误以后就按下单片机上发送按钮即立即发送到另一方单片机上(两个单片机能够相互发送)!

2系统硬件设计

2-1主控制模块

图6-1

2-2蓝牙收发模块

图8-1

2-3液晶显示模块

图9-1

LCD1602资料:

1602采取标准16脚接口,其中:

第1脚:

GND为电源地

第2脚:

VCC接5V电源正极

第3脚:

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时能够经过一个10K电位器调整对比度)。

第4脚:

RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5脚:

RW为读写信号线,高电平

(1)时进行读操作,低电平(0)时进行写操作。

第6脚:

E(或EN)端为使能(enable)端,高电平

(1)时读取信息,负跳

变时实施指令。

第7~14脚:

D0~D7为8位双向数据端。

第15~16脚:

空脚或背灯电

源。

15脚背光正极。

16脚背光负极。

特征:

3.3V或5V工作电压,对比度可调内含复位电路提供多种控制命令,如:

清屏、字符闪烁、光标闪烁、显示移位等多个功效有80字节显示数据存放器DDRAM

内建有192个5X7点阵字型字符发生器CGROM8个可由用户自定义5X7字符发生器CGRAM特征应用微功耗、体积小、显示内容丰富、超薄轻巧,常见在袖珍式仪表和低功耗应用系统中。

操作控制

注:

相关E=H脉冲——开始时初始化E为0,然后置E为1。

2-4矩阵键盘模块

图10-1

注:

键盘输入部分使用矩阵键盘设计原理。

3系统软件设计

3-1源程序

#include

#defineuintunsignedint

#defineucharunsignedchar

sbitrs=P2^6;

sbiten=P2^7;

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);

en=1;

delay(5);

en=0;

}

voidwrite_data(uchardate){

rs=1;

P0=date;

delay(5);

en=

(1);

delay(5);

en=0;

}

voidlcdinit(){

en=0;

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();

}

}

(以上为全部内容)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2