欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    FPGA矩阵键盘课程设计.docx

    • 资源ID:11518085       资源大小:199.04KB        全文页数:23页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    FPGA矩阵键盘课程设计.docx

    1、FPGA矩阵键盘课程设计FPGA课程设计报告项目名称 基于FPGA勺4*4矩阵键盘的设计专业班级 通信1学生姓名 张指导教师2016 年 7 月 10 日摘要本课程设计提出了基于FPGA勺4*4矩阵键盘的设计,主要是在软件QuartuS II 9.0 这个环境中,以硬件描述语言 Verilog进行编写程序,从而完成矩阵键盘的相关设计。 主要由矩阵式键盘电路、显示电路等组成,实现过程是通过行扫描输入随机信号, 列扫描判断哪一个键被按下,并最后由数码管显示该按键。此次课程设计完成了 4*4矩阵键 盘控制LED数码管显示系统的设计,该设计具有灵活性强,易于操作,可靠性高,广 泛应用于各种场合的特点,

    2、是进行按键操作管理的有效方法,它可以提高系统准确性, 有利于资源的节约,降低对操作者本身的要求,并能正确、实时、高效地显示按键信息, 以提高工作效率和资源换利用率的意义。关键词:数码管;矩阵键盘;按键;显示电路AbStraCtThiS COurSe is designed based On FPGA is proposed 4 * 4 matrix keyboard design, mainly in the QUartUS II SOftWare 9.0 this enVirOnment, With the Verilog hardware description Ianguage prog

    3、ram, so as to complete the related design of matrix keyboard. Main matrix keyboard circuit, display CirCUit and so on, complete the 4 * 4 matrix keyboard control LED digital tube display SyStem design, the design has StrOng flexibility, easy OPeration, high reliability, WideIy USed in VariOUS OCCaSi

    4、 ons. Into 4 * 4 matrix keyboard con trol LED digital tube display SyStem design, design flexibility is strong, easy to operate, high reliability, WideIy USed in VariOUS OCCaSi ons. MatriX keyboard con trol system, Can improve efficie ncy, and is an effective method to man age the keystrokes, it Can

    5、 improve the SyStem accuracy, and is conducive to resource SaVing and reduce the requirement of the OPeratOr itself, and correctly, real-time and efficient to show the key information, in order to improve the work efficiency and the UtiIiZation ratio of resources in meaning.KeyWOrdS DigitaI tube; Ma

    6、triX keyboard; The key; DiSPIy CirCUit摘要 AbStraCt II第1章绪论 11.1课题背景 11.2国内外发展现状 11.3本文主要研究内容 1第2章 软件及语言简介 22.1QUartUS 软件简介 32.2VerilOg 语言简介 42.2.1Verilog 语言的主要功能 42.2.2Verilog 语言设计数字系统的特点 4第3章4*4矩阵键盘的原理 63.14*4 矩阵式键盘 63.2总体结构 63.2.1LED 数码管 83.2.2键盘结构 93.3键盘扫描 93.4矩阵键盘接口电路的原理 9第4章程序调试 114.1流程图 114.2程序

    7、结果讨论 11第5章 波形仿真及讨论 135.1波形结果 1 35.2结果讨论 14结论 15参考文献 1 6附录程序 17致谢 19第1章绪论1.1课题背景在现代的个人计算机系统中,一般都采用通用的标准键盘如标准键盘(如:标准 101/102键盘或MiCrOSOft自然PS/2键盘)来实现人与计算机之间的接口交互,从而将需 要的各种数据和指令等信息都通过键盘来输人计算机。但是,各种嵌人式系统(如:手机、微波炉、电风扇等)所需的键盘的按键个数非 常有限,通常为几个到十几个不等(而标准键盘通常为:一百多个按键并且每个按键所 代表的功能含义也各不相同。所以,每一种嵌入式系统都应对键盘(包括键盘扫描

    8、模块 和相关控制信号等)进行专门设计,以便结合工程实际情况充分利用该系统已有的各种 资源,使所设计的键盘很好地融合到嵌人式系统中。在现代个人计算机系统中,一般都采用通用的标准键盘(如:标准101/102键盘 或MiCrOSOft自然PS/2键盘)来实现人与计算机之间的接口交互,所需要的各种数据 和指令等信息都通过键盘来输入计算机。但是,在各种嵌入式系统(如手机、微波炉、电风扇等)中,所需要的键盘按键个 数非常有限,通常为几个到十几个不等(而标准键盘通常为一百多个按键),并且每 个按键所代表的功能含义也各不相同。所以,针对每一种嵌入式系统都应对键盘(包括 键盘扫描模块和相关控制信号等)进行专门设

    9、计,结合工程实际情况充分利用该系统 已有的各种资源,使所设计的键盘恰如其分地融合到嵌入式系统中 ,成为其不可分割的一部分2。在数字电路中,可以利用编码器实现按键键值的直接编码。 将每个按键的输出信号 对应连接到编码器的每个输入端,通过编码逻辑就可以在编码器的输出端得到对应每 个按键的码值,早期称这种键盘为编码键盘。但是,当按键较多时数码逻辑的成本较高, 直接编码的方法也不够灵活,一旦编码逻辑固定就难以更改。在通用键盘上或当按键数量较多时,普遍采用扫描方式产生键值。将按键连接成矩 阵,每个按键位于某行、某列的交点上,如图1所示,先通过扫描方式确定按下键的行 和列位,即位置码或扫描码。再查表将位置

    10、码转换为按键码值或者直接使用扫描码 ,有些参考书称此为“非编码键盘”。但这种名称容易让人误解为没有对应的键值,因此又 称为扫描式键盘。1.2国内外发展现状近年来EDA术在电子领域引发的技术革命,推动着电子技术的迅猛发展,为世人 所瞩目,而FPGAfe代表的可编程逻辑器件的应用, 更是受到业内人士的普遍关注。 伴随 着大规模集成电路和计算机技术的高速发展, 在设计工业自动化,仪器仪表,计算机设 计与应用、通信、国防等领域的电子系统中,FPG技术的含量正以惊人的速度提升。将 尽可能大的完整的电子系统在单一 FPG芯片中实现已成为现实,电子类新技术项目的开 发也更多地依赖于FPG技术的应用。作为FP

    11、GAff究课题之一的矩阵键盘控制接口电路的设计, 在FPG设计中是一个经常 被提到的话题,就像是利用PFG设计数字中一样,虽然简单,但是却是一个很有研究意 义的话题,涉及到怎么样才能是FPG资源更加充分利用,现在很多电子产品都涉及到按 键,小的有独立按键,大的有N*N勺矩阵键盘,独立按键由于案件的个数少,也就没必 要考虑资源的利用问题了。而矩阵键盘,由于按键多,对整个系统的影响大,所以肯定 要考虑资源的利用问题,而且还要考虑一下电路里面的时序问题。1.3本文主要研究内容本次设计要求设计一个 4*4矩阵键盘,也就是行为4,列为4, 一共可以设计16 个按键。其中设计方法为:一般判断键盘中有没有按

    12、键按下是通过航线送入扫描信号, 然后从列线中读取状态得到的,其方法是依次给行线送入低电平,检查列线的输入。如 果列线信号趣味高电平,则代表低电平信号所在的行中无按键按下,反之,则有,则在 低电平信号所在的行和出现低电平的交叉处有按键按下。第2章软件及语言简介2.1QUartUS II软件简介QUartUSII 是 AItera 公司的综合性 PLD/FPGA开发软件,支持原理图、 VHDL VerilOgHDL 以及 AHDlLAItera HardWare DeSCriPtiOn Language)等多种设计输入 形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整 PLD设

    13、计 流程。QUartUSII可以在XP、LinUX以及UniX上使用,除了可以使用Tcl脚本完成设计流 程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中, 易学易用等特点。QUartUSII支持AItera 的IP核,包含了 LPM/MegaFunction宏功能模块库,使用 户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度 5。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方 EDAX具。此外,QUartUS II 通过和DSP BUiIder工具与 MatIab/Simulink 相结合,可以方 便地实现各种DSP应用系统;

    14、支持AItera的片上可编程系统(SOPC开发,集系统级 设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。MaXPlUS II 作为AItera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用 。目 前AItera已经停止了对MaXPIUS II的更新支持,QUartUSII与之相比不仅仅是支持器 件类型的丰富和图形界面的改变。AItera在QUartUSII中包含了许多诸如SignalTap II、ChiP EditOr 和RTL VieWer的设计辅助工具,集成了 SOP(Jn HardCOPy设计流程, 并且继承了 MaXPlUS II友好的图形界面及简便

    15、的使用方法。QUartUS II 提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计 的全部特性,包括:可利用原理图、结构框图、 VeriIOgHDL、AHDLffi VHDL完成电路描 述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑; LOgiCLOCk增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续 模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时 /时 序分析与关键路径延时分析;可使用 Sig nalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件; 使用

    16、组合编译方 式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入 标准的EDIF网表文件、VHDL网表文件和VerilOg网表文件;能生成第三方EDA软件使 用的VHDL网表文件和VerilOg网表文件。2.2VerilOg 语言简介1983 年,GateWay DeSign AutOmatiOn (GDA 硬件描述语言公司的 PhiIiP MOOrby 首创了 VeriIOg HDL。后来MOOrby成为VeriIOg HDL-XL的主要设计者和 Cadence公司 的第一合伙人。1984至1986年,MOOrby设计出第一个关于 Verilog HDL的仿真器,并提

    17、出了用于快速门级仿真的 XL算法,使Verilog HDL语言得到迅速发展。1987年 SynOnSyS公司开始使用 VerilOg HDL 行为语言作为综合工具的输入。1989年Cadence 公司收购了 GateWay公司,VerilOg HDL 成为Cadence公司的私有财产。1990年初, Cadence公司把 VeriIOg HDL和 Verilog HDL-XL分开,并公开发布了 VerilOg HDL 随 后成立的 OVI (OPen Verilog HDL International )组织负责 Verilog HDL的发展并制定有关标准,OVl由Verilog HDL的使用

    18、者和CAE供应商组成。1993年,几乎所有 ASIC厂商都开始支持Verilog HDL并且认为Verilog HDL-XL是最好的仿真器。同时,OVI 推出 2.0 版本的 Verilong HDL规范,IEEE则将 OVl 的 VeriIOg HDL2.0作为 IEEE 标准的提案9。1995年12月,IEEE制定了 Verilog HDL的标准IEEE1364-1995。目前, 最新的Verilog语言版本是2000年IEEE公布的Verilog 2001标准,其大幅度地提高 了系统级和可综合性能HDL既是一种行为描述语言,也是一种结构描述语言。如果按照 一定的规则和风格编写代码,就可以

    19、将功能行为模块通过工具自动转化为门级互连的结 构模块。这意味着利用Verilog语言所提供的功能,就可以构造一个模块间的清晰结构 来描述复杂的大型设计,并对所需的逻辑电路进行严格的设计 10。2.2.1Verilog 语言的主要功能可描述顺序执行或并行执行的程序结构;用延迟表示式或事件表达式来明确地控制 过程的启动时间;通过命名的事件来触发其他过程里的激活行为或停止行为; 提供了条件和循环等程序结构;提供了可带参数且非零延续时间的任务程序结构;提供了可定义 新的操作符的函数结构;提供了用于建立表达式的算术运算符、逻辑运算符和位运算符; 提供了一套完整的表示组合逻辑基本元件的原语;提供了双向通路

    20、和电阻器件的描述; 可建立MOS件的电荷分享和衰减模型;可以通过构造性语句精确地建立信号模型 11。2.2.2Verilog 语言设计数字系统的特点主要采用自上而下的设计方法。即从系统总体要求出发,自上而下地逐步将设计的 内容细化,最后完成系统硬件的整体设计。在设计的过程中,对系统自上而下分成三个 层次进行设计:第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数学模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段, 通过对系统行为描述的仿真来发现设计中存在的问题。 在行为描述阶段,并不真正考虑其实际的操作和算法用何种方法来实现,而是考虑系统的结构及其工作的过程是否

    21、能到达系统设计的要 求。第二层次是RTL方式描述。这一层次称为寄存器传输描述(又称数据流描述)。如 前所述,用行为方式描述的系统结构的程序, 其抽象程度高,是很难直接映射到具体逻 辑元件结构的。要想得到硬件的具体实现,必须将行为方式描述的 VHDL语言程序改写 为RTL方式描述的VHDL语言程序。也就是说,系统采用 RTL方式描述,才能导出系统 的逻辑表达式,才能进行逻辑综合。第三层次是逻辑综合。即利用逻辑综合工具,将RTL方式描述的程序转换成用基本 逻辑元件表示的文件(门级网络表)。此时,如果需要,可将逻辑综合的结果以逻辑原 理图的方式输出。此后可对综合的结果在门电路级上进行仿真, 并检查其

    22、时序关系。应用逻辑综合工具产生的门级网络表, 将其转换成PLD的编程码点,即可利用PLD实现硬 件电路的设计12。由自上而下的设计过程可知,从总体行为设计开始到最终的逻辑综合, 每一步都要 进行仿真检查,这样有利于尽早发现设计中存在的问题, 从而可以大大缩短系统的设计 周期。第3章4*4矩阵键盘的原理3.1 4*4矩阵式键盘矩阵式键盘(或者叫行列式键盘)常应用在按键数量比较多的系统之中。这种键盘 由行线和列线组成,按键设置在行、列结构的交叉点上,行、列线分别接在按键开关的 两端。行列式键盘可分为非编码键盘和编码键盘两大类。 编码键盘内部设有键盘编码器, 被按下键的键号由键盘编码器直接给出, 同

    23、时具有防抖和解决重键的功能。 非编码键盘 通常采用软件的方法,逐行逐列检查键盘状态,当有键按下时,通过计算或查表的方法 获取该键的键值,通常,计算机通过程序控制对键盘扫描,从而获取键值,根据计算机 扫描的方法可以分为定是扫描法和中断扫描法两种,原理结构如图 3-1所示。图3-1 4*4矩阵键盘原理结构框图3.2总体结构由行列式键盘原理就可以知道,要正确的完成键盘输入工作必须有按键扫描电路产 生Clk信号。同时还必须有按键译码电路从 kbrow信号和kbcoI信号中译码出按键的值。 此外,一般还需要一个按键发生信号用于和其他模块接口, 通知其他模块键盘上有按键动作发生,并可以从键盘上读取按键的键

    24、值。由于各个模块需要的时钟频率是不一样的, 因此时钟产生模块就是用于产生各个模块需要的时钟信号。 在本次课程设计中,最为重要的两部分就是数码管显示电路以及键盘结构, 这两部分的组成,形成了 4*4矩阵键盘, 通过键盘输入,数码管进行显示。321 LED数码管Ied数码管(LED Segment Displays)由多个发光二极管圭寸装在一起组成“8字型的 器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。 数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp 来表示。3fb吕CCdCCVJ图3-2 7段LED显示器件外形图

    25、在本系统中,4*4键盘共有16个键,对其编号09, AF ,所以用一个7段数码管 静态显示即可满足即时显示按键信息的要求。 所谓静态显示,就是当显示器件某个字符时,相应的显示段(发光二极管)恒定地导通或截止,直到显示方式显示一个字符时, 只需要微处理器送一次代码,因此占用机时少,而且显示稳定可靠,其缺点是,使用元 器件相对较多,且线路比较复杂,相对而言成本较高,比较适合显示位数较少的情况。 器件结构如图3-3所示。图3-3 7段LED显示器件结构图322键盘结构本系统中的4*4矩阵式键盘结构简单,按键数较少,采用非编码式键盘,当有键盘 按下时,由单片机通过程序扫描确定键值, 设计一个4*4矩阵

    26、键盘,也就是行为4,列 为4, 一共可以设计16个按键。并将获得的键值通过LED数码管显示出来,4*4矩阵式 键盘结构及键值分布如图3-4所示。IZI图3-4键盘键值分布3.3键盘扫描本设计一共有三个模块,分别为:扫描电路模块、时钟产生模块、键盘译码电路和 按键标志位产生电路。扫描模块中是为了产生扫描信号,来利用扫描信号来扫描键盘中 中是否有按键按下。键盘译码电路和按键标志位产生电路是为了配合扫描模块来扫描电 路中是否有按键按下,而且还要求它来产生按键标志信号,以便和外部电路握手。时钟 产生电路是为了产生不同频率的信号,来驱动上面两个电路的运转。行扫描法又称为逐 行(或列)扫描查询法,是一种最

    27、常用的按键识别方法,如上图所示键盘,介绍过程如 下:1、判断键盘中有无键按下 将全部行线丫0-丫3置低电平,然后检测列线的状态。只 要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与 4根行 线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。 2、判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次 将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位 置为低电平后,再逐行检测各列线的电平状态。 若某列为低,则该列线与置为低电平的 行线交叉处的按键就是闭合的按键。4个模块来实现键盘扫描功能,分别为即时扫描

    28、模 块、扫描控制模块、扫描脉冲模块和键值传送模块。3.4矩阵键盘接口电路的原理在键盘中按键数量较多时,为了减少I/O 口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通, 而是通过一个按键加以连接。这样,一个端口就可以构成 4*4=16个按键,比之直接将端口线用于键盘多出了一 倍,而且线数越多,区别越明显,比如再多加一条线就可以构成 20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来 做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些, 识别也要复杂一些,列线通过电阻接正电源,并将行线所接的 FPGA勺I/

    29、O 口作为输出端,而列线所接的I/O 口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状 态就可得知是否有键按下了。第4章程序仿真4.1流程图本次设计的4*4矩阵键盘,作为输入的有elk, start,kbcol, 分别是时钟信号,开始,行输入,作为输出的有kbrow,scan,seg7_out分别是列扫描,数码管位数以及输出 结果即哪个键被按下,在程序仿真是我们给输入一个随机信号,若输入是 1, 2, 3, 4行,那么会有相应输出产生,否则数码管会显示零,具体流程图如 4-1所示。输入随机信

    30、号,列扫描是识别哪一个键被按下图4-1流程图4.2程序结果讨论只使用一个数码管显示,通过随机信号的不断变化,会有不同的输出产生,周而复 始地扫描。其停留在某个状态的时间大约为 10ms。更短的停留时间是没有必要的,因 为人按键的时间大约为10ms不可能有更快的按键动作发生。另外,更短的停留时间还容易采集到抖动信号, 会干扰判断。而太长的停留时间则4-1 0会使某些较快的按键东走丢失。完成程序见附录,部分主要程序如图345789101112131415Ie1718132021H mdul已 jianpan (ICbrQWf seg7_out f 3canf CIkf start f bc-Dl)

    31、: output3:0kbrow;outPUt6:0seg7_QUt;outPUt7:0scan;input Clkf start;input3:0kbcol;reg 3:0 kb row;工皂g6:0seg7_out;reg7:0scan;reg1:0count;regl:0sta;reg-6 : OI seg7;reg4:0dat;reg fn;initial SCall=* i bl0000000;always(POSedg皂 CIk beginif (Start=0begin seg7=ib00000;endelseH beginCQUnt AnBIysis- & y F昌FitterAMKTiWfKLt i TlmingJ


    注意事项

    本文(FPGA矩阵键盘课程设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开