矩阵键盘控制接口电路设计
矩阵式键盘接口通用IP核的设计与实现

化
工
自 动 化
及 仪
表
第 3 8卷
矩 阵 式 键 盘 接 口通 用 l 的设 计 与 实 现 P核
张俊 涛 张 弛
( 西 科 技 大学 电气 与 信 息 工程 学 院 , 安 70 2 ) 陕 西 10 1
摘
要
设 计 并 实现 一 种 基 于 F G 的 矩 阵 式键 盘 接 口 I PA P核 。 与传 统 的 软 件 扫 描 编 程 方 式相 比 。 用 应
o 厂o o ,— _ _ . 】 。I D 。 X
图 1 4×4矩 阵形 键 盘 电路
收 稿 日期 : 0 1 ) .3 2 1 41 1
第 6期
张俊 涛 等 . 阵 式 键 盘 接 口通 用 I 矩 P核 的设 计 与 实 现
; … : … ad sa …c b r c n mah o— — … e— tt a
s 7
■●
S 6
一
S 5
■■
S 4
-
R ro 1 _
S 3 -
ro .
S 2 -
。 厂 。
Sl ・_■ I_ -
’ 厂o o r 1 _ 一 l ’ 0 — K
S0 -_■■・-
R r。 o r。 o l - _
厂 。
上千万 门 , 逐渐 成 为嵌入 式系统设 计 的核心 器件 。
将 电子 系统 的核心 模块 设 计 成 I P核 , 入 到 F . 嵌 P
G 中, 论是在 减小 系统体积 、 低系统 功耗 , A 无 降 还
是 提高 系统 可靠 性 方面 都具 有 明显 的优 势 , 同时
C3 S1 5
2×2矩阵式键盘

2×2矩阵式键盘摘要:本设计主要是用来学习键盘扫描程序的设计,数码管的动态显示程序设计。
设计中,将单片机8051的并行口P1的P1.0,P1.1接键盘的行,将P1.2,P1.3接键盘的列,将并行口P2的P2.7~P2.0分别接数码管的数据段g,f,a,b,d,h,e,c. 以及将P3.6,P3.7分别接数码管的偏选端,当按下第0行0列时数码管就显示00,按下第0行1列时数码管就显示01,第1行0列时数码管就显示02,第1行1列时数码管就显示03。
本设计一共四个按键,用双数码管动态显示。
关键字:单片机,数码管动态显示,行列式键盘,共阴数码管一、矩阵式键盘工作原理如下图1,I/O接口线组成行、列结构,按键设置在行、列的交点上。
行线通过上拉电阻接+5V。
第一步是CPU检测键盘上是否有按键。
具体过程如下:P1.2, P1.3输出0,即将列P1.2, P1.3置成低电平,然后将行线P1.0,P1.1电平状态读入累加器A中。
如果有键按下,总有一根行线电平被拉至低电平,从而使行输入状态不全为“1”。
第二步是识别是哪一个键按下。
具体过程如下:先将P1.2输出为0,即将列P1.2置成低电平。
然后读入行线P1.0,P1.1电平状态,如果全为“1”,则按下的键不在此列;如果不全为“1”,则按下的键必在此列;而且是该列与“0”电平线相交的交点上的那个键。
再将P1.3输出为0,即将列P1.3置成低电平。
做法如上。
二、数码管动态显示原理A.数码管原理:在单片机应用系统中,经常用到LED数码管作为显示输出设备。
LED数码管虽然显示信息简单,但它具有显示清晰、亮度高、使用电压低、寿命长、与单片机接口方便等特点,所以在应用中经常使用它。
LED数码管显示器是由发光二极管按一定的结构组合起来的显示器件。
在单片机应用系统中通常使用的是8段式LED数码管显示器,他有公阳极和共阴极两种。
如图1—1所示。
其中共阳极8段发光二极管的阳极端连接在一起,阴极端分开控制,使用时公共端接电源,要使哪根数码管亮,则对应的阴极接低电平。
矩阵键盘的接口与控制

