EDA矩阵键盘

合集下载

矩阵键盘的使用流程解

矩阵键盘的使用流程解

矩阵键盘的使用流程解析1. 简介矩阵键盘是一种常见的输入设备,用于输入数字、字母和符号等文本信息。

它由一组按键组成,通常排列成矩形的形式。

本文将介绍使用矩阵键盘的详细流程和注意事项。

2. 连接矩阵键盘在开始使用矩阵键盘之前,首先需要将其连接到计算机或其他设备。

通常,矩阵键盘使用USB接口进行连接。

只需要将键盘的USB插头插入计算机的USB接口即可完成连接。

3. 检查键盘状态在使用矩阵键盘之前,我们需要确保键盘状态正常。

检查键盘是否接通电源,以及是否有任何损坏或松动的按键。

确保键盘的线缆与接口连接良好。

4. 输入文本信息使用矩阵键盘输入文本信息非常简单。

按下键盘上相应的按键即可输入相应的字符。

例如,按下数字键1会输入数字1,按下字母键A会输入字母A。

根据需要,可以使用矩阵键盘输入各种类型的字符,包括数字、字母、标点符号等。

通过按下不同的键盘按键,可以输入相应的字符。

5. 切换输入模式一些矩阵键盘还具有切换输入模式的功能,允许用户在不同的输入模式之间进行切换。

例如,可以切换为大写字母模式、小写字母模式或数字模式等。

切换输入模式通常通过特定的按键组合完成。

具体的切换方式可以参考键盘的说明文档或者在键盘上寻找切换模式的标识。

6. 使用快捷键矩阵键盘通常还配有一些快捷键,用于执行常见的操作或调整特定的功能。

这些快捷键可以提高工作效率和便利性。

快捷键的使用方法可以参考键盘的使用手册或者在互联网上搜索相关的资料。

通过学习和使用矩阵键盘的快捷键,可以更快速、高效地完成各种任务。

7. 注意事项在使用矩阵键盘时,需要注意以下几点:•键盘操作的力度应适中,避免过重或过轻按键,以免影响操作效果。

•避免在键盘上敲击过快,以免出现漏键或误输入的情况。

•定期清洁键盘,以保持按键的灵敏度和正常的使用寿命。

•在长时间使用键盘时,适当休息并放松手指、手腕和手臂,以防止过度疲劳和不适。

8. 小结本文介绍了矩阵键盘的使用流程,并提供了一些注意事项。

eda主要代码

eda主要代码

矩阵键盘扫描主要代码分析:--数字分频器,对系统时钟进行适当分频,得1~10KHz左右的时钟进行矩阵键盘扫描process(clk)--分频器的进程variable cnt:integer range 0 to 500000;BEGINIF rst='0' then cnt:=0;else if clk'event and clk='1' thenIF cnt=499999 THENclkreg<=not clkreg;cnt:=0;ELSEcnt:=cnt+1;END IF;END IF;END IF;end process;--行扫描循环process(clkreg)beginif clkreg'event and clkreg = '1' thencase rowreg iswhen "1110" => rowreg <= "1101";when "1101" => rowreg <= "1011";when "1011" => rowreg <= "0111";when "0111" => rowreg <= "1110";when others => rowreg <= "1110";end case;end if;end process;row <= rowreg;com <= column&rowreg;--对行扫描信号和列扫描信号进行CASE语句判断。

得到是否有键被按下,输出按键按--键指示信号和按键的编码--数码管显示process(clkreg)beginif clkreg'event and clkreg = '1' thencase com iswhen "11010111" => display <= "11000000"; --数码管显示0when "11101011" => display <= "11111001"; --数码管显示1when "11011011" => display <= "10100100"; --数码管显示2when "10111011" => display <= "10110000"; --数码管显示3when "11101101" => display <= "10011001";--数码管显示4when "11011101" => display <= "10010010"; --数码管显示5when "10111101" => display <= "10000010"; --数码管显示6when "11101110" => display <= "11111000"; --数码管显示7when "11011110" => display <= "10000000"; --数码管显示8when "10111110" => display <= "10010000"; --数码管显示9when "10110111" => display <= "01111111"; --数码管显示.when "01111101" => display <= "10111001"; --数码管显示+when "01111011" => display <= "10111010"; --数码管显示enterwhen others => null;end case;end if;end process;weixuan<=q;交通灯控制代码分析:1、时钟分频代码:process(clk)variable cnt1 : integer range 0 to 50000000;beginif (clk'event and clk='1') thenif cnt1=24999999 thenclk_1<=not clk_1;cnt1:=0;else cnt1:=cnt1+1;end if;end if;end process;--产生1Hz的时钟频率,时间为一秒。

4×4矩阵键盘EDA设计

4×4矩阵键盘EDA设计
if(~nRST) KeyTmp1 <= 16'hffff;
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;
)

矩阵键盘的应用原理

矩阵键盘的应用原理

矩阵键盘的应用原理什么是矩阵键盘矩阵键盘是一种常见的输入设备,它由多行多列的按键组成,可以通过按下不同的按键来输入不同的字符和命令。

矩阵键盘通常被用于计算机、电子设备和智能家居等领域。

矩阵键盘的工作原理矩阵键盘的工作原理非常简单,它通过将按键排列成行和列的形式,并使用矩阵的方式进行扫描和识别。

下面是矩阵键盘的工作原理的步骤:1.按键排列:矩阵键盘的按键被排列成多行多列的矩阵。

每个按键都与一个特定的行和列相连。

2.按键扫描:当用户按下某个按键时,这个按键所在的行和列都会被激活。

矩阵键盘会依次扫描每一行并检测是否有按键被按下。

3.按键识别:当矩阵键盘检测到某一行被激活时,它会继续扫描该行的每一列。

如果某一列也被激活,矩阵键盘就可以确定用户按下了特定的按键。

4.字符输入:根据按键识别的结果,矩阵键盘可以将相应的字符或命令发送给计算机或其他设备进行处理。

矩阵键盘的优势矩阵键盘相比其他类型的键盘有以下优势:•节省空间:由于按键被排列成矩阵的形式,矩阵键盘相对于其他键盘类型来说更加紧凑,占用空间更少。

