矩阵式键盘识别技术.docx
- 文档编号:30222666
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:14
- 大小:336.39KB
矩阵式键盘识别技术.docx
《矩阵式键盘识别技术.docx》由会员分享,可在线阅读,更多相关《矩阵式键盘识别技术.docx(14页珍藏版)》请在冰豆网上搜索。
矩阵式键盘识别技术
第一节引言
矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N
个按键,即时在LED数码管上。
单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。
4*4矩阵式键盘采用AT89S51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用汇编语言编程。
单片机将检测到的按键信号转换成数字量,显示于LED显示器上。
该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。
1.14*4矩阵式键盘识别显示系统概述
矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。
显示按键信息,既降低了成本,又提高了精确度,省下了很多的I/O端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。
并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按键,在这种情况下如果用独立式按键的话,显然太浪费I/O端口资源,所以必须使用矩阵式键盘。
矩阵式键盘简介:
矩阵式键盘又称行列键盘,它是用N条I/O线作为行线,N条I/O线作为列线组成的键盘。
在行线和列线的每个交叉点上设置一个按键。
这样键盘上按键的个数就为N*N个。
这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。
最常见的键盘布局如图1-1所示。
一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式,本设计就采用这个键盘模式。
图1-1键盘布局
随着21世纪的到来,资源危机接踵而至。
快速席卷整个国家,这一状况还将随着时间的推移和社会的发展而更加严重。
国家提倡资源节约型社会,资源危机已成为全球性的突出问题,利用科技手段缓解这一危机,将是人类主要的出路。
电子信息行业是人类社会的高科技行业之一,是设施现代化的基础,也是人类通往科技巅峰的直通路。
电子行业的发展从长远来看很重要,但最主要的还是科技问题。
国家设施的现代化的根本出路在于全面提高科技水平,现代的社会经营模式由传统模式向现代化、高科技模式转变,由粗放型向集约型方向转变,必须要求科技有一个大的发展,进行一次新的技术革命。
矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。
是它能准确、实时、高效地显示按键信息,以提高工作效率和资源利用率。
随着计算机技术和电子科技的迅猛发展,计算机和电子产品的价格日益降
低,可靠性日益提高。
本文旨在设计一套能对按键信息进行自动实时显示的系
统。
1.2本设计任务和主要内容
本论文主要研究单片机控制的键盘识别显示系统,分别对按键信息和显示电路以及软、硬件各个部分进行研究。
主要内容如下:
1.设计一个N×M的键盘和LED数码管的显示电路。
2.按键数量不少于16个。
3.有键按下时,在数码管上显示按下的按键的键号值。
4.5秒钟后,没有键按下时,数码管闪烁。
第二节系统主要硬件电路设计
2.1单片机控制系统原理
图2-1单片机控制系统原理框图
2.2单片机主机系统电路
AT89C51单片机是51系列单片机的一个成员,是8051单片机的简化版。
内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与IntelMCS-51系列单片机的指令和输出管脚相兼容。
由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。
图2-2单片机主机系统图
2.2.1时钟电路
时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:
内部振荡和外部振荡。
MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图2-2所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。
图2-2中外接晶体以及电容C2和C3构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选11.0592MHz。
2.2.2复位电路
为了初始化单片机内部的某些特殊功能寄存器,必须利用复位电路,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。
单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两
个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。
复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H,SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。
复位操作有两种情况,即上电复位和手动(开关)复位。
本系统采用上电复位方式。
图2-2中R1和Cl组成上电复位电路,其值R取为1KΩ,C取为10pF。
2.2.3矩阵式键盘电路
AT89C51单片机的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;P1口输出按键信息,在数码管上显示每个按键的“0-F”序号。
实际电路图连接如图2-4所示。
图2-3矩阵式键盘电路
2.3译码显示电路
译码电路中常用的显示器有LED(数码管)和LCD(液晶显示器)。
这两种显示器都具有线路简单、耗电少、成本低、寿命长等优点。
本系统输出结果选用1个LED显示。
数码管有共阴共阳之分,本系统采用8段共阴型LED,其原理图如图2-5所示。
数码管内部有8个发光二极管,公共端由8个发光二极管的阴极并接而成,正常显示时公共端接低电平(GND),各发光二极管是否点亮取决于a-dp各引脚上是否是高电平。
LED数码管的外形结构如图2-4,外部有10个引脚,其中3,8脚为公共端也称位选端,其余8个引脚称为段选端,当要使某一位数码管显示某一数字((0-9中的一个)必须在这个数码管的段选端加上与数字显示数字对应的8位段选码(也称字形码),在位选端加上低电平即可。
由于系统要显示的内容比较简单,显示量不多,所以选用数码管既方便又经济。
LED有共阴极和共阳极两种。
如图3-1所示。
二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。
一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。
当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。
符号和引脚共阳极共阴极
图2-4数码管两种接法
图2-5译码显示电路
当无按键闭合时,P1.0--P1.3与P1.4--P1.7之间开路。
当有键闭合时,与闭合键相连的两条I/O口线之间短路。
判断有无按键按下的方法是:
第一步,置列线P1.4--P1.7为输入状态,从行线P1.0--P1.3输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。
第二步,行线轮流输出低电平,从列线P1.4--P1.7读入数据,若有某一列为低电平,则对应行线上有键按下。
综合一二两步的结果,可确定按键编号。
但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。
由于本显示电路功能简单,为使编程简单,采用直接输出模式,即把P0.0-P0.7端口用8芯排线连接到数码显示模块区域中的a-h端口上,要求:
P0.0对应着a,P0.1对应着b,……,P0.7对应着h。
表2-1LED显示段码
字型
共阳极段
共阴极段
字型
共阳极段
共阴极段
0
C0H
3FH
9
90H
6FH
1
F9H
06H
A
88H
77H
2
A4H
5BH
B
83H
7CH
3
B0H
4FH
C
C6H
39H
4
99H
66H
D
A1H
5EH
5
92H
6DH
E
86H
79H
6
82H
7DH
F
84H
71H
7
F8H
07H
空白
FFH
00H
8
80H
7FH
P
8CH
73H
第3节系统的软件设计
3.1软件流程图
N
Y
N
Y
图3-1软件设计流程图
3.2系统程序设计
ORG0000H
LJMPSTART
ORG000BH
LJMPDSZD
ORG0030H
START:
MOVDPTR,#TAB
MOVTMOD,#01H
MOVTH0,#9EH
MOVTL0,#58H
SETBET0
SETBEA
SETBTR0
LP0:
MOVR0,#4
MOVR1,#00H
MOVA,#0FEH
LP1:
MOVP1,A
JNBP1.4,LP2
INCR1
JNBP1.5,LP2
INCR1
JNBP1.6,LP2
INCR1
JNBP1.7,LP2
INCR1
RLA
DJNZR0,LP1
LJMPLP0
SETBTR0
RETI
MOVR7,#00H
LP2:
LCALLFUZHI
CLRTR0
MOVA,R1
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
MOVP0,#0FFH
LJMPSTART
DSZD:
MOVTH0,#9EH
MOVTL0,#58H
INCR7
CJNER7,#200,LP4
LP3:
CLRTR0
MOVR7,#00H
MOVA,#0
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
MOVP0,#0FFH
LCALLDELAY
MOVR0,#4
MOVR1,#00H
MOVA,#0FEH
LP5:
MOVP1,A
JNBP1.4,LP4
INCR1
JNBP1.5,LP4
INCR1
JNBP1.6,LP4
INCR1
JNBP1.7,LP4
INCR1
RLA
DJNZR0,LP5
LJMPLP3
LP4:
RETI
FUZHI:
MOVTH0,#9EH
MOVTL0,#58H
RET
DELAY:
MOVR5,#0FFH
D1:
MOVR6,#0FFH
D2:
MOVR7,#0FFH
D3:
DJNZR7,D3
D4:
DJNZR6,D4
DJNZR5,D1
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H
DB90H,88H,83H,0C6H,0A1H,86H,8EH,
END
第四节PROTEUS仿真结果
一个4×4的键盘和LED数码管的显示电路。
按键总数为16个。
当有键按下时,在数码管上显示按下的按键的键号值。
依次为:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F这16个数值。
并且在5秒钟后,没有键按下时,数码管闪烁。
下图为按下0键时,数码管显示的结果。
通过实验仿真验证,各个按键工作正常。
图5-1仿真结果
第五节课程设计总结
在指导老师和同学的帮助下,我确实学到了不少平时在课堂上所学不到的知识。
这样的课程设计不论是对我们的理论知识还是实践能力都有很大的帮助,可以使我们能更快更准确的掌握专业方面的理论知识。
我感觉这次设计我们得到更多的是,对办任何事情我们都要先经过认真细致的观察和分析,才能确定我们到底该如何去做它,要不然,只会是事倍功半,耽误我们的办事效率。
我觉得这个方面的经验是最宝贵的,也是我们在毕业后,进入社会所必须的能力。
我们也只有具备了这个基本的能力后,才不至于在以后的生活,学习和工作中误入歧途,对自己和对他人造成不必要的损失。
通过此次的单片机课程设计,我不仅加深了对单片机理论的理解,深刻懂得了要不断地实践才能掌握知识,而且还学会了如何去加强锻炼创新精神,从而不断地战胜自己,超越自己。
最后,衷心感谢老师的指导和同学的帮助!
参考文献
[1]江世明、黄同成单片机原理及应用,北京:
中国铁道出版社,2010.
[2]江世明单片机原理及应用实验教程,北京:
中国铁道出版社,2010.
[3]张一斌、余建坤单片机原理课程设计,中南大学出版社,
[4]、杨文龙,《单片机原理及应用》,西安电子科技大学出版社1993,6,第1版
[5]、夏路易,石宗义,《电路原理图与电路板设计教程》北京希望电子工业出版2002
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 矩阵 键盘 识别 技术