单片机44矩阵键盘控制LEDWord下载.docx

上传人:b****6 文档编号:16216806 上传时间:2022-11-21 格式:DOCX 页数:11 大小:101.44KB
下载 相关 举报
单片机44矩阵键盘控制LEDWord下载.docx_第1页
第1页 / 共11页
单片机44矩阵键盘控制LEDWord下载.docx_第2页
第2页 / 共11页
单片机44矩阵键盘控制LEDWord下载.docx_第3页
第3页 / 共11页
单片机44矩阵键盘控制LEDWord下载.docx_第4页
第4页 / 共11页
单片机44矩阵键盘控制LEDWord下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

单片机44矩阵键盘控制LEDWord下载.docx

《单片机44矩阵键盘控制LEDWord下载.docx》由会员分享,可在线阅读,更多相关《单片机44矩阵键盘控制LEDWord下载.docx(11页珍藏版)》请在冰豆网上搜索。

单片机44矩阵键盘控制LEDWord下载.docx

键盘

目录

1引言1

24×

4矩阵键盘控制LED工作原理及软硬件设计、仿真调试2

2.14×

4矩阵式键盘识别显示系统概述2

2.24×

4矩阵式键盘原理3

2.34×

4矩阵式键盘控制LED显示方法..4

2.44×

4矩阵式键盘软件编程6

2.54×

4矩阵式键盘软件仿真调试分析11

3结论12

4谢词13

5参考文献13

引言

本实验是在基于PROTUES平台下,运用80C51芯片编写程序设计实现的矩阵式键盘。

通过对矩阵键盘的硬件电路的设计及对其进行程序汇编和运行,通过单片机的内部控制实现对硬件电路的设计,从而实现对4*4矩阵键盘的识别。

用单片机的并行P1口连接4*4矩阵键盘,并以单片机的P1.0-P1.3口作键盘输入的列线,以单片机的P1.4-P1.7口作为键盘输入的行线,然后用P0.0-P0.6作输出线,通过电阻在显示器上显示不同的符号按键“0-F”[1]。

在硬件电路的基础上加上软件程序的控制来设计实现。

24×

4矩阵键盘控制LED工作原理及软硬件设计、仿真调试

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键盘布局

矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。

4矩阵式键盘原理

行列式键盘的接法比独立式键盘的接法复杂,编程实现上也会比较复杂。

但是,在占用相同的I/O端口的情况下,行列式键盘的接法会比独立式接法允许的按键数量多,其原理图如图1所示。

图24×

4矩阵式键盘原理图

实际的工程中,可能会使用PIC16C5X这种通用的可编程的键盘、显示接口器件,使用PIC16C5X单片器件就能够完成键盘输入和显示控制两种功能。

  行列式键盘的工作方式是先用列线发送扫描字,然后读取行线的状态,查看是否有按键按下。

键盘部分提供一种扫描的工作方式,可以和具有64个按键的矩阵键盘相连接,能对键盘不断扫描、自动消抖、自动识别按下的键,并给出编码,能对双键或n个键同时按下的情况实行保护。

  在显示部分,它可以为发光二极管、荧光管及其他显示器提供按扫描方式工作的显示接口,而且为显示器提供多路复用信号,可以显示多达16位的字符或数字。

  键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的,其方法是将列线的所有I/O线均置成低电平,然后将行线电平状态读入累加器A中,如果有键按下,总会有一根行线被拉至低电平,从而使行输入不全为1。

  键盘中哪一个键按下可由列线逐列置低电平后,检查行输入状态来判断,其方法是依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的键不在此列,如果不全为1,则所按下的键必在此列,而且是在与0电平线相交的交点上的那个键。

3

4矩阵式键盘控制LED显示方法

