实验07:4X4键盘阵列扫描输入.pdf
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
键盘阵列扫描输入
一、实验目的
1. 进一步学习并掌握Quartus II设计的方法及步骤;
2. 熟悉VHDL语言电路设计方法;
3. 熟悉EACF型FPGA开发板,参见6.1节;
4. 学习并掌握利用VHDL描述并设计电路的方法及步骤;
5. 学习并掌握键盘阵列的扫描输入的方法及实现过程。
二、实验原理
键盘阵列是一个由4×4的按键开关组成的阵列,可实现16种状态的输入。4×4按键阵列的硬件连接原理如下图所示。
4X4键盘阵列
其中VCC3.3为3.3V的正电源;BUTTON为4×4共16个按键,R为电阻。而K_H_1、K_H_2、K_H_3、K_H_4为4×4按键阵列连接到FPGA通用IO引脚的行信号;K_V_1、K_V_2、K_V_3、K_V_4为4×4按键阵列连接到FPGA通用IO引脚的列信号,如下图所示。
键盘阵列与FPGA的连接
另外,连接到FPGA的行列信号圴为3.3V的LVTTL电平标准:即电压小于0.8V为低电平,高于2.0V为高电平。通过上述4×4按键阵列的硬件连接原理图可看出,行和列信号都通过10K的电阻上拉到3.3V的电源,也就是说如果FPGA通过对应的IO引脚来读取4×4按键阵列的行和列信号,得到的全部为高电平“1”,即使按键按下时,读到的依然是高电平“1”。那么如何在FPGA中判断4×4按键阵列中的哪个键按下呢?当然我们要实现按键输入的功能,就不能全部读取行和列的信号。而应通过不断地输出扫描行(或列),再通过读取列(或行)的信号来判断哪个按键按下。即:
通过对4×4键盘阵列的4个行(或列)控制信号循环输出”1110、1101、1011、0111”,来驱动键盘阵列,紧接着读取相应的4个列(或行)信号。通过读取的数据或状态来判断16个按键中哪个键被按下,并对其状态做编码输出。此电路不停的工作,以便实时准确地获取键盘的输入状态,以供其它电路使用,从而实现了键盘阵列的扫描输入。如:当行驱动信号输出“1110”(信号排列顺序:H1、H2、H3、H4)时,下一周期读取列信号为“0111”(信号排列顺序:V1、V2、V3、V4),则可判断按键B13按下。
VHDL电路设计的框图如下所示。
(或列)扫描输出4(或行)扫描输入
注意上图中扫描输出与扫描输入的时间关系。
如果此实验在“七段数码管动态显示电路设计”实验后做,则必须用数码管来显示按键的编码输出,否则可用发光二极管来显示。
三、实验内容
分析4×4按键阵列的原理,用VHDL设计输入方式完成键盘扫描电路,并完成仿真、硬件验证等FPGA设计过程和验证方式。
四、实验报告
按要求写出实验内容及结果并进行分析。
实验参考资料及文档:
【1】实验07:4X4键盘阵列扫描输入.pdf,实验室内部资料,实验讲义。
【2】EDA实验室EACF型实验板_原理图.pdf ,实验室内部资料,实验箱原理图。
【3】EDA实验室EACF型实验板_管脚对应表.pdf,实验室内部资料,实验讲义。
【4】《电子系统设计基础》,中国科学技术大学出版社,梁晓雯等。