永发信息网

有关 FPGA的外接4X4矩阵键盘

答案:3  悬赏:40  手机版
解决时间 2021-03-06 04:12
  • 提问者网友:美人性情
  • 2021-03-05 14:33
有关 FPGA的外接4X4矩阵键盘
最佳答案
  • 五星知识达人网友:你可爱的野爹
  • 2021-03-05 15:11
我有完整4x4键盘+数码管显示Verilog程序,留下你的E-mail,贴不下.追问这个可以有~~
主要还是想学 能做出这个基本的功能 嘿嘿
hjs3709@qq追答已发. 你是学生么? 硬件你会了是吧.学会状态机的2段式或3段式写法就能理解这个程序了.
2段式: 第一个always 块写时序,第二个写组合状态转换和输出组合逻辑.
3段式:第一个always 块写时序,,第二个写组合状态转换,第三个输出组合逻辑.追问学生仔一枚 学FPGA也就4个月 会读些程序
但接口方面基本不了解哈~
在Q上聊OK不~方便点追答可以.追问你倒是上下Q~
全部回答
  • 1楼网友:酒安江南
  • 2021-03-05 17:47
矩阵扫描键盘啊,以前用单片机做过。用FPGA的话,原理是一样的。
请相信我,原理上非常简单,但是写起程序来,对新手而言,还是很有些难度的哦:)
1)原理如下:8根线都接到FPGA的IO上,其中4根“列”线配置成高阻态,4根行线配置成输入并且下拉(下拉可以内部配,也可以外接)。
然后4根列线依次输出高电平1,同时查询4根行线,就知道哪一个按键被按下了。原理简单吧?
2)程序如果用单片机用C写,是易如反掌的,因为单片机最适合干逻辑上的事情了,如果用verilog给FPGA写这段代码,那还是要一定的基本功的哦,呵呵。这里简单告知思路,如果不太能理解的话,说明verilog的功底还不太够,先学学verilog吧。
一段很裸的程序思想:
a.实现自动扫描模块。一个2bit的cnt,不停的加,这样有4种状态,每种状态,把某一个“列”管脚输出1,否则高阻。
b.实现按键检测。每一个按键一个独立的reg,共16个reg,用组合逻辑同步检测并更新reg值,更新的条件是对应的行、列都是高电平。
c.最关键最关键的地方到了。如果写出一段稳定的代码?强烈推荐所有的寄存器reg操作都用同步逻辑。但步骤a.b.里面显然要错相位才能稳定检测,怎么办?好办,用ENa,ENb信号很容易搞定。生成2个错相位,交替的ENa,ENb信号,宽度为一个基础时钟,仅当对应的EN有效时,对应模块才更新自己的寄存器。
总结:以上便是程序思想,如果熟练运用verilog的话,配上以上思想,就很容易做出来啦~
如果没看明白,那短期内也不用指望了,verilog编程思想和c是天壤之别,完全不同的东西啊。建议多思考,多练,再请明白人多点醒点醒,能加快学习速度。追问错相位是啥?
我不会做得性能非常好的啦~~时间所剩无几了~
能不出错地完成基本的功能就OK
矩阵键盘是要接上拉电阻吧?要不要算管脚的低电平电流和阈值电压?
还是连1K后直接接上去?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