找回密码
 注册
关于网站域名变更的通知
查看: 333|回复: 1
打印 上一主题 下一主题

数字计算器基于FPGA设计源码和电路全部分享

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-5-25 09:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
数字计算器基于FPGA设计源码和电路全部分享
$ c" _5 y" `% x

9 u0 l6 `8 O. B; }7 v6 R; E
% u( d$ [* g  n, u4 @本实验,我们使用我们开发板上的矩阵键盘来设计一个简单的计算器,最终要实现多达任意六位数的“加、减、乘、除”运算(不考虑负数)。通过本项目的学习,大家可以掌握矩阵键盘的原理和驱动方式,同时也可以进一步体会模块化的设计方法和技巧。
7 W; C  H: k2 d, f4 h, C那么,在开始项目之前,我们首先应该明白矩阵键盘的基本原理,代码体现的是思路,只有在对外设原理足够清楚的前提下才可能建立起来正确的思路。矩阵键盘电路
  O/ b: o' v- \( Z% i; h8 ]; U  % F/ _  |5 E8 z* b8 C- h
3 a/ e  M2 h/ }" t
由上图可以看出,矩阵键盘的行row(行)与col(列)的交点,都是通过一个按键相连接。如果采用传统的“一个按键一个端口”的方法,要想实现16个按键,就需要16个端口;如果采用现在这个矩阵键盘的设计,要想实现16个按键,仅仅需要8个端口;如果使用16个端口来做矩阵键盘的话,则可以识别64个按键。相对于传统的键盘设计而言,矩阵键盘的设计大大提高了端口的利用率。# w- [7 }' C. F$ J( I3 `3 M- v6 d
因此如果需要的按键少,可以选择传统的按键设计,但如果需要的按键比较多,则建议采用这种矩阵键盘的设计。接下来我们就以扫描法为例来带领大家了解矩
9 e, x6 O- |! K0 R+ q2 N6 @5 u阵键盘的工作原理。
5 F+ i1 |; {0 j3 A1 m6 Y9 _首先col(列)是FPGA给矩阵键盘输出的扫描信号,而row(行)是矩阵键盘反馈给 FPGA 的输入信号,用于检测哪一个按键被按下。FPGA&nBSP; 给出扫描信号COL[3:0]:COL = 4’b0111,等下一个时钟周期COL  = 4’b1011,再等下一个时钟周期COL =  4’b1101,再等下一个时钟周期COL = 4’b1110,再等下一个时钟周期COL = 4’b0111,COL就是这样不断循环,给矩阵键盘一个低电平有效的扫描信号。当FPGA给矩阵键盘COL扫描信号的同时,FPGA也要在检测矩阵键盘给FPGA的的反馈信号ROW。举个例子,假若矩阵键盘中的9号按键被按下了:6 ~* H2 p& {& r/ j
当COL = 4’b0111,ROW = 4’b1111;
* P; n5 |+ n1 w当COL = 4’b1011,ROW = 4’b1111;
( Q* T# ]" S; P! W) v1 L当COL = 4’b1011,ROW = 4’b1111;) E4 x; D& ~( N4 B
当COL = 4’b1011,ROW = 4’b1111;
) i, _3 f. {  Q2 ]# h有人问,为什么当COL = 4’b1101的时候,ROW  = 4’b1011呢?我们现在观察如图8-20所示的矩阵键盘的电路图,分析如下:
4 W0 ~: C8 }5 `/ `0 I+ Z  r3 M4 b, [当9号按键被按下的时候,9号按键的电路就会被导通,扫描电路COL开始扫描,当扫描到 COL[1]的时候,由于 9 号按键的电路被导通了,COL[1]的电压等于ROW[2]的电压,所以会出现当COL  = 4’b1101的时候ROW = 4’b1011(扫描信号的频率大概1K左右)。
! t& x+ R9 n1 s* X! G5 c通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种  l2 N: a8 y- R
现象而作的措施就是按键消抖。6 D; v. J5 M  ]' w
抖动时间的长短由按键的机械特性决定,一般为 5ms~10ms。这是一个很重要的时间参数,在很多场合都会用到。按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒(按键按下的时间一般都会大于20ms)。按键抖动会引起一次按键被误读多次,为确保 CPU对按键的一次闭合仅作一次处理,必须去除按键抖动。在按键闭合稳定时读取按键的电平状态,并且必须判别到按键释放稳定后再作处理。- Q" L) t7 K) X4 o, O1 i2 j( H
然后我们就可以利用这些现象,来设计一个识别按键的电路。. [, d2 V6 w+ N6 E
游客,如果您要查看本帖隐藏内容请回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-11 21:16 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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