基于VHDL的键盘扫描及显示电路_第1页
基于VHDL的键盘扫描及显示电路_第2页
基于VHDL的键盘扫描及显示电路_第3页
基于VHDL的键盘扫描及显示电路_第4页
基于VHDL的键盘扫描及显示电路_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EDA课程设计说明书设计题目基于VHDL的键盘扫描及显示电路系 另ij电控系专业班级学生学号指导教师日期基于VHDL的键盘扫描及显示电路一、工作原理:可编程器件的KEY_HANG30行信号输出端不停循环输出“1110” “1101” “1011” “0111”。当没有键按下时可编程器件的KEY-LIE 3. 0列信号输入端检测到的是 “1111”。当有按键按下时,如按下1,此时KEY_HANG3. 0行信号输岀为“0111”, 即KEY_HANG30的3管脚为“0役可由电路看出,此时输入端KEY_LIE3. 0检测 到的将是“0111”。KEY_LIE3. 0的3管脚为0,可以在编写程序时,将

2、输出信号 KEY_HANG30与输入信号KEY_LIE3. 0同时判断,比如可以认为当数据 “KEY_HANG&KEY_LIE”为“01110111”时,可译码成数据1,。同理可得其他按键的 编码。根据不同竅据的编码译成不同的数据。CLK_1KCLK_40KCLK.1KSTARTKEY_HANG3. 0CLE.40KDATA_P70DISP DATA60KEY LIEDASP SEL(1.O名称10属性描述备注elkin输入时钟,11和4 0 1频 率KEY_HANG3. 00 u t矩阵键盘的扫描输入端口KEY_LIE3:0i n矩阵键盘的扫描输岀端口STARTout数据输出标志DISP D

3、ATA6.Oout数码管译码显示译码 7bit输出DASPSEL1O0 u t数码管扫描输岀2 b i tDDB二、设计思路:1循环输出行信号,检测列信号输入,将行列信号相并。2. 译键值。3. 去抖动。在译没一个键值后,为了防止抖动,加了一个计算环节,一旦检测到 列信号后,译码,紧跟着进入计数环节,此时键抖动不会进入其他环节,这样可以 防止抖动。4 数码管译码、循环显示。电路的具体功能罗列如下:1)采用4X4矩阵键盘作为操作数和操作符的输入设备。2)釆用2位8段数码管作为输出显示设备,显示按下的数字及简单的功能。3)山于所有键盘在按下或者弹起的时候均有按键抖动,所以应该釆用去抖电 路,出检测

4、到有按键按下去的时候,应该延时20ms后,再进行检测,如果仍有键盘 按键被按下去的话,则进行键盘读值。矩阵键盘模块key_4_4的RTL电路图如下 所示。当CLK_1K上升沿到来时状态转为stateO,然后判断列与非后的值,看是否有按键按 下,如果有输入数据,则自动启动20ms的计数器,当计满数后,产生一个指示信号, 此信号为lbit,高电平有效。当读到此指示信号后,便再次将row信号锁存至寄存器, 便得到键盘的一个返回值。如果row没有变化,贝Estate转换为state2,对第二行进 行按键扫描。依此类推,扫描第三行与第四行。因为普通的按键都是接触式的,当按键闭合或释放时,上下接触面都会产

5、生一个很 短暂的抖动,如图22所示,这个抖动时间一般都会持续5-10ms,虽然这个抖动时间 很短,但对于FPGA工作在50M的高频率上的器件来说,还是可以捕捉的到的。为了使 CPU对于一次按键操作只处理一次,在软件中必须加入去除抖动处理。图2.2按键闭合时产生的抖动图2.2按键闭合时产生的抖动山图中可以看出,最简单的去抖方法就是每隔一段时间读一次键盘,时间间隔大于 10ms即可。如果连续两次检测都有按键被按下,则可以肯定有按键被按下,而且也 进入闭合稳定期。三、数码管显示译码模块设计数码管显示译码电路主要用来对实际的二进制数据装换为8段数码管的实际显示控 制码,采用两个2位的8段共阴极数码管,