if(recode==0xfe) { switch(sccode) { case 0xfe: keyvalue=0;break; case 0xfd:keyvalue=1;break; case 0xfb:keyvalue=2;break; case 0xf7:keyvalue=3;break; case 0xef:keyvalue=4;break; case 0xdf:keyvalue=5;break; case 0xbf:keyvalue=6;break; case 0x7f:keyvalue=7;break; default:break; } }
sccode=P1; recode=temp; temp=temp<<1|0x01; } else temp=temp<<1|0x01; } if(recode==0xfe) { switch(sccode) { case 0xfe: keyvalue=0;break; case 0xfd:keyvalue=1;break; case 0xfb:keyvalue=2;break; case 0xf7:keyvalue=3;break; case 0xef:keyvalue=4;break; case 0xdf:keyvalue=5;break; case 0xbf:keyvalue=6;break; case 0x7f:keyvalue=7;break; } }
4*4矩阵键盘与51单片机的接口
P1口的高四位连接键盘的列线,低四位连接键盘的行线
实验箱上的键盘
列 线 接 口 插 孔
行 线 接 口 插 孔
实验箱上的键盘原理图
“0”
键盘与单片机的接口
3条行线连接P3口的低三位 8条列线连接P1口
4×4矩阵键盘EDA设计

else if(Clk4EN) begin
case(KeyOut) 4'b1110 : KeyTmp1[3:0] <= KeyDone;//扫描过程中消抖 4'b1101 : KeyTmp1[7:4] <= KeyDone; 4'b1011 : KeyTmp1[11:8] <= KeyDone; 4'b0111 : KeyTmp1[15:12] <= KeyDone; default : KeyTmp1 <= 16'hffff;//清零
2021/7/23
9
7/23/2021
硬件设计
8段数码管原理图
2021/7/23
11
硬件设计
2021/7/23
12
2021/7/23
软件设计
module matrix_keyboard(Clock,nRST,nEN,pEN,INT,KeyVal,KeyIn,KeyOut);
input
Clock;//系统时钟
KeyVal <= 8'hf2;
else if(pFlag[7])
KeyVal <= 8'hfa;
else if(pFlag[8])
KeyVal <= 8'hf9;
else if(pFlag[9])
KeyVal <= 8'hf6;
else if(pFlag[10])KeyVal <= 8'hf3;
else if(pFlag[11])KeyVal <= 8'hfb;
)
9 矩阵键盘接口与LED显示接口

LED数码管的显示方法
动态显示
• 微型机定时地对显示器件扫描 • 显示器件分时工作,每次只能有一个器件显示
• 使用硬件少,线路简单,因而价格低
• 占用机时长,只要扫描程序停止,显示即刻停止
静态显示
• 一次输出显示模型后,就能保持该显示结果 • 占用机时少,显示
• 使用元件多,且线路比较复杂
• 随着集成电路的发展,多种功能的显示器件问世
程控扫描方法
求闭合键的键值
• 对键盘逐行扫描 • 使PC0=0,读入列值,若等于FFH,说明该行无键按下
• 再对下一行进行扫描(即令PC1=0)„„
• 直至发现列值不等于FFH,则说明该行有键按下。
求出其键值
• 键值= 8键×行值 +列值
并行I/O接口芯片—Intel 8255A
并行I/O接口芯片—Intel 8255A
程控扫描法
程控扫描方法
判断是否有键按下
• 通过PC口使所有的行输出均为低电平,从端口A读入列值。 • 如果读入值为 FFH, 无键按下。
• 如果读入值不为 FFH, 有键按下。
去除键抖动
• 若有键按下,延时10~20ms,再一次判断有无键按下, • 如果此时仍有键按下,则认为键盘上确有一个键被按下。
延时10ms子程序
D10ms: MOV R5 , #14H DL: DL0: MOV R6 , #FFH DJNZ R6 , DL0 DJNZ R5 , DL
定时扫描法
CPU 每隔一定的时间(如10ms)对键盘扫描一遍
发现有键被按下时,读入键盘操作,以求出键值。 定时时间间隔
• 由单片机内部定时/计数器产生。 • 每隔一定长度的程序设置一次键盘查询程序。
单片机矩阵键盘接口设计

