




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include #include #include#include LCD1602.h#include matrix_key.h#define uint unsigned int#define uchar unsigned char#define Nop() _nop_()sbit P10 = P10; /*定义独立对地按键端口*/sbit P11 = P11; /*定义独立对地按键端口*/sbit P12 = P12; /*定义独立对地按键端口*/sbit P13 = P13; /*定义独立对地按键端口*/ /shift键bit shift_flag;bit call_flag ;bit
2、CallIn_flag=0;bit reci_flag;bit reci_flag1;sbit sled_en_port = P36; /*定义数码管数据锁存器控制端口*/sbit led_en_port = P25; /*定义发光二极管数据锁存器控制端口*/sbit ds1302_en_port = P22; /*定义时钟的选片脚*/uchar CallIn_Num15;/=;uchar CallOut_Num15= ;uchar m=0;/拨号指针uchar temp=?;uchar code clr16= ;uchar code lcd_table16 = Ky: Cm: Re: ;/u
3、char send_buff15;uchar reci_buff15= ;uchar z; /接收缓冲区指针uchar time;/定时器中断次数uchar code mun_to_char=ABCDEF;/*1MS为单位的延时程序*/void init();void send(uchar cc);void send_f(uchar ccc);void interrupt_pro();void key_pro();void call_out();void main()uchar i,j; delay_1ms(5);init(); /定时器初始化lcd_system_reset();/*LCD1
4、602 初始化*/for(i=0;i16;i+) lcd_char_write(i,1,lcd_tablei); /*显示标题*/ string_write(0,0,clr);string_write(0,0, Welcome! );sled_en_port = 0; /*关闭数码管显示*/led_en_port = 0; /*关闭发光二极管显示*/ds1302_en_port = 0;/*关闭时钟通讯*/while(1) key_pro(); /扫描键盘,按键盘处理 if(reci_flag) /串口有数据过来 interrupt_pro();/分析处理 reci_flag=0; reci_
5、flag1=1; if(CallIn_flag=1)/有电话打进来。 CallIn_flag=0; for(i=0,j=0;i=0x30 &reci_buffi=0&reci_buffi100&CallOut_Num0=0) call_out(); for(i=16;i1;i-) string_write(2,0,CallOut_Num); delay_1ms(222); delay_1ms(222); string_write(2,0, ); delay_1ms(222); delay_1ms(222); for(i=0;i222)time=0;goto start;/else m=0; v
6、oid init() /* 串口定时器外部中断初始化 */ TMOD =0X21;/|= 0x20; /定时器1为模式2,8位自动重装 TH1 = 0xfd; /Baud:19200 fosc=11.0592MHzTL1=0XFD ;TH0=0;TL0=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(uc
7、har 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+) 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
8、test if(temp=) CallIn_flag=1;/|temp=$ |temp=%else if(temp=$) lcd_delay(5);/if(temp=$) string_write(0,0,clr); string_write(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_wri
9、te(0,0,clr);string_write(0,0,Linking); break; case O:string_write(0,0,clr);string_write(0,0,Connect); break; case R:string_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:s
10、tring_write(0,0,clr);string_write(0,0,Talking); break; case L:string_write(0,0,clr);string_write(0,0,Call failed); break; 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(
11、0,0,A2DP connected );break; case V:string_write(0,0,clr);string_write(0,0,A2DP disconnected);break; / case ):x=0;break;/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)
12、/有按键动作switch(key_value_buff) /*显示按键*/ case 0x18: /0 if(call_flag) CallOut_Numm=0;lcd_char_write(m+2,0,0);m+;else if(!shift_flag) send( );send(A); /Answerlcd_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_
13、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) send( );send(H); /Hang uplcd_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 0
14、x48:/2 if(call_flag) CallOut_Numm=2;lcd_char_write(m+2,0,2);m+; else if(!shift_flag) send( );send(R); /Rejectlcd_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) CallO
15、ut_Numm=3;lcd_char_write(m+2,0,3);m+; else if(!shift_flag) send( );send(L); /Rediallcd_char_write(3,1,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+
16、2,0,4);m+;else if(!shift_flag) send( );send(U); /Vol uplcd_char_write(3,1,4);lcd_char_write(8,1,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_fl
17、ag) send( );send(D);/Vol downlcd_char_write(3,1,5); lcd_char_write(8,1,D);lcd_char_write(9,1, ); 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
18、_char_write(3,1,6);lcd_char_write(8,1,0);lcd_char_write(9,1, ); else send( );send(G);send(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 diallcd_char_writ
19、e(3,1,7); lcd_char_write(8,1,V);lcd_char_write(9,1, ); else send( );send(n); lcd_char_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 transferlcd_char_write(3,1,8); lcd_
20、char_write(8,1,Z);lcd_char_write(9,1, ); else send( );send(p); lcd_char_write(3,1,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+; elseif(!shift_flag) send( );send(Q); /Disconnectlcd_char_write(3,1,9); lcd_char_write(8,1,Q)
21、;lcd_char_write(9,1, ); else send( );send(z); /Call transfer lcd_char_write(3,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,
22、);break;case 0x82:/B # if(call_flag) CallOut_Numm=#;lcd_char_write(m+2,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 answerlcd_char_write(3,1,C); lcd_char_write(8,1,t);lcd_cha
23、r_write(9,1, );break;case 0x21:if(!call_flag) send( );send(M);/Set volume setlcd_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 setlcd_char_write(3,1,E);lcd_char_write(8,1,m);lcd_char_write(9,1, );break;case 0x81:if(!call_fl
24、ag) send( );send(N); /Set auto linklcd_char_write(3,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_char_write(8,1,S); /Linkelse 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 usi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长沙环境保护职业技术学院《分子生物学与植保生物技术实验》2023-2024学年第二学期期末试卷
- 伊春职业学院《商务英语阅读Ⅱ》2023-2024学年第二学期期末试卷
- 扬州市邗江区2025届小升初数学预习模拟卷含解析
- 潍坊科技学院《机械制图》2023-2024学年第二学期期末试卷
- 沈阳科技学院《水产品加工与贮藏》2023-2024学年第一学期期末试卷
- 上海出版印刷高等专科学校《新媒体产品设计与管理》2023-2024学年第二学期期末试卷
- 昆玉职业技术学院《信息专业英语》2023-2024学年第二学期期末试卷
- 新疆工程学院《移动应用开发》2023-2024学年第二学期期末试卷
- 华中农业大学《武术表演》2023-2024学年第一学期期末试卷
- 长沙文创艺术职业学院《建筑工程事故的诊断与分析》2023-2024学年第二学期期末试卷
- 占用土地赔偿协议书
- 2025年开封大学高职单招语文2019-2024历年真题考点试卷含答案解析
- 饰品工厂知识培训课件
- 2025年衢州龙游经济开发区下属国资公司招聘笔试参考题库含答案解析
- 【北师大高二上】北京市部分学校2021-2022学年上学期高二期中英语试题分类汇编:阅读表达专题
- GB 30720-2025燃气灶具能效限定值及能效等级
- 中国时尚产业的发展趋势分析
- 鹌鹑蛋脱壳机的设计
- 项目管理进度表模板(全流程)
- 《小石潭记》作业设计
- 体育测量与评价PPT课件-第五章身体素质的测量与评价
评论
0/150
提交评论