•便于集成:矩阵键盘可以很容易地与其他电子设备集成在一起,其扁平化的设计也使得它更容易嵌入到各种设备中。

•多功能性:通过合理的布局和设计,矩阵键盘可以实现多种功能,例如数字输入、控制命令和快捷键等。

•灵活性:矩阵键盘的按键布局可以灵活调整,适应不同的应用场景和用户需求。

矩阵键盘的应用领域矩阵键盘在各种领域都有广泛的应用,其中包括:1.计算机:矩阵键盘是计算机最常见的输入设备之一,用于输入字符、命令和快捷键等。

2.电子设备:矩阵键盘也被广泛用于电子设备,如手机、平板电脑、数字相机等,用于输入字符、控制命令和菜单导航等。

3.智能家居:矩阵键盘可以作为智能家居控制面板的一部分,用于控制灯光、温度、音响等设备。

4.工业自动化:在工业自动化领域,矩阵键盘通常被用于控制面板和操作界面,用于操作和控制各种设备和机械。

5.安防系统:矩阵键盘还可用于安防系统中的控制面板,例如安全门、门禁系统和监控设备等。

矩阵键盘EDA技术课程设计

矩阵键盘EDA技术课程设计

《电子设计EDA》课程设计专业:电子信息科学与技术班级:2010级电信本(1)班姓名: ***学号: *********指导老师: ***完成时间: 2012.11—2012.12教师评分:目录一、绪论 (1)1.1 FPGA概况 (1)1.2 本课题的研究意义 (2)二、课程设计的任务和目的 (3)三、矩阵键盘接口电路的原理与总体设计 (3)3.1 矩阵键盘接口电路的原理 (3)3.2 总体设计 (5)四、各模块的设计及仿真 (6)4.1 键盘扫描电路 (6)4.2 键盘译码电路和按键标志位产生电路 (8)4.3 时钟产生模块 (10)4.4 键盘接口电路顶层电路实现 (12)五、参考文献 (13)六、心得体会 (13)七、附录 (14)7.1 源程序代码 (14)2题目:矩阵键盘控制接口设计一、绪论1.1 FPGA概况早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(E2PROM)三种。

由于结构的限制,它们只能完成简单的数字逻辑功能。

其后出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。

典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与—或”表达式来描述,所以PLD能以乘积和的形式完成大量的组合逻辑功能。

这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。

PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。

PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和E2PROM技术。

还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。

PLA 器件既有现场可编程的,也有掩膜可编程的。

在PAL的基础上又发展了一种通用阵列逻辑(GAL、Generic ArrayLogic),如GAL16V8、GAL22V10等。

EDA矩阵键盘控制接口电路设计

EDA矩阵键盘控制接口电路设计

JINGGANGSHAN UNIVERSITY EDA作业设计题目:矩阵键盘控制接口设计学院:电子与信息工程学院专业:电子信息工程技术*名:***班级: 2008级专(1)班学号: ********指导老师:肖开选老师时间:2010年12月10号摘要20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。

在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。

这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。

本次设计在EDA开发平台QUARTUSⅡ7.2上利用VHDL语言设计矩阵键盘控制接口电路。

要求设计一个4×9矩阵键盘,一共有三个模块,分别为:扫描电路模块、时钟产生模块、键盘译码电路和按键标志位产生电路。

扫描模块中是为了产生扫描信号,来利用扫描信号来扫描键盘中是否有按键按下。

键盘译码电路和按键标志位产生电路也是为了配合扫描模块来扫描电路中是否有按键按下,而且还要求它来产生按键标志信号,以便和外部电路握手。

时钟产生电路是为了产生不同频率的信号,来驱动上面两个电路的运转。

通过对课题的分析研究,掌握了VHDL语言编程方法,同时也增强了个人的学习能力和动手能力。

关键词:FPGA/CPLD;矩阵键盘;仿真目录1.绪论 (1)1.1FPGA概况 (1)1.2 本课题的研究意义 (2)本章小结 (2)2. VHDL语言介绍与Quartus II 7.2 (32-Bit)软件介绍 (3)2.1 VHDL语言的介绍 (3)2.1.1 VHDL语言概述 (3)2.1.2 VHDL语言的优点 (4)2.1.3 利用VHDL语言设计数字系统的特点 (6)2.1.4 VHDL语言的基本结构 (7)2.2 Quartus II 7.2 (32-Bit)软件介绍及其用法 (7)2.2.1 Quartus II 7.2软件介绍 (7)2.2.2 Quartus II 软件的用法 (10)本章小结 (13)3. 矩阵键盘接口电路的原理与总体设计 (14)3.1 矩阵键盘接口电路的原理 (14)3.2 总体设计 (16)本章小结 (16)4. 各模块的设计及仿真 (17)4.1 键盘扫描电路 (17)4.2 键盘译码电路和按键标志位产生电路 (19)4.3 时钟产生模块 (24)4.4 键盘接口电路顶层电路实现 (27)本章小结 (28)结论 (29)致谢 (30)参考文献 (31)附录程序 (32)1.绪论1.1FPGA概况早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(E2PROM)三种。

EDA实验七 矩阵键盘与数码管显示测试

EDA实验七 矩阵键盘与数码管显示测试

实验七4*4键盘数据读取及数据显示设计一、实验目的:1、了解数码管的工作原理;2、掌握4*4矩阵键盘和数码管显示的编程方法。

3、学会用于Verilog语言进行程序设计。

二、实验仪器设备1、PC机一台2、FPGA实验开发系统一套。

三、实验原理:本实验通过扫描4*4矩阵键盘的值,在数码管上显示对应按钮的编号数据。

矩阵键盘及数码管电路如下所示。

四、实验要求1、预习教材中的相关内容。

2、阅读并熟悉本次实验的内容。

3、完成实验内容。

五、实验步骤(1)启动 Quartus II 建立一个空白工程,选择的器件为 Altera 公司的 Cyclone 系列的 EP2C8Q240C8芯片,命名为 keyarray.qpf;(2)新建一个 Schematic File 文件,命名为 keyarray.bdf;(3)分别新建 3 个 Verilog HDL File 文件,分别命名为 seg_show.v、 divclk.v、keyarraycontrol.v。

