ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:86.47KB ,
资源ID:8060298      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8060298.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51单片机与蓝牙模块的串口通信.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

51单片机与蓝牙模块的串口通信.docx

1、51单片机与蓝牙模块的串口通信51单片机与蓝牙模块的串口通信(共11页)#include #include #include#include #include #define uint unsigned int#define uchar unsigned char#define Nop() _nop_()sbit P10 = P10; /*定义独立对地按键端口*/sbit P11 = P11; /*定义独立对地按键端口*/sbit P12 = P12; /*定义独立对地按键端口*/sbit P13 = P13; /*定义独立对地按键端口*/ 592MHz TL1=0XFD ; TH0=0; T

2、L0=0; TR1 = 1; / timer 1 run SCON = 0x50; /UART为模式1,8位数据,允许接收 PCON |= 0x80 ; /SMOD=1; Baud加倍 IE |= 0x90 ; /Enable Serial Interrupt TR1 = 1 ; / timer 1 run EA=1; ET0=1;void send(uchar cc) SBUF=cc; while(TI=0); TI=0;void send_f(uchar ccc) send( ); send();void call_out() uchar i; send(); for(i=0;im;i+)

3、 send(CallOut_Numi); send(); m=0;void interrupt_pro() string_write(0,1,reci_buff); lcd_char_write(14,1,mun_to_chartemp/10); /for test lcd_char_write(15,1,mun_to_chartemp%10); /for test if(temp=) CallIn_flag=1;/|temp=$ |temp=% else if(temp=$) lcd_delay(5);/if(temp=$) string_write(0,0,clr); string_wri

4、te(0,0,reci_buff); else switch(temp) case X:string_write(0,0,clr);string_write(0,0,Disconnet);break; case P:string_write(0,0,clr);string_write(0,0,Pairing); break; case S:string_write(0,0,clr);string_write(0,0,Linking); break; case O:string_write(0,0,clr);string_write(0,0,Connect); break; case R:str

5、ing_write(0,0,clr);string_write(0,0,Ring); /string_write(5,0,CallIn_Num); break; case D:string_write(0,0,clr);string_write(0,0,Ding); / string_write(5,0,CallIn_Num); break; case I:string_write(0,0,clr);string_write(0,0,Talking); break; case L:string_write(0,0,clr);string_write(0,0,Call failed); brea

6、k; case A:string_write(0,0,clr);string_write(0,0,MP3 playing); break; case E:string_write(0,0,clr);string_write(0,0,Call release ); break; case H:string_write(0,0,clr);string_write(0,0,A2DP connected );break; case V:string_write(0,0,clr);string_write(0,0,A2DP disconnected);break; / case ):x=0; break

7、; /for(i=0;i16;i+) lcd_char_write(i,1,lcd_tablei); /*显示标题*/ default:break; /temp=; /for testvoid key_pro() uchar i,key_value_buff; key_value_buff = key_scan(); if(key_value_buff != 0) /有按键动作 switch(key_value_buff) /*显示按键*/ case 0x18: /0 if(call_flag) CallOut_Numm=0;lcd_char_write(m+2,0,0);m+; else i

8、f(!shift_flag) send( );send(A); /Answer lcd_char_write(3,1,0); /可以不显示出来 lcd_char_write(8,1,A); lcd_char_write(9,1, ); else send_f(P); lcd_char_write(3,1,0); lcd_char_write(8,1,F); lcd_char_write(9,1,P); break; case 0x28:/1 if(call_flag) CallOut_Numm=1;lcd_char_write(m+2,0,1);m+; else if(!shift_flag)

9、 send( );send(H); /Hang up lcd_char_write(3,1,1); lcd_char_write(8,1,H); lcd_char_write(9,1, ); else send_f(L); lcd_char_write(3,1,1); lcd_char_write(8,1,F); lcd_char_write(9,1,L); break; case 0x48:/2 if(call_flag) CallOut_Numm=2;lcd_char_write(m+2,0,2);m+; else if(!shift_flag) send( );send(R); /Rej

10、ect lcd_char_write(3,1,2); lcd_char_write(8,1,R); lcd_char_write(9,1, ); else send_f(U); lcd_char_write(3,1,2); lcd_char_write(8,1,F); lcd_char_write(9,1,U); break; case 0x88:/3 if(call_flag) CallOut_Numm=3;lcd_char_write(m+2,0,3);m+; else if(!shift_flag) send( );send(L); /Redial lcd_char_write(3,1,

11、3); lcd_char_write(8,1,L); lcd_char_write(9,1, ); else send_f(F); lcd_char_write(3,1,3); lcd_char_write(8,1,F); lcd_char_write(9,1,F); break; case 0x14:/4 if(call_flag) CallOut_Numm=4;lcd_char_write(m+2,0,4);m+; else if(!shift_flag) send( );send(U); /Vol up lcd_char_write(3,1,4); lcd_char_write(8,1,

12、U); lcd_char_write(9,1, ); else send_f(B); lcd_char_write(3,1,4); lcd_char_write(8,1,F); lcd_char_write(9,1,B); break; case 0x24:/5 if(call_flag) CallOut_Numm=5;lcd_char_write(m+2,0,5);m+; else if(!shift_flag) send( );send(D);/Vol down lcd_char_write(3,1,5); lcd_char_write(8,1,D); lcd_char_write(9,1

13、, ); else send_f(S); lcd_char_write(3,1,5); lcd_char_write(8,1,F); lcd_char_write(9,1,S); break; case 0x44:/6 if(call_flag) CallOut_Numm=6;lcd_char_write(m+2,0,6);m+; else if(!shift_flag) send( );send(0); / lcd_char_write(3,1,6); lcd_char_write(8,1,0); lcd_char_write(9,1, ); else send( );send(G);sen

