"基于51单片机蓝牙模块传输数据毕业设计"
本设计以STC89C52单片机为控制核心,经蓝牙模块实现无线连接,发送数据和接收数据,通过LCD1602显示接收的数据和编辑发送的数据,两个单片机通过部程序实现实时接收、发送和显示,从而完成相关要求。
1. 方案设定
1-1 电路设计框图
无线信号串口串口
图4-1注:由于STC89C52芯片串口寄存器的容量限制,每次收发只能一个字节。
1-2 功能叙述
本作品通过HC-05主从机一体蓝牙模块实现与带蓝牙的设备先通过OPP蓝牙协议来实现配对连接,实现连接配对可通过电路板上的数字按键来实现输入,LCD1602液晶显示模块1蓝牙收发模块1STC89C52主控制模块1LCD1602液晶显示模块2蓝牙收发模块2STC89C52主控制模块2矩阵键盘模块1矩阵键盘模块2。
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字节显示数据存储器DDR,
* 建有192个5X7点阵的字型的字符发生器CGROM,
* 8个可由用户自定义的5X7的字符发生器CGRAM,
* 特征应用微功耗、体积小、显示容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。
操作控制注:
关于E=H脉冲——开始时初始化E为0,然后置E为1。
2-4 矩阵键盘模块
图10-1注:键盘输入部分使用矩阵键盘的设计原理。
3. 系统软件设计
3-1 源程序
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit rs=P2^6;
sbit en=P2^7;
sbit rw=P2^5;
sbit Key=P2^4;
uchar code table_Receive[]={"Receive:"};
uchar code table_Send[]={" Send:"};
uchar code table[]={'0','1','2','3','4','5','6','7','8','9'};
uchar num,temp,temp2,a,flag,add;
uchar n,m;
void delay(uint z){
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);}
void write_lcd_(uchar ){
rs=0;
P0=;
delay(5);
en=1;
delay(5);
en=0;}
void write_data(uchar date){
rs=0;
P0=date;
delay(5);
en=1;
delay(5);
en=0;}
本设计实现了蓝牙模块的无线连接和数据传输,通过LCD1602液晶显示模块显示接收的数据和编辑发送的数据,两个单片机通过部程序实现实时接收、发送和显示,从而完成相关要求。