在单片机 应用系 统中通 常都要 有 人 —机 对话功能 。人—机 对话的 中间桥梁 是键盘 , 盘就 是一组按 键 的集 合 , 人 员可 以通过 键盘 输 键 操作 入数 据或 命令 , 现简单 的人机 通讯 。键 盘分 编码键 盘和非 编码键 盘 , 实 键盘上闭合键的识别由专用的硬件译码器实现并产生编号或键值的称 为编码 键 盘 , : S 码键 盘 、C 如 A CⅡ B D码键 盘 等 ; 靠软 r识 别的称 为非 编 牛 码键盘 。 本文侧 重讨论键 盘接 口处 理的 内容 、 三种控制方 式和— 个典 型 矩阵键 盘接 口程 序设计 。 1键 盘接 口处理 的内容 1 . 键扫描 1按 键盘 大都采 用按 行 、 列的矩 阵开 关结 构, 结构 可 以减少硬 列排 这种 件 和连线 。常 用按键 扫描识 别方 法有 行扫描 法 ( r cnig ̄ R - ann) S
0班 {
1畦 0 0HLeabharlann 1H 1 0 衄
1H 2
0I E' I
l 疆
H
lH 唾
0H D
1} 5I
娅H
1H 6
oH F
1l l 7
湃誊 薷丽
图 1
1 朗
1H 9
1H A
1H B
1H C
IH D
1H E
1H F
表 1
R1 R2 R3
向下的顺序编排的, 这样安排, 使键码可以根据行号列号 以查表求得 ,
也可 以通过计算得 到 。 按下表 所示 的键 码编排规律 , 行的首号依 次是 各 OH、8 IH、8 如列 号按 O O 0H、O 1H, 一 _ 顺 序 , 键码 的计 算公 式 为 : 7 则 键 码=亍 彳首号+ 列号 4键释放 计算 键码之后 , 以延时后进 行 扫描 的方法等待 释放 。 再 等待键 释放 是为 了保证键 的一 次闭合 仅进 行一次 处理 。 2键盘 工作 方式 键盘接 口。 一般采 用行列 式键盘 主 要有 编程 扫描 ' 定时扫 描和 中断 扫描方 式有三种 : 21编程 扫描方 式: C U空 闲时’ 键盘判 断有无 键按 下. 般 当 P 扫描 一 应具备 以下几个功 能 :1判断键 盘上有无键 按下 。() () 2去除键 抖动 的影 响。( ) 描键盘 。() 3扫 4别闭合 的键是 否十放 。
《矩阵键盘》课件

游戏机按键通常配备震动反馈 功能,提供触觉反馈,增强游 戏体验的真实感。
工业控制设备
工业控制设备如自动 化仪表、数控机床等 也采用矩阵键盘布局 。
工业控制设备的矩阵 键盘通常防水、防尘 ,适应恶劣的工业环 境。
矩阵键盘的设计使得 工业控制设备能够实 现快速、准确的输入 控制指令。
06
矩阵键盘的未来展望
。
扫描程序
按照一定的规则逐行逐列扫描键盘 ,检测按键状态变化。
识别程序
根据按键电路的状态变化,判断具 体哪个按键被按下,并执行相应的 操作。
接口通信方式
并行通信
通过数据线将按键信号直接传输 到微控制器,数据传输速度快,
但需要较多的数据线。
串行通信
通过串行数据线将按键信号传输 到微控制器,数据传输速度较慢
键。
矩阵键盘的设计使得电子琴能够 模拟传统钢琴的触感,提供逼真
的演奏体验。
电子琴的矩阵键盘通常配备力度 感应功能,根据按下琴键的力度
来调整音符的音量和音质。
游戏机按键
游戏机按键通常采用矩阵键盘 布局,以适应游戏过程中快速 输入指令的需求。
矩阵键盘的设计使得游戏机按 键能够实现多键同时按下,提 高游戏操作的准确性和速度。
THANKS
感谢观看
03
矩阵键盘的电路设计
硬件电路设计
电源电路
为矩阵键盘提供稳定的电 源,确保按键的正常工作 。
按键电路
每个按键对应一个或多个 行列交叉点,通过检测行 和列的状态变化来确定按 键的按下状态。
输出电路
将按键信号输出到微控制 器或其他处理设备进行处 理。
软件编程设计
初始化程序
对矩阵键盘进行初始化设置,包 括设置扫描频率、去抖动时间等
矩阵式键盘的接口设计与编程