14、d(x); lcd_char_write(3,1,6); lcd_char_write(8,1,G); lcd_char_write(9,1,x); break; case 0x84:/7 if(call_flag) CallOut_Numm=7;lcd_char_write(m+2,0,7);m+; else if(!shift_flag) send( );send(V); /Voice dial lcd_char_write(3,1,7); lcd_char_write(8,1,V); lcd_char_write(9,1, ); else send( );send(n); lcd_cha

15、r_write(3,1,7); lcd_char_write(8,1,n); lcd_char_write(9,1, ); break; case 0x12:/8 if(call_flag) CallOut_Numm=8;lcd_char_write(m+2,0,8);m+; else if(!shift_flag) send( );send(Z);/Call transfer lcd_char_write(3,1,8); lcd_char_write(8,1,Z); lcd_char_write(9,1, ); else send( );send(p); lcd_char_write(3,1

16、,8); lcd_char_write(8,1,p); lcd_char_write(9,1, ); break; case 0x22:/9 if(call_flag) CallOut_Numm=9;lcd_char_write(m+2,0,9);m+; else if(!shift_flag) send( );send(Q); /Disconnect lcd_char_write(3,1,9); lcd_char_write(8,1,Q); lcd_char_write(9,1, ); else send( );send(z); /Call transfer lcd_char_write(3

17、,1,9); lcd_char_write(8,1,z); lcd_char_write(9,1, ); break; case 0x42:/A * if(call_flag) CallOut_Numm=*;lcd_char_write(m+2,0,*);m+; else send( );send(Y);/Version lcd_char_write(3,1,A); lcd_char_write(8,1,Y); lcd_char_write(9,1, ); break; case 0x82:/B # if(call_flag) CallOut_Numm=#;lcd_char_write(m+2

18、,0,#);m+; else send( );send(T); /Set auto answer lcd_char_write(3,1,B); lcd_char_write(8,1,T); lcd_char_write(9,1, ); break; case 0x11: if(!call_flag) send( );send(t); /Clr auto answer lcd_char_write(3,1,C); lcd_char_write(8,1,t); lcd_char_write(9,1, ); break; case 0x21: if(!call_flag) send( );send(

19、M);/Set volume set lcd_char_write(3,1,D); lcd_char_write(8,1,M); lcd_char_write(9,1, );break; case 0x41:if(!call_flag) send( );send(m); /Clr volume set lcd_char_write(3,1,E); lcd_char_write(8,1,m); lcd_char_write(9,1, );break; case 0x81:if(!call_flag) send( );send(N); /Set auto link lcd_char_write(3

20、,1,F); lcd_char_write(8,1,N); lcd_char_write(9,1, );break; default:break; while(key_scan()!=0);/*等待按键放开*/ scan_key_port = 0xff; /*释放矩阵按键端口*/ delay_1ms(5); if(P10=0)|(P11=0)|(P12=0)|(P13=0) delay_1ms(10); /*延时去抖动*/ if(P10=0)|(P11=0)|(P12=0)|(P13=0) if(P10=0) lcd_char_write(3,1,a); send( );send(S);lcd

21、_char_write(8,1,S); /Link else if(P11=0) call_flag=call_flag; if(call_flag) string_write(0,0,clr);lcd_char_write(0,0,0); /显示拨号状态符号 else for(i=0;i15) z=0; TR0=1; reci_flag1=1; /*void serial () interrupt 4 using 3 /串口接收字符串 if (RI) RI = 0 ; temp=SBUF; if(temp=R) CallIn_flag=1; reci_flag=1; bool RIwait(

22、uint i) /等待时间到,返回1 while(i-)if(RI) return 0; /等待时间内 RI = 1 ,返回0 return 1; /串行接收停止位的中间时,RI 置1uchar ReadSbuf(void)/从SBUF 读数据,可得到接收的数据 uchar TmpSbuf; TmpSbuf=SBUF; SCON=0x50; return TmpSbuf;void ComService(void) interrupt 4 uchar TmpSBUF,i=0; EA=0; ES=0; if(RIwait(RiWaitTimer) goto ExitCom; switch(ReadSbuf() case R:/current call for(i=0;i20;i+) if(RIwait(RLongiWaitTimer) break;/goto ExitCom; i=ReadSbuf(); TelTmpNumi=i; / new add ifi=r)break; i=n; TelTmpNumi=n; / new add if(StandbyStatus=IsStandby) =IR_BLUETOOTHPOWERON; else if=BlueToothWorkInCalling) =IR_BLUE

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

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