模拟电话键盘 单片机课程设计报告_第1页
模拟电话键盘 单片机课程设计报告_第2页
模拟电话键盘 单片机课程设计报告_第3页
模拟电话键盘 单片机课程设计报告_第4页
模拟电话键盘 单片机课程设计报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河海大学物联网工程学院单片机课程设计报告 题 目 模拟电话键盘 专业、学号 电信 授课班号 275503 学生姓名 指导教师 金纪东 完成时间 2012 /12/29 摘要本设计为了实现电话键盘的拨号功能,根据所学的单片机知识首先通过编写C程序通过KeiL C进行调试,编译得到机器代码,调试成功后通过烧写工具进行功能测试,并通过串口调试程序验证串口发送和自动重发功能。设计过程中,一开始程序功能有限,但通过不断的改进和查阅资料获得了所需的功能,其中行列式键盘的程序和串口程序都比较关键。最终实现了按键拨号,数码管显示和自动重播等目标功能。关键字:行列式键盘,串口通信 ,数码管显示,自动重播,Kei

2、LCABSTRACTIn order to achieve the design of telephone keypad dialing function, according to study single-chip knowledge first through writing C program through the KeiL C compiler debugging, get the machine code, debugging success by writing tools for functional testing, and through the serial debug

3、ging program verify serial transmission and automatic retransmission function.In the design process, first the program features a limited, but through continuous improvement and access to information to obtain the desired function, wherein the determinant keyboard procedures and serial procedures ar

4、e the key.Finally realizes the key dialing, digital tube display and automatic replay, target function.KEY WORDS: Determinant keyboard, serial communication, digital display, automatic replay, KeiLC目录1系统设计- 4 1.1 模拟电话键盘设计的目的、要求和指标 - 4 1.2 组要组件- 4 1.3 软件流程图-72实验结果及讨论- 8 2.1实际电路设计及程序设计- 8 2.2 设计过程中的问题

5、- 8 2.3 实验数据及讨论- 83结论 - 9 3.1 课程设计的特点及贡献- 9 3.2 评估结果 - 9 3.3 改善建议 - 9 3.4 自我体会 - 94.参考文献 - 10 5.附录 - 111. 系统设计1.1模拟电话键盘设计的目的、要求和指标把【S207、S206、S205;S217、S216、S215;S227、S226、S225;S237、S236、S235】;按键分别当作电话按键的123456789*0#。当拨打电话时,电话号码显示在动态LED上(相当于手机的显示屏)。当按下S204键Call电话时,电话号码通过串口发送到PC上,通过串口调试助手可以观察。(相当于把号码

6、发给基站)。M- 模拟电话不同时,每隔1分钟自动重拨一次。1.2主要组件 C部分电路由4位一体的数码管LED1、单个数码管LED2和8个独立发光二极管L1-L7组成。这3个部分都是共阴结构,并联在一起,连接在P0口上。LED1用于完成LED动态显示实验,各个位选线为P24P27,段码由P0口输出;LED2的COM端接地,完成LED静态显示实验;L1L7,可以方便地读出P0输出的二进制数据,亦可做流水灯实验。E部分电路为行列式键盘和独立式按键输入电路。P20P23为行,P24P27为列,构成4×4行列式键盘。按键编号规律为S2+行号列号。例如S226表示P22行和P26列跨接处的按键。

7、K20K27构成独立式按键,分别接在P20-P27上,当按键按下时,对应的口线输入0,同时相应的LED点亮。D20D27构成P20P27的状态指示,当某口线输出0,相应的LED点亮。有4个用途:1、当行列式键盘逐行扫描时,可做为正在被扫描的行的指示。2、当行列式键盘逐行扫描时,可做为已按下键的指示。G部分电路为串口通讯部分。U5 PL2303HX构成了USB转URAT电路,即完成USB口转TTL串口电平。U6 MAX232 构成了RS232转URAT电路,即完成RS232串口转TTL串口电平。由于单片机只有一个串口,所以以上两部分通过双刀双掷开关切换使用,当实验板上SCOM开关按下时选择USB

8、转URAT电路。否则选RS232转URAT电路。这部分电路可以完成PC机跟单片机的串行通讯,也可以完成两个单片机进行串行通讯。D_RXD和D_TXD指示收和发线上是否有信号,当通信时可观察到二灯闪烁。当选择USB转URAT电路时,PC机的USB口同时承担给实验板供电的任务。J部分为电源部分。当USB供电不足时可通过J3接入后备电源。SW_PWR为电源开关,闭合时电路板得电,同时D_P1亮。F1为自恢复保险,防止电源反接和短路,保护PC机USB口。1.3软件流程图开始按键输入数码管显示按键(S204)发送电脑显示是否成功发送结束Y重发NC程序实现了将按键对应的数字显示在数码管上,并给键S204赋

9、予了串口通信发送功能,按键后,电脑上会显示已按数字。若接收到重发标志,则重新发送。2.实验结果及讨论2.1实际电路设计及程序设计实际电路就是将行列式矩阵键盘与数码管连接在一起,并将电源等必须部件都加入到整个电路中,并把串口通讯电路连入电路。程序设计见附录。2.2.设计过程中的问题一开始只能按一个键显示一个数;到后面只能显示最开始按的四位;最后按键时数码管显示的数会消失。2.3实验数据及讨论通过不断的改进和调试,大多问题都得到解决。实验数据见附录。通过实验数据可以知道程序能始终保持数码管显示当前按的4位数,并最多按键20位,将之传送到电脑上,且能实现自动重发,目前尚无超过20位的电话号码,可以说

