verilog如何用矩阵键盘按三次输入三位数(0-999)?

2019-03-25 07:34发布

verilog如何用矩阵键盘按三次输入三位数(0-999)?
module key4x4
(
     clk,
     rst_n,
     row,                 
     col,               
     key_val         
);
input clk;
input rst_n;
input [3:0] row;      // 矩阵键盘 行
output reg[3:0] col;  // 矩阵键盘 列
output reg[3:0] key_val;  // 键盘值  
按键每按一次只会输出一个数字,连续按需要如下处理:
num=key_val;
key_data=(key_data)*10+num;
这样如何实现????????????
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
574433742
1楼-- · 2019-03-25 12:47
< / 这个比上次精简多了,,我去找人帮你回答,,,
小梅哥
2楼-- · 2019-03-25 16:25
你这种方式是可行的,但是需要有一个标志信号,即什么时候按键检测成功,因为一次按键按下,键值保持不变,但是你却只能使用一次,所以需要做好这个判断。还有比较好的方式就是用移位寄存器,不过这样出来的会是BCD码格式,需要进行转换。我这里自己做了有实际的例子
elvike
3楼-- · 2019-03-25 18:19
这样的话,如何区别输入一个一位数,还是一个多位数的问题。我觉得,输入一位数之后默认等待输入这一个数的下一位数字,延时等待超过之后,把之前的连续输入默认的几位数当作一个数,然后继续输入下一个数
574433742
4楼-- · 2019-03-26 00:00
 精彩回答 2  元偷偷看……
574433742
5楼-- · 2019-03-26 02:16
elvike 发表于 2015-9-2 09:23
这样的话,如何区别输入一个一位数,还是一个多位数的问题。我觉得,输入一位数之后默认等待输入这一个数的 ...

感谢小玉,,,哇咔咔,,,
yuxuanwlfei
6楼-- · 2019-03-26 07:06
小梅哥 发表于 2015-9-2 11:20
你这种方式是可行的,但是需要有一个标志信号,即什么时候按键检测成功,因为一次按键按下,键值保持不变, ...

可否将你所说的方式例程公布一下?!

一周热门 更多>