(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端口的不同输入使显示器显示不同的字符。

2.4电路设计及电路图

把单片机的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”状态时,表明该键按下。

最后通过显示程序将该键的序号显示出来。

(如下图3)

4

图34×

4矩阵式键盘电路图

4矩阵式键盘软件编程

KEYEQU30H

ORG0000H;

入口地址

SJMPSTART

START:

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,#0FH

判哪一个键按下

CJNEA,#0EH,NEXT1

MOVKEY,#0

LJMPOK;

转向显示程序

NEXT1:

CJNEA,#0DH,NEXT2

MOVKEY,#1

LJMPOK

NEXT2:

CJNEA,#0BH,NEXT3

MOVKEY,#2

NEXT3:

CJNEA,#07H,NOKEY0

MOVKEY,#3

NOKEY0:

判第1行是否有键按下

CLRP1.5;

将P1.5清零

JZNOKEY1;

A为0,转向NOKEY1

延时,去抖动

CJNEA,#0EH,NEXT5

MOVKEY,#4

NEXT5:

CJNEA,#0DH,NEXT6

MOVKEY,#5

NEXT6:

CJNEA,#0BH,NEXT7

MOVKEY,#6

NEXT7:

CJNEA,#07,NOKEY1

MOVKEY,#7

NOKEY1:

判第2行是否有键按下

CLRP1.6;

将P1.6清零

JZNOKEY2;

A为0,转向NOKEY2

CJNEA,#0EH,NEXT9

MOVKEY,#8

SJMPOK

NEXT9:

CJNEA,#0DH,NEXT10

MOVKEY,#9

NEXT10:

CJNEA,#0BH,NEXT11

MOVKEY,#10

NEXT11:

CJNEA,#07,NOKEY2

MOVKEY,#11

NOKEY2:

CLRP1.7;

MOVA,#P1

JZNEXT16;

A为0,转向NEXT16

CJNEA,#0EH,NEXT13

MOVKEY,#12

NEXT13:

CJNEA,#0DH,NEXT14

MOVKEY,#13

NEXT14:

CJNEA,#0BH,NEXT15

MOVKEY,#14

NEXT15:

CJNEA,#07H,NEXT16

MOVKEY,#15

NEXT16:

LJMPJIXU

OK:

MOVA,KEY;

查表显示

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

DELAY10MS:

MOVR6,#10;

延时

D1:

MOVR7,#248

DJNZR7,$

DJNZR6,D1

RET

TABLE:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H

END

4矩阵式键盘软件仿真调试分析

在proteus中设计好实验电路后,然后在proteus编程环境中进行程序设计和编译,生成HEX文件并加载HEX文件,点启动,运行仿真[6]。

由于开始时P0口的值被赋为00H,P1口的值为FFH,当无键按下时,将P1.4口置0,再将P1口的值送A,屏蔽高4位,与0F相异或后,A的值变为0,即第0行没有键按下,转入NOKEY0子程序中,重新赋值P1口的值为FFH,将P1.5口置0后送A,屏蔽高4位,与0F相异或后,A的值又变为0,即第1行没有键按下[7],转入NOKEY1子程序中,同理,可以得知第2行和第3行也没有键按下。

因而,P0口没有被重新赋值,保持为00H不变,又显示器是共阴极的,此时P0.0-P1.6口均为“0”,即“a-g”段均不显示,从而显示器不显示,并转向程序的开始继续循环扫描键盘,直到有键按下为止。

3结论

回顾起此次课程设计,感觉受益匪浅,从拿到题目到完成整个编程,从理论到实践,学到很多很多的课堂理论中没学到过的东西,不仅对键盘的识别技术这一章节的知识点有了深刻的认识,而且对这学期开设的单片机这门课程有了更全面的了解。

通过这次单片机课程设计,还使我懂得了实践的重要性。

同时在程序调试的过程中提高自己的发现问题、解决问题、实际动手和独立思考的能力。

4致谢

本论文是在董锋老师的悉心指导下完成的。

老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。

不仅使我树立了远大的学术目标、掌握了基本的研究方法。

本论文从选题到完成。

在此,谨向老师表示崇高的敬意和衷心的感谢!

还要感谢同学们对我的关心、支持和帮助。

最后,感谢我远在百里之外的父母,是他们默默的关心和爱,让我在大学安逸地学习。

在今后的生活中,我会尽我最大的努力回报所有关心我的人。

5参考文献

[1]宋浩《单片机原理及应用》2005

[2]李光弟《单片机基础》(修订版)2001

[3]胡汉才《单片机原理及其接口技术》(第二版2004)

[4]博文视点《单片机程序实际及应用从基础到实践》2006

[5]谢自美《电子线路设计、实验、测试》2008

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动态背景

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1