输入程序代码并保存(对应源程序 8),然后进行综合编译。

若在编译过程中发现错误,则找出错误并更正错误,直至编译成功为止。

(4)从设计文件创建模块(File→Creat Update→Creat Symbol Files for Current File),seg_show.v 生成名为seg_show.bsf;divclk.v 生成名为divclk.bsf;keyarraycontrol.v 生成名为keyarraycontrol.bsf;(5)在 keyarray.bdf 文件中,在空白处双击鼠标左键,在 Symbol 对话框左上角的libraries 中,分别将 Project 下的 seg_show, divclk, keyarraycontrol 模块放在图形文件 keyarray.bdf 中,加入输入、输出引脚,双击每个引脚,进行引脚命名,并锁定管脚,将未使用的引脚设置为三态输入(一定要设置,否则可能会损坏芯片);完整的顶层模块原理图如图所示(6)将keyarray.bdf 设置为顶层实体。

矩阵键盘键信号检测电路设计-EDA课程设计说明书

矩阵键盘键信号检测电路设计-EDA课程设计说明书

课程设计说明书题目EDA技术与应用系(部)专业(班级)姓名学号指导教师起止日期EDA技术课程设计任务书系(部):专业:指导教师:目录引言 (5)一、绪论 (5)1.1 FPGA概况 (5)1.2 此课题的研究意义 (6)二、矩阵键盘接口电路的原理与总体设计 (6)2.1 矩阵键盘接口电路的原理 (6)2.2 总体设计 (8)三、各模块的设计及仿真 (8)3.1 键盘扫描电路 (8)3.2 键盘译码电路和按键标志位产生电路 (11)3.3 时钟产生模块 (16)3.4 键盘接口电路顶层电路实现 (18)四、硬件测试 (19)五、实验设备 (19)六、总结 (20)参考文献 (20)矩阵键盘键信号检测电路设计引言人类文明已进入到高度发达的信息化社会。

信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。

电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。

实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronic Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。

为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。

目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。

此设计主要利用VHDL硬件描述语言在EDA平台Quartus II上设计一个4×4阵列键盘扫描电路,将行扫描信号输入阵列键盘,读取列信号的值,输出按键编码,从而判断出按键按下的位置。

并且进行模拟仿真,下载到EDA实验箱进行硬件验证。

一、绪论1.1 FPGA概况早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(E2PROM)三种。

EDA课程设计-矩阵键盘-交通灯

EDA课程设计-矩阵键盘-交通灯

1 矩阵键盘扫描要求:设计矩阵式键盘接口,并在一个数码管上面显示按下的数字,从0到9以及小数点。

判断键盘中有无按键按下是通过行线送入扫描线好然后从列线读取状态得到的。

其方法是依次给行线送低电平,检查列线的输入。

如果列线全是高电平,则代表低电平信号所在的行中无按键按下;如果列线有输入为低电平,则代表低电平信号所在的行和出现低电平的列的交点处有按键按下。

整个设计程序包括三个模块:时钟分频、键盘扫描和键译码转换。

时钟分频:由于使用的外部时钟频率为50MHz,这个频率对扫描来说太高,所以这里需要一个分频器来分得适合键盘扫描使用的频率。

键盘扫描:由键盘的工作原理可知,要正确地完成按键输入工作必须有按键扫描电路产生KEYI信号,同时必须有按键译码电路从KEYI中和KEYOUT中读出按键的键值。

键盘扫描电路是用于产生KEYI3~ KEYI0 信号,其变化顺序是1110→1101→1011→0111→1110…周而复始地扫描。

其停留时间大慨在10ms。

键盘译码:键盘译码电路是从keyI3~keyI0和keyout3~keyout0信号中译码出按键值的电路。

将此按键值显示在数码管上。

FPGA_CLK 系统的主时钟MASTER_RESET_n 主复位Button[0]-[15] 拨码开关/白色按钮通过跳线Jxx选择Seven_seg[0]-[7] 数码管的显示Seven_seg[8]-[15] 数码管的选择LED_DOWN[0]-[7] 8个ledKeyboard_Down[0]-[8] 键盘输入/AD输入,通过JP8选择低位表示行。

原理图中Keyboard_Down[0]-[4]对应KEYI[0-4]Keyboard_Down[5]-[8]对应KEYO[0-3]此例中Keyboard_Down[1]-[4]对应KEYI[0-3]Keyboard_Down[5]-[8]对应KEYO[0-3]2、交通灯的控制课程设计原理:在十字路口,每条道路各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序的通行。

EDA课程设计-矩阵键盘-交通灯

EDA课程设计-矩阵键盘-交通灯

1 矩阵键盘扫描要求:设计矩阵式键盘接口,并在一个数码管上面显示按下的数字,从0到9以及小数点。

判断键盘中有无按键按下是通过行线送入扫描线好然后从列线读取状态得到的。

其方法是依次给行线送低电平,检查列线的输入。

如果列线全是高电平,则代表低电平信号所在的行中无按键按下;如果列线有输入为低电平,则代表低电平信号所在的行和出现低电平的列的交点处有按键按下。

整个设计程序包括三个模块:时钟分频、键盘扫描和键译码转换。

时钟分频:由于使用的外部时钟频率为50MHz,这个频率对扫描来说太高,所以这里需要一个分频器来分得适合键盘扫描使用的频率。

键盘扫描:由键盘的工作原理可知,要正确地完成按键输入工作必须有按键扫描电路产生KEYI信号,同时必须有按键译码电路从KEYI中和KEYOUT中读出按键的键值。

键盘扫描电路是用于产生KEYI3~ KEYI0 信号,其变化顺序是1110→1101→1011→0111→1110…周而复始地扫描。

其停留时间大慨在10ms。

键盘译码:键盘译码电路是从keyI3~keyI0和keyout3~keyout0信号中译码出按键值的电路。

将此按键值显示在数码管上。

FPGA_CLK 系统的主时钟MASTER_RESET_n 主复位Button[0]-[15] 拨码开关/白色按钮通过跳线Jxx选择Seven_seg[0]-[7] 数码管的显示Seven_seg[8]-[15] 数码管的选择LED_DOWN[0]-[7] 8个ledKeyboard_Down[0]-[8] 键盘输入/AD输入,通过JP8选择低位表示行。