10、基本实现了电话键盘的功能。3.结论3.1课程设计的特点及贡献本次课程设计的工作量并不庞大,能让同学们在理论学习的基础上,在能力范围内,通过完成一个小功能系统的设计,不仅增强了同学们的动手能力,并在实践中加强了对单片机的理解,并且能够加深对电子电路和某些电子元件的认识,为今后能自己独立的进行一些系统的设计作出了贡献。3.2评估结果 本次设计的基本功能已经实现了电话拨号的功能,最多可拨20位,并通过发送键通过串口传送到电脑上,且能实现重发。3.3改善建议 1.可以对按键时的数码管显示问题进行改进,加一个中断程序可以实现。 2.可以将行列式键盘的剩余未用键赋值。 3.自动重发功能可以进行改进。3.4

11、自我体会 通过这次课程设计,我加深了对所学单片机知识的理解,并学会了KeiLC软件的使用,提高了自己的动手能力和编程能力。4.参考文献1.张友德、赵志英、涂时亮单片微型机原理、应用于实验,复旦大学出版社。2.谭浩强C语言程序设计,清华大学出版社。3.网络资源。5.附录1.实验程序 #include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar flag=0,TS; /flag为接受重播标志位 TS为服务台发送的数据uchar num; uchar t,symbol=0;uint i=0,j; uc

12、har save20=0;uchar code show=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;sbit p1=P27;sbit p2=P26;sbit p3=P25;sbit p4=P24;uint shownum;void delay(uchar x)uchar m,n;for(m=5;m>0;m-)for(n=x;n>0;n-);void delay1(uint x)uint m,n;for(m=x;m>0;m-)for(n=10;n>0

13、;n-);void delay2(uint x) /延时1ms uint m,n;for(m=x;m>0;m-)for(n=110;n>0;n-);void savenum(num)uchar z;for(z = 20; z>0; z-)savez=savez-1;save0=num;i+;void display(Q,B,S,G) if(i=1) P0=showG; p1=0;p2=1;p3=1;p4=1; / 0 为开启 段选 高 为亮 delay(100); if(i=2) P0=showG; p1=0;p2=1;p3=1;p4=1; / 0 为开启 段选 高 为亮 d

14、elay(100); P0=showS; p1=1;p2=0;p3=1;p4=1; delay(100); if(i=3) P0=showG; p1=0;p2=1;p3=1;p4=1; / 0 为开启 段选 高 为亮 delay(100); P0=showS; p1=1;p2=0;p3=1;p4=1; delay(100); P0=showB; p1=1;p2=1;p3=0;p4=1; delay(100); if(i=4) P0=showG; p1=0;p2=1;p3=1;p4=1; / 0 为开启 段选 高 为亮 delay(100); P0=showS; p1=1;p2=0;p3=1;p

15、4=1; delay(100); P0=showB; p1=1;p2=1;p3=0;p4=1; delay(100); P0=showQ; p1=1;p2=1;p3=1;p4=0; delay(100); if(i>4) P0=showG; p1=0;p2=1;p3=1;p4=1; / 0 为开启 段选 高 为亮 delay(100); P0=showS; p1=1;p2=0;p3=1;p4=1; delay(100); P0=showB; p1=1;p2=1;p3=0;p4=1; delay(100); P0=showQ; p1=1;p2=1;p3=1;p4=0; delay(100)

16、; void main() /* 串口通信设置*/EA=1; /开总开关IT0=1;EX0=1;TMOD=0x20; /中断工作方式为0TH1=0xFD; /波特率为9600 用11.0592Mz晶振TL1=0xFD;TR1=1; /启动定时、计数器工作SM0=0; /工作方式1(10位异步收发器 )SM1=1; /工作方式1(10位异步收发器 REN=1; /启动串口接收数据ES=1; /关闭中断PCON=0x00; /复位时 while(1) P2=0xfe; /将最低位(第一行)至零,1111 1110 P3初始化t=P2;/此处P3会随着按键变的t=t&0xf0;/按位与,一旦

17、有键按下,高四位肯定有一个被拉低为0;temp 肯定不会等于0xf0 了/之所以要与一下,主要是使低四位全为0 if(t!=0xf0)/说明第一行有键被按下,高四位有一个被至零了delay1(3000); /去抖switch(t)case 0x70: num=1;savenum(num); break;/第一列的键盘被按下 也就是第一行第一列被按下case 0xb0: num=2;savenum(num); break;/第一行第二列 case 0xd0: num=3; savenum(num); break;/第一行第三列case 0xe0: symbol=1;break; /* 第二行扫描

18、 */P2=0xfd; /1111 1101 t=P2;t=t&0xf0;if(t!=0xf0)delay1(3000);switch(t)case 0x70: num=4; break;case 0xb0: num=5; break; case 0xd0: num=6; break;savenum(num); /* 第三行扫描 */P2=0Xfb; /1111 1011 t=P2;t=t&0xf0;if(t!=0xf0)delay1(3000);switch(t)case 0x70: num=7; break;case 0xb0: num=8; break; case 0xd0: num=9; break;savenum(num); /* 第四行扫描 */P2=0Xf7; /1111 0111 t=P2;t=t&0xf0;if(t!=0xf0)delay1(3000);switch(t)cas

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论