基于51单片16路矩阵键盘抢答器文档格式.docx
- 文档编号:17099699
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:28
- 大小:344.93KB
基于51单片16路矩阵键盘抢答器文档格式.docx
《基于51单片16路矩阵键盘抢答器文档格式.docx》由会员分享,可在线阅读,更多相关《基于51单片16路矩阵键盘抢答器文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
2.1.1 时钟电路
单片机必须在时钟的驱动下才能工作。
在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。
时钟电路如图2-1-1所示。
图2-1-1 时钟电路
一般选用石英晶体振荡器。
此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。
电路中两个电容C1,C2的作用有两个:
一是帮助振荡器起振;
二是对振荡器的频率进行微调。
C1,C2的典型值为30PF。
单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。
其大小是时钟信号频率的倒数,常用fosc表示。
图中时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12µ
s。
2.1.2 复位电路
单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图2-1-1所示。
图2-1-1 复位电路图
图中由按键RESET1以及电解电容C3、电阻R2构成按键及上电复位电路。
由于单片机是高电平复位,所以当按键RESET1按下时候,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态。
当上电后,由于电容的缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。
值得注意的是,在设计当中使用到了硬件复位和软件复位两种功能,由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能的实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。
软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。
2.1.3 单片机内部结构的描述
主要特性:
·
与MCS-51兼容
4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24MHz
三级程序存储器锁定
128×
8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度
2.2 显示电路设计
2.2.1 器件简介
1.AT89C51单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器
2.LED显示器是由发光二极管显示字段的显示器件,也可称为数码管。
单片机系统中通常使用8段LED数码显示器,其外形及引脚如图1(a)所示,由图可见8段LED显示器由8个发光二极管组成。
其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,通过不同的组合可用来显示各种数字,包括A~F在内的部分英文字母和小数点“.”等字样
共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的,当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合从而显示各种字符。
8个笔划段dpgfedcba对应于1B(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就可以表示欲显示字符的字形代码。
例如,对于共阴极LED显示器,当公共阴极接地(为零电平),而阳极dpgfedcba各段为01110011时,显示器显示“P”字符,即对于共阴极LED显示器,“P”字符的字形码是0×
73。
如果是共阳极LED显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(0x8C)。
这里必须注意的是:
很多产品为方便接线,常不按规则的方法去对应字段与位的关系,这时字形码就必须根据接线自行设计了。
2.2.2 电路设计
显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。
在这里我们使用的是八段数码管显示,通常在显示上我们采用的方法一般包括两种:
一种是静态显示,一种是动态显示。
其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;
动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。
在本设计中根据实际情况采用的是动态显示方法。
4位八段数码管显示电路如图3-4所示。
图2-2-2 数码管驱动电路图
2.3 键盘电路设计
键盘是人与单片机打交道的主要设备。
关于键盘硬件电路的设计方法也可以在文献和书籍中找到,配合各种不同的硬件电路,这些书籍中一般也提供了相应的键盘扫描程序。
站在系统监控软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象。
在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。
它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;
矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。
其次就是消除在按键过程中产生的“毛刺”
现象。
这里采用最常用的方法,即延时重复扫描法,延时法的原理为:
因为“毛刺”脉冲一般持续时间短,约为几ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里我们取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。
在本文设计中采用了独立键盘的方式,本设计中有16个抢答按键输入,一个开始按键、一个结束按键,此外还有抢答时间调整键、回答时间调整键,加一按键、减一按键各一个。
如图2-3所示。
图2-3 抢答键盘电路图
图2-3-1 复位键盘电路图
在2-3-1图中,开始及复位按键接到单片机的3、4脚,这里用到了单片机3、4脚复合功能中的IO端口功能,单片机通过读取3、4脚的P1.2、P1.3的IO端口值来判断当前是否处于抢答开始状态或抢答结束状态。
2.4 发声电路
本文设计如图2-4所示,单片机通过内部定时器的操作实现交替变换的波形输出驱动扬声器发声。
图2-4 报警电路图
第3章 软件设计
3.1程序流程
3.1.1 定时中断模块
由于抢答器中需要显示倒计时来提示选手们抢答时间,,当时间小于6秒时,抢答器需要提供警告,以及当抢答时间结束时,要关闭外部中断,表示抢答结束,此时再有键按下抢答器也不会做出反应。
流程图如图3-1-1所示。
图3-1-1 抢答器定时器中断流程图
3.1.2 报警模块
报警模块主要作用有两个,一是当时间还剩5秒时,蜂鸣器放出报警,以此提示选手们抢答时间将要结束;
二是当有选手第一时间抢答成功时发出报警声,提示其他选手不必再抢答。
报警程序流程图如图3-1-2所示。
图3.1.2 警程序流程图
3.1.3 控制模块
控制模块主要作用是对抢答器的开始和复位功能进行控制,主要由人来实现功能。
当开始键被按下时,抢答器开始正常工作;
当抢答器停止工作是,可以按下复位键使抢答器回答初始化状态。
控制程序流程图如图3-1-3所示。
图3-1-3控制程序流程图
3.1.4 主流程图
图3-1-4主程序设计流程图
第4章制作与调试
4.1仿真设计
4.1.1 抢答器Keil软件的仿真
图4-1-1程序汇编图
本设计程序汇编采用Keil软件,程序汇编结果如图4-1所示。
Keil软件软件是目前最流行的开发MCS-52系列单片机的软件。
该软件提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,并通过一个集成开发环境将他们组合在一起。
4.1.2 抢答器protenus软件的仿真
绘制抢答器的软件仿真图步骤分一下四步:
1.查找所需要的元器件;
2.根据电路图进行连线;
3.是用来写线所对应的坐标;
4.装载keil生成和HEX文件进行仿真。
通过以上步骤,来实现抢答器设计的仿真实现,仿真电路图如4-1-2所示
图4-1-2仿真电路图
4.1.3 调试与运行
把编写好的程序放入仿真软件中,结合硬件电路进行调试与运行。
1.在仿真软件中按下开始按钮,从而达到仿真的目的;
2.LED显示器显示当前0030初始化;
3.按照本次实际任务要求,逐个调试功能是否能实现。
运行过程如下:
1.按下运行键,系统自动复位,如图4-1-3-1。
图4-1-3-1
2.当按下开始按键时,选手开始抢答,3号选手抢答成功,数码管显示
选手号。
如图4-1-3-2。
图4-1-3-2
3.最后的5秒的答题倒计时,系统蜂鸣器控制将会发出声音以提示选手,系统30秒倒计时时间到,选手答题结束,如图4-1-3-3。
图4-1-3-3
4.按下复位按键,系统回复到初状态,预示可以进行下一轮答题.,如图4-1-3-4。
图4-1-3-4
总结
本设计是选用单片机技术为核心的设计方法设计的一款智能电子抢答器。
系统主要以单片机为核心元件,以编程来控制单片机,达到抢答器所能实现的功能。
系统硬件设计包括:
单片机的介绍、复位电路、时钟电路、控制电路、显示电路、报警电路等的设计。
系统软件设计包括:
中断模块、报警模块、控制模块、主程序模块的设计等。
平时我们学习的只是理论知识,但是繁多的理论让人很难理解。
在听完老师讲课之后,我们也不清楚到底自己懂多少。
在做设计这段时间里,我们不但巩固了那些已经掌握的知识,同时还学习了以前没学好的知识。
做毕业设计的收获是很大的,它不但使我对单片机的知识有了一个整体的认识,使知识形成了一个连贯的体系;
还让我们知道了在课堂上学到的原理知识、器件(如;
8255芯片80C52等等)通过各种渠道可以实现不同的功能。
而且随着设计的深入,我们对单片机及其扩展有了更深刻的认识。
在设计的过程中,虽然智能抢答器相关资料可以在图书馆或者网上查阅,但这并不表示不用心就可以做好设计。
我也深刻认识到单片机在日常生活中的强大用途,同时也被单片机的强大微处理能力所震撼,随着社会的发展,单片机将成为人类社会不可缺少的重要科技之一。
我们应该更加努力地学习单片机,为社会发展作贡献。
最后我们要感谢含辛茹苦、默默地在后面辅导我们的老师,我们的成功离不开你们的努力,现在我们唯一能做的,就是不断学习,在学习中提高自己,以不辜负你们的期望。
致 谢
在这次的课程设计过程当中,首先感谢老师。
他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。
从项目开始到项目的最终完成,老师都始终给予细心的指导和不懈的支持。
老师不仅在学业上给我以精心指导,同时还在思想给以无微不至的关怀,在此谨向老师致以诚挚的谢意和崇高的敬意。
这次的课程设过程,还得非常感谢我搭档,她分别在编写程序、硬件电路的设计和实物搭接上,给我切实的帮助和宝贵的建议。
是她的热心和乐于助人的品质,让我看到友谊的宝贵,更深刻的感受到学习的快乐。
最后,祝愿老师工作顺利,身体健康!
你们的事业会发展的更加美好!
祝愿我的搭档,前程似锦!
参考文献
[1]龚运新.单片机C语言项目式教程.北京邮电大学出版社,2012
[2]王迎旭.单片机原理及应用.机械工业出版社,2004
[3]何小敏.微型计算机原理及应用.机械工业出版社,2003
[4]刘乐善.微型计算机接口技术及应用.华中科技大学出版社,1999
[5]房小翠.单片机实用系统设计技术.国防工业出版社,2001
[6]LNK304技术资料.忽略此处:
//忽略
附录1 整机原理图
附录2元器件明细表
代号
AT89C51
项目
代号
名称、型号、规格
数量
备注
更改
1
微处理器
2
7SEG-MPX4-CA-BLUE
7段数码管
3
CAP
电解电容
4
CAP-ELEC
瓷片电容
5
CRYSTAL
晶体振荡器
6
LED-BIGY
发光二极管
7
LED-RED
8
NPN
二极管
9
RES
电阻
10
RESPACK-8
上拉电阻
11
BUTTON
弹性开头
21
12
BUZZER
蜂鸣器
旧底图总号
标记
单号
签名
日期
底图总号
拟制
2010.7.12
多路抢答器元件表
审校
等级标记
第2张
共2张
标准化
批准
附录3程序清单
#include<
reg51.h>
unsignedcharcodetable[]={0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x84};
unsignedcharcodetable0[]={0xfe,0xfd,0xfb,0xf7};
unsignedcharcodetable2[]={0xef,0xdf,0xbf,0x7f};
unsignedchardisplay[]={0,0,0,0};
voidsw1();
voidsw2();
voidsw3();
voidsw4();
voidxianshi();
voidinit();
unsignedchartemp,num2,x,x1,x2,a,count;
intnum,num1;
unsignedcharkey;
unsignedchari,j;
sbitk1=P1^0;
sbitk2=P1^1;
sbitk3=P1^2;
sbitk4=P1^3;
sbitsp=P1^4;
sbitl1=P1^5;
sbitl2=P1^6;
sbitP3_4=P3^4;
sbitP3_5=P3^5;
sbitP3_6=P3^6;
sbitP3_7=P3^7;
voiddelay(unsignedcharz)
{
unsignedcharx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
}
voidinit()
a=0;
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
if(k1==0)
{
delay(5);
if(k1==0)
num++;
if(num==99)
{
num=0;
}
num2=num;
while(k1==0);
}
if(k2==0)
{
if(k2==0)
num--;
if(num==-1)
num=99;
num2=num;
while(k2==0);
if(k3==0)
if(k3==0)
x++;
if(x==2)
x=0;
while(k3==0);
voidkeyboad()
while
(1)
P3=0xff;
P3_4=0;
temp=P3;
temp=temp&
0x0f;
if(temp!
=0x0f)
=0x0f)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片 16 矩阵 键盘 抢答