集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 3225|回复: 5

用矩阵键盘在数码管上输出十六进制和十进制数

[复制链接]
打铁小肥罗 发表于 2016-8-24 00:13:14 | 显示全部楼层 |阅读模式
一.如题,要用矩阵键盘在数码管上显示十六进制数和十进制数,肯定要用到键盘输入和数码管,顶层可以这样搭建:
如图:顶层1~3.javascript:;javascript:;
顶层包含Keyboard(键盘输入模块)和smg(数码管模块)两个子模块。javascript:;以上信号为顶层的输入和输出。
二.接下来看键盘输入模块。
javascript:;javascript:;javascript:;
按照电路顺序为:
1.scankey(键盘扫描模块)→2.key_xd(键盘消抖模块)→3.key_reg(数据寄存模块)
1.scankey(键盘扫描模块)
javascript:;javascript:;javascript:;
键盘扫描模块又分两个子模块a.        key_switch(进制切换模块)和b.        scan(扫描模块).
a.        Key_switch(进制切换模块)
我们输入的是两种进制,所以在输入的时候要有一个选择,作为我们输入进制的标志,我们在这里用板子上四位按键之中的S4按键作为我们的switch输入,控制输入进制状态state,为了便于观察,我外接了一盏LED灯(pio_led),亮的时候表示输入十进制,灭的时候表示输入十六进制。
b.        Scan(扫描模块)
矩阵键盘的扫描,用FPGA向键盘发送扫描列电平col,与FPGA从键盘接收过来的行电平row,以及我们的进制状态state组成扫描码scancode={state,col[3:0],row[3:0]},用一个case语句,把我们的按键扫描出来。
javascript:;javascript:;
注意:我的程序由外部键盘输入的十六进制数是8421码
十进制输入的直接是BCD码!
2.key_xd(键盘消抖模块)
javascript:;
消抖模块大概思路:
先对键盘连续输出的N个数字进行取值,在进行判断,如果这连续的N个数值相同,则为真实输出,否则为抖动,在每一次按键按下且有真实输出的情况下,我们将keynum_vld拉高为高电平,知道按键放开再将为低电平,我们认为这是一次有效输出。
3.key_reg(数据寄存器模块)
javascript:;javascript:;
我们以keynum_vld(按键输出脉冲信号)为基准,向寄存器中写入数据。
上面三个步骤即为键盘输入模块的思路。下面我们来探讨数码管模块的思路。
三.数码管模块
javascript:;javascript:;
数码管模块分为:
1.smg_light(数码管亮灭控制模块)→2.smg_display(数码管显示模块)。
1.smg_light(数码管亮灭控制模块)
javascript:;
思路:
从最高位开始,从第一个不是零的开始点亮数码管。用到一个csaex语句。
javascript:;
2.smg_display(数码管显示模块)
javascript:;
一共六个数码管(3’b000~3’b101)分分别对应数码管十万,万,千,百,十,个位。再把我们在上一模块的数码管点亮使能信号与六个数码管一一对照,如图
javascript:;
再扫入数码管即可:
javascript:;javascript:;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
芙蓉王 发表于 2016-8-24 09:37:27 | 显示全部楼层
                        感谢分享
Blondie 发表于 2016-8-24 09:47:51 | 显示全部楼层
             多谢分享
Esmiamor 发表于 2016-8-24 11:13:39 | 显示全部楼层
                     加油
zhiweiqiang33 发表于 2016-8-24 14:45:41 | 显示全部楼层
坚持 写的很好,继续加油努力
zxopenljx 发表于 2022-11-16 09:55:36 | 显示全部楼层
用矩阵键盘在数码管上输出十六进制和十进制数
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 02:54 , Processed in 0.063639 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表