EDA课程设计_基于VHDL的键盘扫描及显示电路(1).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《EDA课程设计_基于VHDL的键盘扫描及显示电路(1).doc》由会员分享,可在线阅读,更多相关《EDA课程设计_基于VHDL的键盘扫描及显示电路(1).doc(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、基于VHDL的键盘扫描及显示电路一、工作原理:可编程器件的KEY_HANG3.0行信号输出端不停循环输出“1110“1101“1011“0111。当没有键按下时可编程器件的KEY_LIE3.0列信号输入端检测到的是“1111。当有按键按下时,如按下1,此时KEY_HANG3.0行信号输出为“0111,即KEY_HANG3.0的3管脚为“0,可由电路看出,此时输入端KEY_LIE3.0检测到的将是“0111。KEY_LIE3.0的3管脚为0,可以在编写程序时,将输出信号KEY_HANG3.0与输入信号KEY_LIE3.0同时判断,比方可以认为当数据“KEY_HANG&KEY_LIE为“01110
2、111时,可译码成数据1,。同理可得其他按键的编码。根据不同数据的编码译成不同的数据。名称 IO属性 描述 备注 clk in 输入时钟,和频率 KEY_HANG3.0矩阵键盘的扫描输入端口 KEY_LIE3:0 矩阵键盘的扫描输出端口 START out 数据输出标志 DISP DATA6.0out 数码管译码显示译码输出 bit DASP SEL1.0数码管扫描输出 CLK_1KCLK_1K START KEY_HANG3.0CLE_40K DATA_P7.0 DISP DATA6.0KEY_LIE DASP SEL1.0 CLK_40K二、设计思路:1.循环输出行信号,检测列信号输入,将
3、行列信号相并。2.译键值。 去抖动。在译没一个键值后,为了防止抖动,加了一个计算环节,一旦检测到列信号后,译码,紧跟着进入计数环节,此时键抖动不会进入其他环节,这样可以防止抖动。 数码管译码、循环显示。电路的具体功能罗列如下: 1) 采用44矩阵键盘作为操作数和操作符的输入设备。 2) 采用2位8段数码管作为输出显示设备,显示按下的数字及简单的功能。 3) 由于所有键盘在按下或者弹起的时候均有按键抖动,所以应该采用去抖电路,当检测到有按键按下去的时候,应该延时20ms后,再进行检测,如果仍有键盘按键被按下去的话,那么进行键盘读值。 矩阵键盘模块key_4_4的RTL电路图如下 所示。 当CLK
4、_1K上升沿到来时状态转为state0,然后判断列与非后的值,看是否有按键按下,如果有输入数据,那么自动启动20ms的计数器,当计满数后,产生一个指示信号,此信号为1bit,高电平有效。当读到此指示信号后,便再次将row信号锁存至存放器,便得到键盘的一个返回值。如果row没有变化,那么state转换为state2,对第二行进行按键扫描。依此类推,扫描第三行与第四行。 因为普通的按键都是接触式的,当按键闭合或释放时,上下接触面都会产生一个很短暂的抖动,如图2.2所示,这个抖动时间一般都会持续5-10ms,虽然这个抖动时间很短,但对于FPGA工作在50M的高频率上的器件来说,还是可以捕捉的到的。为
5、了使CPU对于一次按键操作只处理一次,在软件中必须参加去除抖动处理。 图2.2 按键闭合时产生的抖动 由图中可以看出,最简单的去抖方法就是每隔一段时间读一次键盘,时间间隔大于10ms即可。如果连续两次检测都有按键被按下,那么可以肯定有按键被按下,而且也进入闭合稳定期。 三、数码管显示译码模块设计 数码管显示译码电路主要用来对实际的二进制数据装换为8段数码管的实际显示控制码,采用两个2位的8段共阴极数码管,数码管的显示方式有两种:静态显示和动态显示。具体如下: 静态显示方式:所谓静态显示就是指无论是多少位数码管,同时处于显示状态。静态显示的优点是:数码管显示无闪烁,亮度高,软件控制比较容易;缺点
6、是:需要的硬件电路较多每一个数码管都需要一个锁存器,将造成很大的不便,同时由于所有数码管都处于被点亮状态,所以需要的电流很大,当数码管的数量增多时,对电源的要求也就随之增高。所以,在大局部的硬件电路设计中,很少采用静态显示方式。 动态显示方式:所谓动态显示,是指无论在任何时刻只有一个数码管处于显示状态,每个数码管轮流显示。动态显示的优点是:硬件电路简单数码管越多,这个优势越明显,由于每个时刻只有一个数码管被点亮,所以所有数码管消耗的电流较小;缺点是:数码管亮度不如静态显示时的亮度高,例如有8个数码管,以1秒为单位,每个数码管点亮的时间只有1/8秒,所以亮度较低;如果刷新率较低,会出现闪烁现象;
7、如果数码管直接与单片机连接,软件控制上会比较麻烦等。 显示译码方式如下: 1) 时钟上升沿到来时分别对位选和段选进行译码。 2) 将输入的2bite位选数据译码成4比特数据控制数码管的2位,由于是共阴极数码管要选定相应的数码管那么使该位位低电平,其它位为高电平即可,如:0000译码为0111_1111,对应于实验板上的左边第一位数码管。 3) 将输入的4bite段选数据译码为8比特数据控制8个LED的亮灭,最高位接A,最低位接小数点位DP。假设要显示0那么对应的译码为 8b1111_1100。 四、仿真没有键按下时行循环输出“当随机按下时行保持所按下的状态不变 五、结论 这次EDA课程设计历时
8、十天,学到很多很多的东西。同时不仅可以稳固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,都会很快乐。在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误。排除困难后,程序编译就通过了。在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示,后来,经过屡次的调试之后,才发现在写代码之前对信号的相位考虑缺乏。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 基于 VHDL 键盘 扫描 显示 电路
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内