6、数码管的显示方式有两种:静态显示和动 态显示。具体如下:静态显示方式:所谓静态显示就是指无论是多少位数码管,同时处于显示状态。 静态显示的优点是:数码管显示无闪烁,亮度高,软件控制比较容易;缺点是:需 要的硬件电路较多(每一个数码管都需要一个锁存器),将造成很大的不便,同时山 于所有数码管都处于被点亮状态,所以需要的电流很大,当数码管的数量增多时, 对电源的要求也就随之增高。所以,在大部分的硬件电路设计中,很少采用静态显 示方式。动态显示方式:所谓动态显示,是指无论在任何时刻只有一个数码管处于显示状态, 每个数码管轮流显示。动态显示的优点是:硬件电路简单(数码管越多,这个优势越明显),山于每个

7、时刻 只有一个数码管被点亮,所以所有数码管消耗的电流较小;缺点是:数码管壳度不 如静态显示时的壳度高,例如有8个数码管,以1秒为单位,每个数码管点亮的时间 只有1/8秒,所以亮度较低;如果刷新率较低,会出现闪烁现象如果数码管直接与 单片机连接,软件控制上会比较麻烦等。显示译码方式如下:1)时钟上升沿到来时分别对位选和段选进行译码。2)将输入的2bite位选数据译码成4比特数据控制数码管的2位,山于是共阴极 数码管要选定相应的数码管则使该位位低电平,其它位为高电平即可,如:0000译 码为0111.1111,对应于实验板上的左边第一位数码管。3)将输入的4bite段选数据译码为8比特数据控制8个

8、LED的亮灭,最高位接A,最 低位接小数点位DP。若要显示0则对应的译码为8 bllll.llOOo四、仿真没有键按下时行循环输出u 1 1 1 0 u 1 1 0 u 1 0 1 1l0 1MMfirTWM|PcMr.505ntMavM505ntSi miOp:EndNOO 脸当随机按下时行保持所按下的状态不变PAIXP5 I卞於dpIE R m 102护12卩“0 QT M 12 尹107浄21、2X t .K 2.KX.2J2X iMlJLneo:0101五、结论这次EDA课程设计历时十天,学到很多很多的东西。同时不仅可以巩固 以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

9、通 过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴 趣。特别是当每一个子模块编写调试成功时,都会很高兴。在编写顶层 文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号 的定义,总是有错误。排除困难后,程序编译就通过了。在波形仿真时, 也遇到了一点困难,想要的结果不能在波形上得到正确的显示,后来, 经过屡次的调试之后,才发现在写代码之前对信号的相位考虑不足。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论 知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论 中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独 立思考的能力。在设计

10、的过程中遇到问题,可以说得是困难重重,这毕 竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发 现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不 够牢固。总的来说,这次设计还是比较成功的,在设计中遇到了很多问题,最后 在老师的辛勤指导下,终于迎刃而解,有点小小的成就感,终于觉得平 时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅 学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加 清楚的认识,同时,对未来有了更多的信心。最后,对给过我帮助的老 师和所有同学再次表示忠心的感!六、程序LIBRARY IEEE;USEIEEE.STD_LOGIC_

11、1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY HH ISPORT(CLK_1K : IN STD_LOGIC; - 时钟输入 1 K H ZCLK_40K : IN STD_LOGIC; 一时钟输入 4 0 K HZKEY_LIE : IN STD_LOGIC_VECTOR(3 DOWNTO 0);-列输入 START :OUT STD_LOGIC;-二-十进制数据输出标志KEY_HANG :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); 一行输出 DATA_P : OU

12、T STD_LOGIC_VECTOR(7 DOWNTO 0);-二-十进制数输出DISP_DATA : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-数码管显示译 码输出DISP_SEL : OUT STD_LOGIC_VECTOR( 1 downto 0);-数码管显示扫描输 出END ;ARCHITECTURE RTL OF HH ISSIGNAL INT: STD_LOGIC; 一列与非 信号SIGNAL CLK_SEL : STD_LOGIC;-键值控制 lkhz的时钟信号SIGNAL START_REG:STD_LOGIC; 一数据输出标志信号SIGNAL DI

