1、基于单片机蓝牙模块传输数据毕业设计方案作品基于51单片机蓝牙模块数据传输设计(修订版)摘要本设计以STC89C52单片机为控制关键。经蓝牙模块实现无线连接,发送数据和接收数据,经过LCD1602显示接收数据和编辑发送数据,两个单片机经过内部程序实现实时接收、发送和显示,从而完成相关要求。1方案设定1-1电路设计框图 无线信号 串口 串口 图4-1注:因为STC89C52芯片串口寄存器容量限制,每次收发只能一个字节。1-2功效叙述本作品经过HC-05主从机一体蓝牙模块实现和带蓝牙设备先经过OPP蓝牙协议来实现配对连接,实现连接配对可经过电路板上数字按键来实现输入,经STC89C52单片机处理后经
2、过HC-05蓝牙无线传送到另一方单片机上,经过STC89C52单片机处理后可在LCD1602液晶显示所接收到数据!1-3使用说明在接通电源前,先把蓝牙模块插到单片机上,紧接着开启电源。观察蓝牙模块指示灯,等候两个单片机之间连接匹配,待指示灯出现双闪后就匹配连接成功。接下来可依据自己想要发送数据在单片机按键区域(09)按下,按下后显示器便出现你所要发送数据,确定无误以后就按下单片机上发送按钮即立即发送到另一方单片机上(两个单片机能够相互发送)!2系统硬件设计2-1主控制模块图6-12-2蓝牙收发模块图8-12-3液晶显示模块图9-1LCD1602资料:1602采取标准16脚接口,其中:第1脚:G
3、ND为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时能够经过一个10K电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时实施指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极。16脚背光负极。特征:3.3V或5V工作电压,对比度可调内含复位电路提供多
4、种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多个功效有80字节显示数据存放器DDRAM内建有192个5X7点阵字型字符发生器CGROM8个可由用户自定义5X7字符发生器CGRAM特征应用微功耗、体积小、显示内容丰富、超薄轻巧,常见在袖珍式仪表和低功耗应用系统中。操作控制注:相关E=H脉冲开始时初始化E为0,然后置E为1。2-4矩阵键盘模块图10-1注:键盘输入部分使用矩阵键盘设计原理。3系统软件设计3-1源程序#include#define uint unsigned int#define uchar unsigned charsbit rs=P26;sbit en=P27;sbit
5、rw=P25;sbit Key=P24;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;x0;x-) for(y=110;y0;y-);void write_lcd_com(uchar com) rs=0; P0=com; delay(5); en=1; delay(5); en=0;vo
6、id 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;m8;m+) write_data(table_Receivem); delay(1); write_lcd_com(0x80+0x40); for(n=0;n8;n+) write_data(table_Sendn); de
7、lay(1); void keyscan() P1=0xfe; temp=P1; temp=temp&0xf0; while(temp!=0xf0) delay(2); temp=P1; temp=temp&0xf0; while(temp!=0xf0) temp=P1; switch(temp) case 0xee:num=1;break; case 0xde:num=2;break; case 0xbe:num=3;break; case 0x7e:num=4;break; while(temp!=0xf0) temp=P1; temp=temp&0xf0; num=num-1; P1=0
8、xfd; temp=P1; temp=temp&0xf0; while(temp!=0xf0) delay(2); temp=P1; temp=temp&0xf0; while(temp!=0xf0) temp=P1; switch(temp) case 0xed:num=5;break; case 0xdd:num=6;break; case 0xbd:num=7;break; case 0x7d:num=8;break; while(temp!=0xf0) temp=P1; temp=temp&0xf0; num=num-1; P1=0xfb; temp=P1; temp=temp&0xf
9、0; while(temp!=0xf0) delay(2); temp=P1; temp=temp&0xf0; while(temp!=0xf0) temp=P1; switch(temp) case 0xeb:num=9;break; case 0xdb:num=10;break; while(temp!=0xf0) temp=P1; temp=temp&0xf0; num=num-1; void Key1()if(Key=0) delay(2); if(Key=0) switch(num) case 0:SBUF=0x00; while(!TI); TI=0;break; case 1:S
10、BUF=0x01; while(!TI); TI=0;break; case 2:SBUF=0x02; while(!TI); TI=0;break; case 3:SBUF=0x03; while(!TI); TI=0;break; case 4:SBUF=0x04; while(!TI); TI=0;break; case 5:SBUF=0x05; while(!TI); TI=0;break; case 6:SBUF=0x06; while(!TI); TI=0;break; case 7:SBUF=0x07; while(!TI); TI=0;break; case 8:SBUF=0x
11、08; while(!TI); TI=0;break; case 9:SBUF=0x09; while(!TI); TI=0;break; while(!Key); void get() if(RI=1) RI=0; switch(SBUF) case 0x00:temp2=0;break; case 0x01:temp2=1;break; case 0x02:temp2=2;break; case 0x03:temp2=3;break; case 0x04:temp2=4;break; case 0x05:temp2=5;break; case 0x06:temp2=6;break; cas
12、e 0x07:temp2=7;break; case 0x08:temp2=8;break; case 0x09:temp2=9;break; write_lcd_com(0x80+add); write_data(tabletemp2); add+; void main() 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(tablenum); get(); Key1(); (以上为全部内容)
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2