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

weixin_39821746 2021-09-25 09:35:25
基于51单片机蓝牙模块传输数据毕业设计_作品.doc , 相关下载链接:https://download.csdn.net/download/yunxidzh/24432769?utm_source=bbsseo
...全文
13 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
基于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的字符发生器C GRAM特征应用微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗 应用系统中。操作控制 注:关于E=H脉冲——开始时初始化E为0,然后置E为1。 2-4矩阵键盘模块 图10-1 注:键盘输入部分使用矩阵键盘的设计原理。 3系统软件设计 3-1源程序 #include #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_com(uchar com){ rs=0; P0=com; delay(5); en=1; delay(5); en=0; } void write_data(uchar date){ rs=1; P0=date; delay(5); en=(1); delay(5); en=0; } void lcdinit(){ 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); } } void keyscan() { P1=0xfe; temp=P1; temp

12,807

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