13、SP_SEL_REG:STD_LOGIC_VECTOR( 1 DOWNTO 0);-数码管显示扫 描信号SIGNAL DATA_L,DATA_H:STD_LOGIC_VECTOR(3 DOWNTO 0);-二-十进制低 位、高位信号SIGNAL DATA_TMP:STD_LOGIC_VECTOR(3 DOWNTO 0);-二-十进制低位高位 暂存信号SIGNAL KEY_HANG_TMP:STD_LOGIC_VECTOR(3 DOWNTO 0);行输出信号SIGNAL DISP_DATA_REG:STD_LOGIC_VECTOR(3 DOWNTO 0);-二十进制低 位、高位暂存信号(数码 管

14、用)SIGNAL KEY_CODE:STD_LOGIC_VECTOR(7 DOWNTO 0);-行列 相并信号SIGNAL DATA_P_REG:STD_LOGIC_VECTOR(7 DOWNTO 0); -二-十进制数信 号BEGINKEY_CODE=KEY_HANG_TMP&KEY_LIE;行、列相并DATA_P=DATA_P_REG;START= START_REG;KEY_HANGv 二 KEY_HANG_TMP;DISP SEL=DISP SEL REG;CLK_SEL=CLK_1 K AND ( NOT INT);-无键按下时有CLK-SEL时钟信号输出PROCESS (CLK_S

15、EL,CLK_40K , INT)VARIABLE STATE : INTEGER RANGE 0TO3 ;BEGINIF RISING_EDGE(CLK_40K) THEN一一个40K的脉冲上升沿到来输只一次列状态攻判断是否有按键按下INTKEY_HANG_TMPKEY_HANG_TMPKEY_HANG_TMPKEY_HANG_TMPDATA_TMP = DATA_L;-低四位放入暂存信号STATE:=i;WHEN 1二-再嵌套一个CASE语句CASE KEY_CODEIS-实现把像并数据译码 十六进制的1到FWHEN”01110111”=DATA_L =0001 ”;一把1放入低四位DAT

16、A_H d21IVJLVCIHV HIV1VG JOIIOWIVJyQ f 二 IO三orNUJHM HWHVLS -dwHIVJLVGHV HIVJyG i:08-llKJyG A 二二0 二orNBHM &HWMSdwllvJLVGHV HIVJyG 厂 oos.llv UIHQ A0三三0NmHA“HWHVFS -dHlIVJLVGHV HIVJyG moo wlIyGA 二 0 二三PNWHM“hwjxls-dwllvHVGHV HIVJyG JO3O.IIV JIHQ厂 oooo.llv JIV1VCI懿 二二 0 二 olrNBHM “HUJHVHS dwllvHVGHV HIVj

17、yG LrOOLllv JIVjyG6;fmosIrNUJHM“HGMS dwllvHGHV HIWyG gooLllv JIV1VCIA =0三二 orNwHAV &HUJMS SFIHQHV HIVJyG c二 o.llv JIHQ AJIO二二orNwHAVDATA_H =DATA_TMP;STATE:=2;WHEN HOlllOf-A键,实现步进加一功能IF DATA_H 二” lOOT THENIF DATA_L=1001 THENDATA_Hv=”1001;DATA_Lv二 ”1001”;ELSE DATA_L=DATA_L + 1; END IF;ELS IF DATA_L=T0

18、01” THENDATA_Lv二 ”0000;DATA_H=DATA_H+1; ELSEDATA_L=DATA_L+1;DATA_H-B键,实现步键加十IF DATA_H=T001” THENDATA_Hv 二”1001”;ELSEDATA L=DATA L;DATA_H-C键,实现步 进减一IF DATA_L=0000n AND DATA_H=0000 THEN DATA_L=,0000H;DATA_H=0000;ELS IF DATA_L=0000 THENDATA_Lv 二 ”1001”;DATA_H= DATA_H-1;ELSEDATA_L =DATA_L-1;DATA H一D键,实现步进 减 十IF DATA_H二”0000” THEN DATA_HE键,实现 送数功能DATA L=DATA L;DATA_H=DATA_H;DATA P REG=DATA H&DATA L; START_REG= 1,数据输出标志信号置一 STATE:=2;WHEN*l 1101101二F键

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论