单片机论文-矩阵键盘的设计.docx
- 文档编号:247552
- 上传时间:2022-10-07
- 格式:DOCX
- 页数:9
- 大小:102.22KB
单片机论文-矩阵键盘的设计.docx
《单片机论文-矩阵键盘的设计.docx》由会员分享,可在线阅读,更多相关《单片机论文-矩阵键盘的设计.docx(9页珍藏版)》请在冰豆网上搜索。
矩阵键盘的设计
摘要:
矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,即时在LED数码管上。
单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。
4*4矩阵式键盘采用AT89C51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用汇编语言编程。
单片机将检测到的按键信号转换成数字量,显示于LED显示器上。
该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。
关键字:
80C51芯片;矩阵式;LED;键盘
MtrixoftheKeyboarddesign
Abstract:
Matrixkeyboardbuttodaythemostwidelyusedkeyboardmode,theN-portsystemtocontroltheN*Nkeys,theLEDdigitaltubeimmediately.Itismicroprocessorcontrolledkeyboardanddisplaysystemthatcandisplayreal-timeindifferentkeys,thecoreofthemicrocontrollerandthekeyboardmatrixcircuitpartofthemaincircuitofthebuttonsanddisplaytherelationshipbetweenthematrixtechnologyandequipmentsystemhardware,softwarevariouspartsoftheimplementation.4*4matrixkeyboardusingAT89C51microcontrollercore,mainlybythekeyboardmatrixcircuit,decodingcircuit,displaycircuitandothercomponents,softwareselectionofassemblylanguageprogramming.Microcontrollertodetectkeysignalsintodigital,displayedontheLEDdisplay.Thesystemisflexible,easytooperate,highreliability,willhavebroaderprospectsofdevelopment.
Keywords:
80C51chip;Matrix;LED;keyboard
引言
本实验是在基于PROTUES平台下,运用80C51芯片编写程序设计实现的矩阵式键盘。
通过对矩阵键盘的硬件电路的设计及对其进行程序汇编和运行,通过单片机的内部控制实现对硬件电路的设计,从而实现对4*4矩阵键盘的识别。
用单片机的并行P1口连接4*4矩阵键盘,并以单片机的P1.0-P1.3口作键盘输入的列线,以单片机的P1.4-P1.7口作为键盘输入的行线,然后用P0.0-P0.6作输出线,通过电
9
阻在显示器上显示不同的符号按键“0-F”[1]。
在硬件电路的基础上加上软件程序的控制来设计实现。
1硬件设计
1.14*4矩阵式键盘识别显示系统概述
矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。
显示按键信息,省下了很多的I/O端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。
并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按键。
矩阵式键盘简介:
矩阵式键盘又称行列键盘,它是用N条I/O线作为行线,N条I/O线作为列线组成的键盘。
在行线和列线的每个交叉点上设置一个按键。
这样键盘上按键的个数就为N*N个[2]。
这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。
最常见的键盘布局如图1所示。
一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式,本设计就采用这个键盘模式。
图1键盘布局
矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。
1.2电路硬件说明
(1)在“单片机系统”区域中,把单片机的P1.0-P1.7端口通过8联拨动拨码开关JP3连接到“4*4行列式键盘”区域中的M1-M4,N1-N4端口上[3]。
即将P1口作为整个系统的输入接口电路。
(2)在“单片机系统”区域中,把单片机的P0.0-P0.6端口通过上拉电阻连
接到“静态数码显示模块”区域中的任何一个a-g端口上[4]。
(3)此实验采用的是共阴极LED显示块,只有当a-g端口输入高电平时才有效,即显示块中的对应的发光二极管才发光,低电平时不显示,通过a-g端口的不同输入使显示器显示不同的字符。
1.3硬件电路设计及电路图
硬件电路设计图如下图所示。
把单片机的P1.0-P1.7端口通过8联拨动拨码开关连接到“4*4行列式键盘”,其中P1.0-P1.3作为列线,P1.4-P1.7作为行线,把单片机的P0.0-P0.6端口连接到共阴极“静态数码显示模块”区域中对应的a-g端口上;系统首先通过CPU对全部键盘进行扫描,即把第一根行线置为“0”状态,其余行线置于“1”状态,读入输入缓冲器的状态,若其状态全为“1”表明该行无键按下,再将第二根行线置为“0”状态,同样读入输入缓冲器的状态,如其状态也全为“1”,则置第一根行线置为“0”状态,以此类推[5]。
如读入输入缓冲器的状态不全为“1”,确定哪一根列线为“0”状态,当某个键的行线和列线都为“0”状态时,表明该键按下。
最后通过显示程序将该键的序号显示出来。
图2硬件电路图
2程序说明及其流程图
2.1汇编程序
KEYEQU30H
ORG0000H ;入口地址
SJMPSTARTSTART:
MOVP0,#00H
JIXU:
MOVP1,#0FFH ;判第0行是否有键按下
CLRP1.4 ;将P1.4清零
MOVA,P1
ANLA,#0FH ;屏蔽高4位
XRLA,#0FH
JZNOKEY0 ;A为0,转向NOKEY0
LCALLDELAY10MS ;延时,去抖动
MOVA,P1 ;再确认一次
ANLA,#0FHXRLA,#0FH
JZNOKEY0 ;A为0,转向NOKEY0
MOVA,P1 ;判哪一个键按下
ANLA,#0FH
CJNEA,#0EH,NEXT1MOVKEY,#0
LJMPOK ;转向显示程序
NEXT1:
CJNEA,#0DH,NEXT2MOVKEY,#1
LJMPOK
NEXT2:
CJNEA,#0BH,NEXT3MOVKEY,#2
LJMPOK
NEXT3:
CJNEA,#07H,NOKEY0MOVKEY,#3
LJMPOK
NOKEY0:
MOVP1,#0FFH ;判第1行是否有键按下
CLRP1.5 ;将P1.5清零
MOVA,P1
ANLA,#0FH ;屏蔽高4位
XRLA,#0FH
JZNOKEY1 ;A为0,转向NOKEY1
LCALLDELAY10MS ;延时,去抖动
MOVA,P1 ;再确认一次
ANLA,#0FHXRLA,#0FH
JZNOKEY1 ;A为0,转向NOKEY1
MOVA,P1 ;判哪一个键按下
ANLA,#0FH
CJNEA,#0EH,NEXT5MOVKEY,#4
LJMPOK
NEXT5:
CJNEA,#0DH,NEXT6MOVKEY,#5
LJMPOK
NEXT6:
CJNEA,#0BH,NEXT7MOVKEY,#6
LJMPOK
NEXT7:
CJNEA,#07,NOKEY1MOVKEY,#7
LJMPOK
NOKEY1:
MOVP1,#0FFH ;判第2行是否有键按下
CLRP1.6 ;将P1.6清零
MOVA,P1
ANLA,#0FH ;屏蔽高4位
XRLA,#0FH
JZNOKEY2 ;A为0,转向NOKEY2
LCALLDELAY10MS ;延时,去抖动
MOVA,P1 ;再确认一次
ANLA,#0FHXRLA,#0FH
JZNOKEY2 ;A为0,转向NOKEY2
MOVA,P1 ;判哪一个键按下
ANLA,#0FH
CJNEA,#0EH,NEXT9MOVKEY,#8
SJMPOK
NEXT9:
CJNEA,#0DH,NEXT10MOVKEY,#9
SJMPOK
NEXT10:
CJNEA,#0BH,NEXT11MOVKEY,#10
SJMPOK
NEXT11:
CJNEA,#07,NOKEY2MOVKEY,#11
SJMPOK
NOKEY2:
MOVP1,#0FFH ;判第2行是否有键按下
CLRP1.7 ;将P1.6清零
MOVA,#P1
ANLA,#0FH ;屏蔽高4位
XRLA,#0FH
JZNEXT16 ;A为0,转向NEXT16
LCALLDELAY10MS ;延时,去抖动
MOVA,P1 ;再确认一次
ANLA,#0FH
XRLA,#0FH
JZNEXT16 ;A为0,转向NEXT16
MOVA,P1 ;判哪一个键按下
ANLA,#0FH
CJNEA,#0EH,NEXT13MOVKEY,#12
SJMPOK
NEXT13:
CJNEA,#0DH,NEXT14MOVKEY,#13
SJMPOK
NEXT14:
CJNEA,#0BH,NEXT15MOVKEY,#14
SJMPOK
NEXT15:
CJNEA,#07H,NEXT16MOVKEY,#15
SJMPOKNEXT16:
LJMPJIXU
OK:
MOVA,KEY ;查表显示
MOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,A
LJMPJIXU
DELAY10MS:
MOVR6,#10 ;延时
D1:
MOVR7,#248DJNZR7,$
DJNZR6,D1RET
TABLE:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,6FH,77H,7CH,39H,5EH,79H,71H
END
Y
2.2流程图
开始
N
是否有键按下
Y
识别是哪一个键按下
扫描
通过P0口查询显示该序号
图3系统程序图
2.3仿真结果及分析
在proteus中设计好实验电路后,然后在proteus编程环境中进行程序设计和编译,生成HEX文件并加载
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 论文 矩阵 键盘 设计