数字系统设计大作业-4×4阵列键盘键信号检测电路设计_第1页
数字系统设计大作业-4×4阵列键盘键信号检测电路设计_第2页
数字系统设计大作业-4×4阵列键盘键信号检测电路设计_第3页
数字系统设计大作业-4×4阵列键盘键信号检测电路设计_第4页
数字系统设计大作业-4×4阵列键盘键信号检测电路设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

~2015学年第1学期《数字系统设计》大作业题目:4×4阵列键盘键信号检测电路设计专业:电子信息工程班级:姓名:指导教师:电气工程学院2015年12月摘要人类文明已进入到高度发达的信息化社会。信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,ElectronicDesignAutomation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。本设计主要利用VHDL硬件描述语言在EDA平台xilinx.ise.7.1i上设计一个4×4阵列键盘扫描电路,将行扫描信号输入阵列键盘,读取列信号的值,输出按键编码,从而判断出按键按下的位置。并且使用Modelsim软件进行模拟仿真,下载到EDA实验箱进行硬件验证。关键词:EDAVHDL语言4×4阵列键盘扫描目录TOC\o"1-3"\h\u27845《数字系统设计》 112616数字系统设计 211722摘要 37894关键词:EDAVHDL语言4×4阵列键盘扫描 325361、实验目的 5307872、实验要求 581733、实验原理 531834、总体框图 6105894.1.1方案一 6175094.1.2方案二 646794.2设计思路 7118785、功能模块介绍 9247435.1键盘消抖模块 9118275.2键盘模块 9286915.3VHDL部分程序 9257556、实验结果 11275166.1综合电路图 11124496.2时序仿真 121、实验目的(1)通过常见基本组合逻辑电路的设计,熟悉EDA设计流程;(2)熟悉文本输入及仿真步骤;(3)掌握VHDL设计实体的基本结构及文字规则;(4)理解硬件描述语言和具体电路的映射关系;(5)用VHDL设计一个能识别4×4阵列键盘的实用电路。2、实验要求要求通过查阅相关书籍资料,熟悉和初步掌握VHDL语言的语法及其功能,深入分析4×4键盘扫描电路的原理,然后运用VHDL硬件描述语言和图形设计综合方法,实现4×4键盘扫描电路的程序设计,通过运用xilinx.ise.7.1i软件设置输入端口,实现模拟仿真,得到仿真波形图后,并记录结果。实验原理4×4阵列键盘十分常用,如下图是此键盘电路的原理图,10芯接口也如下。通常,此类按键的识别法有两种:扫描法和反转法。扫描法,即当按下某键后,为了辨别和读取键信息,向A口扫描输入一组分别只含一个0的4位数据,如1110,1101,1011等。若有键按下,则B口一定会输出对应的数据,这时,只要结合A、B口的数据,就能判断出键的位置。如当键S0按下,对于输入的A=1110时,那么B=0111.于是{B,A}=0111_1110就成了S0的代码。反转法中,A、B口都必须接双向口。首先将A口设定为输出,B口设定为输入。然后向A口输出全0,接着读B口。若读入的数据中有一位是0,则表明与该位对应的列线上有某键被按下,存储此值(否则循环检测);然后反过来,将A口设定为输入,B口设定为输出。向B口输出全0,读A口,其中必有一位为0.将此4位数与刚才从B口读得的数据组合即得被按键的特征码。最后通过查表即得所按键的码。4×4按键电路总体框图4.1.1方案一时钟脉冲时钟脉冲译码输出键盘输入键盘扫描译码输出键盘输入键盘扫描上图为方案一的设计框图,键盘按键按下后,经过键盘扫描电路后,直接输出显示。本方案优点在于简单易懂,缺点在于无法消除按键按下时和之后弹起时的抖动对扫描电路的干扰。4.1.2方案二时钟脉冲键盘输入键盘消抖输出低电平LED灯显示键盘扫描键盘输入键盘消抖输出低电平LED灯显示键盘扫描上图为方案二的设计框图,键盘按键按下后,先经过消除抖动电路之后,再进入键盘扫描电路,这样就可以使CPU只处理一次按键操作,避免了按键按下时和之后弹起时的抖动对扫描电路的干扰。另外,LED灯显示可以更直观地看到实验结果。4.2设计思路本设计采用方案二,主要由三个功能模块组成:键盘消抖模块、键盘扫描模块、译码显示模块。(1)键盘消抖模块因为普通的按键都是接触式的,当按键闭合或释放时,上下接触面都会产生一个很短暂的抖动,这个抖动时间一般都会持续5-10ms,虽然这个抖动时间很短,但对于FPGA工作在50M的高频率上的器件来说,还是可以捕捉的到的。为了使CPU对于一次按键操作只处理一次,在软件中必须加入消除抖动处理。本模块是由四个上升沿触发型D触发器和一个四输入的与门构成的。四个D触发器用同步时序方式连接,即:将它们的时钟输入端都连在一起。在工作时四个D触发器与clk时钟信号同步,输入信号以移位串行方式向前传递。(2)键盘扫描模块阵列式键盘又叫做行列式键盘,用带有I/O口的线组成行列结构,按键设置在行列的交点上。此模块所用键盘是表1所示的4×4阵列键盘。按键设置在行列交叉点,行列线分别接到按键开关的两端,每个键的按下与否由这个键的行电平和列电平共同决定,当按下时为低电平“0”,没有按下时为高电平“1”。表1、4×4阵列键盘123A456B789C*0#D本模块设计采用扫描的方法来实现对键盘上每个键的识别,即当进行行扫描时,扫描信号由行线进入键盘,以“1110”、“1101”、“1011”、“0111”的顺序每次扫描不同的一行。之后,读取列线的电平信号,判断是哪个键按下了,如果列线全为高电平,则代表该列没有按键按下,如果列线有输入低电平,则低电平信号所在的行和出现低电平的列的交点处有按键按下。假设行线为a,列线为b,长度都为4。将输入行扫描值a与列读取值b并置形成组合值作为按键的输入值,并对每一个键进行编码(如表2键盘参数所示),使其送入输出变量r(定义为4位),即可判断出按键按下的位置。表2、键盘参数行扫描a列读取b键盘按键按键编码11100111100001101011140001101101117001001110111*0011111010112010011011011501011011101180110011110110011111101101310001101110161001101111019101001111101#101111101110A110011011110B110110111110C111001111110D11113)译码显示模块该模块包括输出低电平与LED灯显示。因为实验箱的LED灯是低电平有效,所以需要把输出变量r进行逻辑“非”变换。该部分采用了4个非门,分别将输入的4位扫描模块输出变量取反。LED灯的亮灭表示输出变量r。r为高电平时灯亮,r为低电平时灯灭,这样就能更清晰地显示出实验结果,使人一目了然。5、功能模块介绍5.1键盘消抖模块图5-1消抖动模块图4为消抖模块的逻辑符号,其中D(3:0)输入按键按下时带抖动的信号,经过消抖之后,Q(3:0)输出消除抖动之后的信号,使得CPU可以只对一次按键处理一次信号。5.2键盘模块图5-2键盘模块图5-2为扫描模块的逻辑符号,其中a[3:0]是4位的行扫描信号,b[3:0]是4位的列读取信号,r[3:0]是4位的按键编码输出。5.3VHDL部分程序libraryieee;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;useieee.std_logic_1164.all;entityk44isport(clk:instd_logic;--1khz以下b,a:instd_logic_vector(3downto0);r:outstd_logic_vector(3downto0));end;architectureoneofk44is--signalc:std_logic_vector(1downto0);signalba:std_logic_vector(7downto0);--signale:std_logic_vector(3downto0);beginba<=b&a;--ba<=e&a;b<=e;process(a,clk)begin--ifrising_edge(clk)thenc<=c+1;--casecis--when"00"=>e<="0111";when"01"=>e<="1011";--when"10"=>e<="1101";when"11"=>e<="1110";--whenothers=>null;--endcase;casebaiswhen"01111110"=>r<="0000";when"01111101"=>r<="0001";when"01111011"=>r<="0010";when"01110111"=>r<="0011";when"10111110"=>r<="0100";when"10111101"=>r<="0101";when"10111011"=>r<="0110";when"10110111"=>r<="0111";when"11011110"=>r<="1000";when"11011101"=>r<="1001";when"11011011"=>r<="1010";when"11010111"=>r<="1011";when"11101110"=>r<="1100";when"11101101"=>r<="1101";when"11101011"=>r<="1110";when"11100111"=>r<="1111";whenothers=>null;endcase;--endif;endprocess;end;6、实验结果6.1综合电路图图6-1(a)电路原理图图6-1(b)RTL电路6.2时序仿真对源程序进行操作,生成tbw文件后,继续对.tbw

温馨提示

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

最新文档

评论

0/150

提交评论