原理图中Keyboard_Down[0]-[4]对应KEYI[0-4]Keyboard_Down[5]-[8]对应KEYO[0-3]此例中Keyboard_Down[1]-[4]对应KEYI[0-3]Keyboard_Down[5]-[8]对应KEYO[0-3]2、交通灯的控制课程设计原理:在十字路口,每条道路各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序的通行。

硬件描述语言 VHDL AD DA 点阵 矩阵键盘 液晶显示知识讲解

硬件描述语言 VHDL AD DA 点阵 矩阵键盘 液晶显示知识讲解
对于AD558芯片的各种介绍参阅其数 据手册。AD558功能表如下:
Input Data
0 1 0 1 0 1 X X
CE
CS DAC data Latch
Condition
0
0
0
“Transparent”
0
0
1
“Transparent”
0
0
Latching
0
1
Latching
0
0
Latching
0
• begin

if clk'event and clk='1' then

if cnt<8 then

cnt:=cnt+1;

q<='0';

else if cnt>7 then

cnt:=cnt+;
• end if;

end if;

end if;
• end process;
• end rtl;
第三章第四节
利用可编程逻辑器件进行 D/A和A/D控制接口的设计
1 D/A和A/D的应用
A/D和D/A转换器是把微型计算机的 应用领域扩展到检测和过程控制的必要 装置,是把计算机和生产过程、科学实 验过程联系起来的重要桥梁。下图给出 了A/D、D/A转换器在微机检测和控制系 统中的应用实例框图。
2 在可编程逻辑器件中的D/A接口设计
分频仿真时序图
2. 模块SANJIAO如下图所示。它是三角波产
生模块。
sjb
clk reset
q[7..0]
inst5

eda矩阵键盘扫描课程设计

eda矩阵键盘扫描课程设计

eda矩阵键盘扫描课程设计一、课程目标知识目标:1. 让学生理解EDA矩阵键盘的基本原理和结构;2. 使学生掌握矩阵键盘扫描的方法和技巧;3. 帮助学生掌握利用EDA工具进行矩阵键盘电路设计和仿真。

技能目标:1. 培养学生运用EDA工具进行矩阵键盘电路搭建和调试的能力;2. 培养学生分析并解决矩阵键盘扫描过程中出现问题的能力;3. 提高学生团队协作和沟通表达能力,能就矩阵键盘扫描问题进行有效讨论。

情感态度价值观目标:1. 培养学生对电子技术课程的兴趣和热情,激发学生主动探究精神;2. 培养学生严谨的科学态度和良好的学习习惯;3. 增强学生的创新意识,鼓励学生勇于尝试新的设计方法和思路。

课程性质分析:本课程为电子技术课程的一部分,以实践操作为主,理论联系实际,旨在培养学生的电子技术应用能力。

学生特点分析:学生处于高中年级,具有一定的电子技术基础和动手能力,对新鲜事物充满好奇,善于团队合作。

教学要求:结合学生特点,注重实践与理论相结合,强调学生的动手能力和问题解决能力,提高学生的创新意识和团队协作能力。

通过本课程的学习,使学生能够达到上述课程目标,为后续电子技术课程的学习打下坚实基础。

二、教学内容1. 理论知识:- 矩阵键盘的工作原理与结构;- 键盘扫描方法:行扫描和列扫描;- EDA工具的使用方法及电路仿真基本操作。

2. 实践操作:- 利用EDA工具设计矩阵键盘电路;- 矩阵键盘电路的搭建与调试;- 键盘扫描程序编写与优化。

3. 教学大纲安排:- 第一章:矩阵键盘原理及结构介绍(1课时)- 第二章:键盘扫描方法分析(1课时)- 第三章:EDA工具的使用及电路仿真(2课时)- 第四章:矩阵键盘电路设计与搭建(2课时)- 第五章:键盘扫描程序编写与调试(2课时)4. 教材关联:- 《电子技术基础》第四章:数字电路基础;- 《电子技术实验教程》第六章:矩阵键盘与显示电路设计。

教学内容确保科学性和系统性,结合课程目标,注重理论与实践相结合。

矩阵键盘使用说明

矩阵键盘使用说明

矩阵键盘使用说明矩阵键盘是一种特殊设计的键盘,其按键布局呈矩阵状,与传统的直排键盘有所不同。

矩阵键盘的按键分布更加紧凑,使得用户的手指在按键时的移动距离更小,可以提高打字的速度和准确性。

在本篇文章中,将介绍矩阵键盘的基本使用说明。

1.连接键盘:2.打字基本操作:和传统键盘相比,矩阵键盘的按键布局有所不同。

在开始打字之前,需要了解矩阵键盘的按键分布。

通常情况下,矩阵键盘的按键分布为4行,每行有10个按键,共40个按键。

每个按键上标有一个字母、数字或符号,用户通过按下相应的按键来输入字符。

由于按键的布局更加紧凑,用户在使用矩阵键盘时需要稍微调整手指的位置。

一般来说,用户应该将手指放置在键盘上,使得拇指位于空格键上,食指、中指和无名指分别位于第一行、第二行和第三行按键上,小指位于第四行按键上。

这样可以更加灵活地操作按键,并提高打字的速度和准确性。

当需要输入字符时,用户可以按下相应的按键,即可将字符输入到计算机中。

和传统键盘类似,用户可以通过长按Shift键来输入大写字母,并通过按下Caps Lock键来锁定大写输入模式。

此外,矩阵键盘通常还具备一些特殊功能按键,例如功能键、控制键等。

用户可以通过按下这些特殊按键来完成一些特定的操作,例如切换输入法、调节音量等。

3.高级功能:除了基本的打字功能外,矩阵键盘通常还具备一些高级功能。

例如,一些矩阵键盘支持多键触发功能,即用户可以同时按下多个按键,以实现一些复杂的操作。

例如,在游戏中,用户可以同时按下多个按键来触发组合技能。

此外,一些矩阵键盘还支持自定义按键功能。

用户可以通过软件设置,将一些按键映射为其他功能键或字符,以满足个性化的需求。

一些高端的矩阵键盘还具备背光功能。

用户可以通过调节键盘的背光亮度和颜色,以适应不同的环境需求。