;<--------------------------判断是否真的有键按下--------------------->
T_KEY:
ACALL
DL_20MS
;调用延时子程序
ACALL
P_KEY
;再次调用“有无按键按下子程序”
JNZ
IN_SCAN
;若有键按下,则执行逐行扫描程序
AJMP
SCAN
;若无键按下,则不断查询
;<--------------------------扫描数据初始化----------------------->
单片机原理及应用技术
—1—
one 矩阵式键盘接口设计——基于行反转法
4×4矩阵式键盘接 口设计如图所示
—2—
图中P1口的低4位作为行线,P2口的低4位作为列线。行线通过74LS21进行逻辑与操作后作为单 片机的外部中断源输入,当有键按下时以中断形式去执行相应的按键处理程序。
行反转法因判键时将输入与输出线反转互换而得名,步骤如下:
PB口作为扫描口需要设为输出,PA口设为读入。 逐行扫描时,PB口的状态为:
PB7 PB6 PB5 PB4 111 1 111 1 111 1 111 1 111 0 110 1 101 1 011 1
PB3 PB2 PB1 PB0 1 110 1 101 1 011 0 111 1 111 1 111 1 111 1 111
—3—
【例9-3】 行反转法判断按键编号,并存入40H单元,程序如下
ORG
0000H
LJMP
MAIN
ORG
0003H
LJMP
INT0
ORGБайду номын сангаас
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东 北 石 油 大 学 课 程 设 计
2011年 07月 10 日 课 程 硬件课程设计 题 目 矩阵键盘控制接口电路设计 院 系 专业班级 学生姓名 学生学号 指导教师 东北石油大学课程设计任务书 课程 硬件课程设计 题目 矩阵键盘控制接口设计 专业 姓名 学号 主要内容、基本要求、主要参考资料等 一、主要内容: 利用EL教学实验箱、微机和QuartusⅡ软件系统,设计并实现一个4×8键盘接口控制器。设计过程中使用层次设计方法和VHDL语言,完成硬件设计和功能仿真。最后下载到EL教学实验箱中予以实现。 二、基本要求: 1.按照层次设计方法实现键盘接口控制器中的时序产生电路、键盘扫描电路、弹跳消除 电路、键盘译码电路、按键码存储电路和显示八段数码管电路。 2. 按下某一键时,在数码管上显示该键对应的键值。 三、参考文献: [1] 李国洪,胡辉.可编程器件与EDA技术与实践[M].北京:机械工业出版社,2004. [2] 潘松,黄继业.EDA技术实用教程[M].北京:科学出版社,2002. [3] 王行,李衍.EDA技术入门与提高[M].西安:西安电子科技大学出版社,2005. [4] 徐惠民,安德宁.数字逻辑设计与VHDL描述[M].北京:机械工业出版社,2008.
完成期限: 18-19周 指导教师: 专业负责人: 2011年 06 月28 日 目 录 第1章 EDA的概述 .................................................................................................................... 1 第2章 QUARTUS II系统 .......................................................................................................... 3 第3章 矩阵键盘控制接口电路 ................................................................................................. 4 3.1 概述................................................................................................................................. 4 3.2 底层实体电路................................................................................................................. 6 3.3 顶层实体电路................................................................................................................. 9 3.4 仿真结果....................................................................................................................... 16 3.5 硬件验证结果............................................................................................................... 17 结 论..................................................................................................................................... 20 参考文献..................................................................................................................................... 21 东北石油大学本科生硬件课程设计
1 第1章 EDA的概述 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。电子设计自动化(EDA)技术是电子设计技术和先进的电子制造技术的核心[1]。 20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展[2]。 EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度[3]。 利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。 随着计算技术和数字技术的发展,在现代电子设备中,单纯用模拟电路实现的已经很少见,通常只在微弱信号放大、高频数据采集和大功率输出等局部电路采用模拟电路,其余部分广泛采用数字电路。因此,对大多数电子设备而言,其整体部分是数字系统[4]。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。 1.几个有关EDA的专题网站 (1) EDA中心 www.eda.ac.cn (2) EDA中国门户网站 www.edacn.net 东北石油大学本科生硬件课程设计 2 (3) 中国EDA工程网 www.edagc.com (4) EDA爱好者 www.edafans.com (5) EDA教学与研究 www.edateach.com 2.设计方法 (1) 前端设计(系统建模RTL 级描述)后端设计(FPGAASIC)系统建模 (2) IP 复用 (3) 前端设计 (4) 系统描述:建立系统的数学模型。 (5) 功能描述:描述系统的行为或各子模块之间的数据流图。 (6) 逻辑设计:将系统功能结构化,通常以文本、原理图、逻辑图、布尔表达式来表示设计结果。 (7) 仿真:包括功能仿真和时序仿真,主要验证系统功能的正确性及时序特性。 3.EDA工具软件 EDA工具软件可大致可分为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类。 目前进入我国并具有广泛影响的EDA软件是系统设计软件辅助类和可编程芯片辅助设计软件:Protel、PSPICE、multiSIM7(原EWB的最新版本)、OrCAD、PCAD、、LSIIogic、MicroSim,ISE,modelsim等等。这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同进还可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。 EDA工具软件厂商三巨头:Synopsys、Mentor Graphics、Cadence。 东北石油大学本科生硬件课程设计
3 第2章 QUARTUS II系统 Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程[5]。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法[6]。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。 Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。