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

上传人:b****0 文档编号:310090 上传时间:2022-10-08 格式:DOCX 页数:14 大小:341.81KB
下载 相关 举报
基于51单片机蓝牙模块传输数据毕业设计作品.docx_第1页
第1页 / 共14页
基于51单片机蓝牙模块传输数据毕业设计作品.docx_第2页
第2页 / 共14页
基于51单片机蓝牙模块传输数据毕业设计作品.docx_第3页
第3页 / 共14页
基于51单片机蓝牙模块传输数据毕业设计作品.docx_第4页
第4页 / 共14页
基于51单片机蓝牙模块传输数据毕业设计作品.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

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

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

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

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

基于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_(uchar){

rs=0;

P0=;

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_(0x38);

write_lcd_(0x0c);

write_lcd_(0x06);

write_lcd_(0x01);

for(m=0;m<8;m++)

{

write_data(table_Receive[m]);

delay

(1);

}

write_lcd_(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_(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_(0x80+0x40+8);

write_data(table[num]);

get();

Key1();

}

}

(以上为所有容)

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

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1