veriloghdl矩阵键盘实验报告要点.docx

veriloghdl矩阵键盘实验报告要点.docx

ID:61666040

大小:59.92 KB

页数:12页

时间:2021-03-08

veriloghdl矩阵键盘实验报告要点.docx_第1页
veriloghdl矩阵键盘实验报告要点.docx_第2页
veriloghdl矩阵键盘实验报告要点.docx_第3页
veriloghdl矩阵键盘实验报告要点.docx_第4页
veriloghdl矩阵键盘实验报告要点.docx_第5页
资源描述:

《veriloghdl矩阵键盘实验报告要点.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、EDA实验报告学院:物信学院专业:电信一班小组成员:杨义,王祺,陈鹏,秦成晖指导老师:漆为民目目⋯3目的3原理3内容⋯⋯5程序⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..5步⋯⋯⋯⋯10果⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.10体会⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯10附⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯11一.实验题目:矩阵键盘显示电路设计二.实验目的:1.了解普通4×4键盘扫描的原理。2.进一步加深七段码管显示过程的理解。3.了解对输入/输出端口的定义方法。三.实验原理:软键盘的工作方式:通常在一个键盘中使用了一个瞬时接触开关,并且用如图所示的简单电路,微处理器可以容易地检测到闭合。当开关打开时,通过处理器的I/O口的一个上

2、拉电阻提供逻辑1;当开关闭合时,处理器的/IO口的输入将被拉低得到逻辑0。可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1或者0。尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。当触点闭合时,其弹起就像一个球。弹起效果将产生如图10-2所示的好几个脉冲。弹起的持续时间通常将维持在5ms~30ms之间。如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。键盘上阵列这些开关最有效的方法(当需要5个以上的键时)就形成了一个如图10-3所示的二维矩

3、阵。当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O端被连接的时候)。一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平

4、,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。8位的数据,根获取到行值和列值以后,组合成一个据实现不同的编码在对每个按键进行匹配,找到键值后在7段码管显示。四.实验内容:本实验要求完成的任务是通过编程实现对4X4矩阵键盘按下键的键值的读取,并在数码管上完成一定功能(如移动等)的显示。按键盘的定义,按下“*”键则在数码管是显示“E”键值。按下“#”键在数码管上显示“F”键值。其它的键则按键盘上的标识进行显示。在此实验中数码管与FPGA的

5、连接电路和管脚连接在以前的实验中都做了详细说明,这里不在赘述。本实验箱上的4X4矩阵键盘的电路原理如图所示五.实验程序:Modulekey(clk,reset,row,col,key_value);inputclk,reset;input[3:0]row;output[3:0]col;output[3:0]key_value;reg[3:0]col;reg[3:0]key_value;reg[5:0]count;//delay_20msreg[2:0]state;//状态标志regkey_flag;//按键标志位regclk_500khz;//500KHZ时钟信号reg[3:0]col_

6、reg;//寄存扫描列值reg[3:0]row_reg;//寄存扫描行值always@(posedgeclkornegedgereset)if(!reset)beginclk_500khz<=0;count<=0;endelsebeginif(count>=50)beginclk_500khz<=~clk_500khz;count<=0;endelsecount<=count+1;endalways@(posedgeclk_500khzornegedgereset)if(!reset)begincol<=4'b0000;state<=0;endelsebegincase(state)0:

7、begincol[3:0]<=4'b0000;key_flag<=1'b0;if(row[3:0]!=4'b1111)beginstate<=1;col[3:0]<=4'b1110;end//有键按下,扫描第一行elsestate<=0;end1:beginif(row[3:0]!=4'b1111)beginstate<=5;end//判断是否是第一行elsebeginstate<=2;col[3:0]<=4'b1101;end//

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。