4.清洁和维护:和其他键盘一样,矩阵键盘也需要定期进行清洁和维护。

由于矩阵键盘的按键间隙较小,容易积累灰尘和污垢。

用户可以使用软刷或气泡喷射器清洁键盘表面和按键间隙。

EDA矩阵键盘接口电路的设计

EDA矩阵键盘接口电路的设计

1. 2. 3. 4. 5. 6.打开QUARTUSII 软件,新建一个工程。

建完工程之后,再新建一个 VHDL File ,打开VHDL 编辑器对话框。

按照实验原理和自己的想法,在 VHDL 编辑窗口编写 VHDL 程序。

编写完VHDL 程序后,保存起来。

对自己编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。

编译仿真无误后,依照 4X4矩阵键、LED 灯与FPGA 的管脚连接表进行引脚锁定。

分配完 成后,再进行全编译一次,以使管脚分配生效。

7.2. 了解对输入/输出端口的定义方法。

【实验元器件和模块】 元器件:矩阵键盘、数码管 模块:矩阵键盘 KEYSCAN 模块【实验步骤】用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。

观察实验结果是否与自己的编程思想一致。

参考代码:library IEEE;use IEEE.STDLOGIC.1164.ALL;SIGNAL key_code SIGNAL dataout_t mp use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY KEYSCAN ISP ORT (clk :IN std_logic;rst :IN std_logic;row :OUT std_logic_vector(3 DOWNTO 0);-- 行线column :IN std_logic_vector(3 DOWNTO 0); --列线dataout:OUT std_logic_vector(7 DOWNTO 0)--数码管显示数据);END KEYSCAN;ARCHITECTURE arch OF KEYSCAN ISSIGNAL div_cnt : std_logic_vector(24 downto 0);std_logic_vector(3 DOWNTO 0); std_logic_vector(7 DOWNTO 0);BEGINrow <= scan_key;dataout <= dataout_t mp; P ROCESS(clk,rst) BEGINIF (NOT rst = '1') THENdiv_cnt <= "0000000000000000000000000"; ELSIF(clk'EVENT AND clk = '1')THENdiv_cnt <= div_cnt + 1; END IF;END P ROCESS;P ROCESS(div_cnt(20 downto 19)) BEGINCASE div_cnt(20 downto 19) IS WHEN "00"=> scan_key<="1110"; WHEN "01"=> scan_key<="1101"; WHEN "10"=> scan_key<="1011"; WHEN "11"=> scan_key<="0111"; END CASE; END P ROCESS;SIGNAL scan_key std_logic_vector(3 DOWNTO 0);--扫描码寄存器P ROCESS(clk,rst) BEGIN<= "0000"; WHEN "1101" => key_code <="0001"; WHEN "1011" => key_code <= "0010"; WHEN "0111" => key_code <= "0011";WHEN "1110" => key_code <="0100"; WHEN "1101" => key_code <= "0101"; WHEN "1011" => key_code <= "0110"; WHEN "0111" => key_code<= "0111";WHEN "1110" => key_code <= "1000"; WHEN "1101" => key_code <= "1001"; WHEN "1011" => key_code<="1010";IF (NOT rst = '1') THENkey_code <= "0000";ELSIF(clk'EVENT AND clk='1')THENCASE scan_key IS--检测何处有键按下WHEN "1110" => CASE column ISWHEN "1110" => key_codeWHEN OTHERS => NULL; END CASE;WHEN "1101" => CASE column ISWHEN OTHERS => NULL; END CASE;WHEN "1011" => CASE column ISWHEN "0111" => key_code <= "1011"; WHEN OTHERS => NULL; END CASE;WHEN "0111" => CASE column ISWHEN "1110" => key_code <= "1100"; WHEN "1101" => key_code <= "1101"; WHEN "1011" => key_code <= "1110"; WHEN "0111" => key_code <= "1111"; WHEN OTHERS => NULL; END CASE;WHEN OTHERS => key_code <= "1111"; END CASE;<= "0000";P ROCESS(key_code)--显示键值END IF;END P ROCESS;BEGINCASE key_code ISWHEN "0000" => dataout_t mp <= "00111111";WHEN "0001" => dataout_t mp <= "00000110";WHEN "0010" => dataout_t mp <= "01011011";WHEN "0011" => dataout_t mp <= "01001111";WHEN "0100" => dataout_t mp <= "01100110";WHEN "0101" => dataout_t mp <= "01101101";WHEN "0110" => dataout_t mp <= "01111101";WHEN "0111" => dataout_t mp <= "00000111";WHEN "1000" => dataout_t mp <= "01111111";WHEN "1001" => dataout_t mp <= "01101111";WHEN "1010" => dataout_t mp <= "01110111";WHEN "1011" => dataout_t mp <= "01111100";WHEN "1100" => dataout_t mp <= "00111001";WHEN "1101" => dataout_t mp <= "01011110";WHEN "1110" => dataout_t mp <= "01111001";WHEN "1111" => dataout_t mp <= "01110001";WHEN OTHERS => NULL;END CASE;END P ROCESS;END arch;【实验数据整理与归纳】関融砂盟巒且日日盯*1 •实际效果图i 2 ! J" ■ !7r ly:CZZ . .JU. JELit Pl■::-助T H 111IFTT X=T<"=:77^.^ i-r j .r论Z JU . I - ■■TOPT Ixkrrrlb 1J I HE. 玉2匚/*. PL【“■ rs i-^cT™ OCTT 翻W石=4■匚_社二話;「n 附―:■ ACd£」"£•:MifT 口11 r:, 近宾切丿丹丫匕」肚蔦;£F - FiL rz . +.卡hi H IS I已汁■ H J-ii 2]EKL FErS. kSJ^i■ r・F FTy TisvT r"i:i:. r repYJ^E-i raJ;M L L和.刃n: 0L右Ml■EE “I r in d<«a.ro D5;EPY_J. I L F J -a^^LiKj L UE -J 1 rCRlTYi 匚2;•J:-J H 竺卿d^Ta-i;T ■—口二■ ■ i* J SLr 't, n?—n±,=:h:?冷,* * ■ '3 T^EHn>::> = - Ji JtrJ LT --.r -■ - :, y rr = 1 -EXD ir.-34E= >C.\5Cr;lT 1*1)FH.-'帕讥亠-Cl:'三] "I三■ '■ih ■ ■ i ■ : _ R ■ ,| ny . a! ■_ f - VCZK - _ ■- • rcni.叭乂-甘:■■: TtlLH L-” j【=■■■. —H■i-=r ; J •口匸-L " 皿;S, hIE jy嗣*4 匚訐:•m,r; .「.r.pi/-」";JL;-.i h心上rat = •■・)7iEiE” -廿"U E| . ■ ■-T:La;ri^<'rr:3T ANC:二E|丄r7^^Tl^UJl :;业応』i;3 r.. r .和吨MJr-■ r E TJttLh:壬… ■ f haT-Z・C * r■ r5 F I. .■ _ _ I _ iL ■ =. TG7死■:H・ r 0甲[bE* " ~ 厂唱■* ■ J fc--b_ :l-"=VriM「710 E =- THT-hC【实验结果与分析】)1吨* ■:'J■«■:ASE c二二irc\ ]生¥Hlcif ■ . . □ - i »W 「-・「£d1HCI 片___J- -5- <- - _________ 亠.17^rlkV r_.」jr *■!* 匸sb " ■亠J_F.SB Eiih-h 1丄* 十酣*[亡心坐 3・.…■:r5<H L S常山:■*利EJZ :?1 注:41iMtJJ -_,■'-=■■■ WJT .-■ .im I>sHcx yar 0 "F u口 A ■. .」・*■:44■HEIC Ji广--抽*1“舍十■. . j;"i€51HC3 7亡D矩<■4t«7•H阻'■H.J 1* --r *Cy"e"fe J ・..*■ ■HE胴:rTB£i・> 少匸JI TIIE? *■:::・2州■小 CrJiK. 1?7l72IHEX ®^L_. J* -> CBj- CD・3■■__________________ 'jIHEI m* r 血區 <- J T上亠:r4HHEJ "O-J J"-> 工已丄Wit 37&THKn TPwrt-i >> rnij■ □O7E ZfLTSJ7?msi LIT®"-■-■x ■* Siui*.7S IriD ZXSZr,S L44L IE.EKE IPLTE^r«l■RHJ EMWy r■■却J TT.MdZ•3■aj£ baT_-mta Z3«■< . -r-'■> lU^*-IU^_kMk 4・ 'G.:Ulr・J「15KMC暨■;:--■-> 3 恤:込」*«frrlEM ・-." C IrtrJHit-:■卑•Lh i 1 ■ .$7xHEN ■:::_■TBT <- 'Oi.rHBI ・,4「希ma飞E -二«9zHEir ■-: :■■A JHtLnTii-_-rT <- '^L:HO=h ■.* *11- h 1 1 -ilT«]rHCT - ?__=-> aiLd-auL^uip 4 'i:i:.:.:.」■■二mitr -j .=』4atft_>ut_L^ -=■Hfii r :.-■->4^L4-IM匚二申匚£■ *0L_■ 1 -业胆,-J .. ■-> dat±:>ut2t^ ■<■ .(KUl .旳f-rihH * 1 -*> ^nr.ViqC-TWr <- ^U. p 1 1 . 'L'^-IHEW ■::::■=> "Mnut二op <= 'ocjlir-i-j扯HRM -1 : - ■ ■-A dhr R .iir-rpp v=-怕T 1 丽■”:XHEV ■ ■ : --■■>4H鈕FI P TTT T<- '^::l f■ 1 r .■八,■ an,IE IM ■* TE-Uil 'I"±to直MET J-mu-> lULZzHl UL如缶.K<a BBC TPT-TBa-S.Cft.' flc-thjkeyboardll.vhd按下矩阵键盘第一行第一列时,数码管显示“按下第二行第二列时, 数码管显示" 按下第三行第三列时,数码管显示“以此类推。

矩阵键盘原理

矩阵键盘原理

矩阵键盘原理
矩阵键盘是一种常见的电子设备输入方式,它采用了特殊的矩阵排列方式来实现按键的检测和输入功能。

矩阵键盘由一组按键(通常是按钮或开关)和一个矩阵电路组成。

按键按下时,通过矩阵电路将相应的信号发送到微控制器或其它输入设备,从而完成按键输入的操作。

矩阵键盘使用了行、列的交叉排列方式,将多个按键组织成一个矩阵状的结构。

每一行和每一列都连接到矩阵电路中的引脚。

当按键按下时,通过按下的行和列所在的引脚的连接,电流可以流过相应的按键,使得微控制器能够检测到按键按下的信号。

矩阵键盘的原理是利用了按键形成的矩阵结构的特点,通过行和列的扫描方式,实现简明高效的按键检测。

常用的实现方式是使用多路开关电路来连接按键和引脚,使得每个按键的状态可以被准确地检测到。

在矩阵键盘的工作过程中,微控制器通过逐行或逐列扫描的方式检测按键的状态。

当检测到按键按下时,微控制器会在相应的引脚上读取到低电平信号,从而确定按键被按下的位置。

矩阵键盘常用于计算机、电子设备以及各种控制系统中,它在输入效率和使用成本方面都有一定的优势。

通过合理设计矩阵的大小和按键的布局,可以满足不同应用场景的需求。

总体来说,矩阵键盘是一种可靠、经济且比较常见的输入方式。

EDA矩阵键盘

EDA矩阵键盘

实验十五矩阵键盘接口电路的设计一、实验目的1、了解普通4×4键盘扫描的原理。

2、进一步加深七段码管显示过程的理解。

3、了解对输入/输出端口的定义方法。

一、实验原理实现键盘有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描。

作为一个嵌入系统设计人员,总是会关心产品成本。

目前有很多芯片可以用来实现键盘扫描,但是键盘扫描的软件实现方法有助于缩减一个系统的重复开发成本,且只需要很少的CPU 开销。

嵌入式控制器的功能能强,可能充分利用这一资源,这里就介绍一下软键盘的实现方案。

图15-1 简单键盘电路通常在一个键盘中使用了一个瞬时接触开关,并且用如图15-1 所示的简单电路,微处理器可以容易地检测到闭合。

当开关打开时,通过处理器的I/O 口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的/IO 口的输入将被拉低得到逻辑0。

可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1 或者0。

尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。

当触点闭合时,其弹起就像一个球。

弹起效果将产生如图15-2 所示的好几个脉冲。

弹起的持续时间通常将维持在5ms∼30ms 之间。

如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。

然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。

图15-2 按键抖动键盘上阵列这些开关最有效的方法(当需要5 个以上的键时)就形成了一个如图15-3 所示的二维矩阵。

当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O 端被连接的时候)。

一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。

矩阵所需的键的数目显然根据应用程序而不同。

每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。

图15-3 矩阵键盘键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。

eda 实验《matrix keypad controller》简要心得

eda 实验《matrix keypad controller》简要心得

eda 实验《matrix keypad controller》简要心得1. 引言1.1 概述本篇长文旨在总结和分享我在进行EDA实验《matrix keypad controller》中的经验和心得。

该实验主要涉及矩阵键盘控制器的设计与实现,通过对材料、方法、设计方案以及实验步骤进行详细讲解,展示了从理论到实践的全过程。

1.2 文章结构本文将按照以下结构来展开:- 引言部分介绍了文章的背景和目的;- 接下来的部分将回顾实验过程,包括材料与方法、设计方案以及实验步骤的说明;- 随后是结果与分析部分,其中包括数据收集与处理、功能测试结果以及故障分析与解决方案;- 心得体会与反思部分引用个人观察和反思,对实验中遇到的问题、取得的成功之处以及改进空间进行讨论;- 最后是结论部分对整个实验进行总结,并给出进一步学习此主题所需参考文献。

1.3 目的本文旨在分享我在EDA实验《matrix keypad controller》中所获得的知识和技能,并提供一个有价值且清晰易懂的指南,帮助读者更好地理解和应用矩阵键盘控制器的设计与实现。

通过对实验过程、结果分析以及心得体会的详细描述,读者可以深入了解该实验的具体步骤和原理,并从中汲取经验,提升自己在EDA 领域的能力和技术水平。

2. 实验过程:2.1 材料与方法:在本次实验中,我们使用了以下材料和方法来完成Matrix Keypad Controller 的设计与实现。

首先,我们准备了一个4x4矩阵按键阵列,并将其连接到Arduino 开发板上。

接下来,我们选择了合适的导线来连接按键阵列和Arduino板的数字引脚。

我们还需要一台电脑或笔记本电脑来编写代码,并通过串行通信监视器进行结果的输出。

2.2 设计方案:在开始实验之前,我们需要确定Matrix Keypad Controller的设计方案。

我们决定使用Arduino作为主控制器,并利用其数字引脚实现对矩阵按键阵列的读取和解析。

矩阵式键盘工作原理

矩阵式键盘工作原理

矩阵式键盘工作原理
矩阵式键盘的工作原理是基于矩阵电路的设计。

该键盘由一组键开关组成,这些键开关呈现出行和列的网格状布局。

每个键开关都连接到一个行列交叉点。

在键盘上按下某个按键时,该按键对应的行列交叉点位置会发生变化。

这种变化可以通过键盘控制器或芯片中的扫描电路进行检测。

扫描电路会按顺序扫描每个行和列的交叉点,检测到键按下的时候会产生一个电信号。

当键盘的控制器检测到有按键按下时,它会将该按键的信息发送到计算机。

计算机接收到按键信息后,会根据键盘映射表将按键转换为对应的字符或功能。

这样,用户通过按下键盘上的按键,就能够输入字符或执行特定的功能。

整个矩阵式键盘的工作原理可以归纳为以下几个步骤:
1. 初始化:键盘控制器配置为扫描矩阵键盘。

2. 扫描:控制器按顺序扫描每个行和列的交叉点,检测到按键按下的时候产生一个电信号。

3. 检测:键盘控制器检测到按键按下的电信号后,将其转换为对应的按键信息。

4. 传输:键盘控制器将按键信息传输给计算机。

5. 转换:计算机根据键盘映射表将按键信息转换为对应的字符或功能。

6. 执行:计算机执行输入的字符或功能。

通过这样的工作原理,用户可以通过按下矩阵式键盘上的按键,实现对计算机的输入操作。

eda矩阵键盘扫描课程设计

eda矩阵键盘扫描课程设计

eda矩阵键盘扫描课程设计一、课程目标知识目标:1. 让学生掌握EDA矩阵键盘扫描的基本原理,理解其电路构成及工作流程。

2. 学会运用已学知识,分析并设计简单的矩阵键盘扫描电路。

3. 了解矩阵键盘扫描技术在现实生活中的应用,培养对电子技术的兴趣。

技能目标:1. 培养学生动手操作能力,能独立完成矩阵键盘扫描电路的搭建与调试。

2. 提高学生的问题分析能力,学会运用矩阵键盘扫描技术解决实际问题。

3. 培养学生的团队合作精神,学会在团队中分享观点、交流经验。

情感态度价值观目标:1. 激发学生对电子科技的兴趣,培养其探索精神和创新意识。

2. 培养学生严谨的科学态度,注重实践操作,养成动手解决问题的习惯。

3. 引导学生关注社会问题,认识到科技对生活的改善作用,树立正确的价值观。

课程性质:本课程为实践性较强的电子技术课程,旨在通过矩阵键盘扫描技术的学习,培养学生的动手能力、问题分析能力和团队合作精神。

学生特点:本课程面向高年级学生,学生在前期课程中已具备一定的电子技术基础,具有较强的学习能力和实践操作能力。

教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,提高学生的实际操作能力。

通过小组合作、讨论交流等形式,培养学生的团队合作精神和创新意识。

同时,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。

在教学过程中,注重分解课程目标为具体的学习成果,以便进行有效的教学设计和评估。

二、教学内容1. 理论知识:- 矩阵键盘的原理及其在EDA技术中的应用。

- 矩阵键盘扫描电路的设计方法及其工作原理。

- 常见矩阵键盘扫描电路的电路图分析。

2. 实践操作:- 矩阵键盘扫描电路的搭建与调试。

- 键盘扫描程序编写及烧录。

- 键盘扫描电路与微控制器连接与通信。

3. 教学大纲安排:- 第一阶段:矩阵键盘原理学习,了解其在EDA技术中的应用,分析典型矩阵键盘扫描电路。

- 第二阶段:实践操作,分组进行矩阵键盘扫描电路的搭建、编程和调试。

矩阵键盘的按键识别方法

矩阵键盘的按键识别方法

矩阵键盘的按键识别方法矩阵键盘是一种常见的计算机输入设备,它使用了一种特殊的按键识别方法来将用户的按键输入转换为计算机可以理解的数字信号。

本文将介绍矩阵键盘的按键识别方法,重点讨论如何利用其独特的电路结构来实现按键识别和信号输出。

矩阵键盘通过一种由行和列组成的矩阵电路来识别按键。

每个按键都对应着矩阵中的一个交叉点,当用户按下某个按键时,会在该交叉点上产生一个电气信号。

为了识别用户按下的是哪个按键,矩阵键盘需要通过电路来扫描每个按键,并将其映射为相应的数字信号。

首先,矩阵键盘的电路结构通常由多个按键、行线和列线组成。

每个按键都连接着一根行线和一根列线,当用户按下某个按键时,该按键连接的行线和列线会产生接通信号。

其次,为了识别用户按下的是哪个按键,矩阵键盘需要通过一个扫描器来轮流扫描每个按键。

扫描器会按照顺序选择每一行或每一列,并将其连接到输入输出端口。

当某一行或列被选择时,与之相连的所有按键都会产生接通信号,而其他按键则不会产生信号。

接着,矩阵键盘会将扫描到的信号转换为数字信号,并输出给计算机或其他设备。

这一过程通常由矩阵键盘的控制芯片来完成,控制芯片会对扫描到的信号进行编码,并将其转换为计算机可以理解的数字信号。

最后,矩阵键盘的按键识别方法还需要考虑到防抖动和多键盘冲突的问题。

防抖动是指在用户按下按键时,可能会产生抖动信号,这会对按键识别造成干扰。

为了解决这一问题,矩阵键盘通常会在电路中加入防抖动电路来滤除无意识的按键信号。

而多键盘冲突是指在用户同时按下多个按键时,可能会导致按键识别混乱。

为了解决这一问题,矩阵键盘通常会采用键盘矩阵编码和解码技术来确保每个按键的信号都可以被准确识别。

综上所述,矩阵键盘的按键识别方法通过独特的电路结构和控制芯片来实现对用户按键输入的识别和信号输出。

通过扫描器的轮流扫描和控制芯片的编码转换,矩阵键盘可以准确地将用户的按键输入转换为计算机可以理解的数字信号。

同时,通过防抖动和多键盘冲突的处理,矩阵键盘也能够确保按键识别的准确性和稳定性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验十五矩阵键盘接口电路的设计
一、实验目的
1、了解普通4×4键盘扫描的原理。

2、进一步加深七段码管显示过程的理解。

3、了解对输入/输出端口的定义方法。

一、实验原理
实现键盘有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描。

作为一个嵌入系统设计人员,总是会关心产品成本。

目前有很多芯片可以用来实现键盘扫描,但是键盘扫描的软件实现方法有助于缩减一个系统的重复开发成本,且只需要很少的CPU 开销。

嵌入式控制器的功能能强,可能充分利用这一资源,这里就介绍一下软键盘的实现方案。

图15-1 简单键盘电路
通常在一个键盘中使用了一个瞬时接触开关,并且用如图15-1 所示的简单电路,微处理器可以容易地检测到闭合。

当开关打开时,通过处理器的I/O 口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的/IO 口的输入将被拉低得到逻辑0。

可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1 或者0。

尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。

当触点闭合时,其弹起就像一个球。

弹起效果将产生如图15-2 所示的好几个脉冲。

弹起的持续时间通常将维持在5ms∼30ms 之间。

如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。

然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。

图15-2 按键抖动
键盘上阵列这些开关最有效的方法(当需要5 个以上的键时)就形成了一个如图15-3 所示的二维矩阵。

当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O 端被连接的时候)。

一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。

矩阵所需的键的数目显然根据应用程序而不同。

每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。

图15-3 矩阵键盘
键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。

同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。

获取到行值和列值以后,组合成一个8位的数据,根据实现不同的编码在对每个按键进行匹配,找到键值后在7段码管显示。

二、实验内容
本实验要求完成的任务是通过编程实现对4X4矩阵键盘按下键的键值的读取,并在数码管上完成一定功能(如移动等)的显示。

按键盘的定义,按下“*”键则在数码管是显示“E”键值。

按下“#”键在数码管上显示“F”键值。

其它的键则按键盘上的标识进行显示。

在此实验中数码管与FPGA的连接电路和管脚连接在以前的实验中都做了详细说
明,这里不在赘述。

本实验箱上的4X4矩阵键盘的电路原理如图15-4所示。

与FPGA的管脚连接如表15-1所示。

图15-4 4X4矩阵键盘电路原理图
表15-1 4X4矩阵键与FPGA的管脚连接表
三、实验步骤
1、打开QUARTUSII软件,新建一个工程。

2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。

3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参
照光盘中提供的示例程序。

4、编写完VHDL程序后,保存起来。

方法同实验一。

5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。

6、编译仿真无误后,依照4X4矩阵键、数码管与FPGA的管脚连接表(表或参
照附录进行管脚分配。

表15-2是示例程序的管脚分配表。

分配完成后,再进行全
编译一次,以使管脚分配生效。

表15-2 端口管脚分配表
7、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。

观察实验结果是
否与自己的编程思想一致。

四、实验结果与现象
以设计的参考示例为例,当设计文件加载到目标器件后,将数字信号源模块的时钟选择为1KHZ,按下矩阵键盘的某一个键,则在数码管上显示对应的这个键标识的键值,当再按下第二个键的时候前一个键的键值在数码管上左移一位。

按下“*”键则在数码管是显示“E”键值。

按下“#”键在数码管上显示“F”键值。

五、实验报告
1、绘出不同的键值时的数码管的仿真波形,并作说明。

2、根据自己的思路,找一找还有没有其它方法进行键盘的扫描显示。

并画出流程图。

1、将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。

相关文档
最新文档