




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广西工学院 课程设计说 明 书 装 订 线 设计题目 系 别 专业班级 学生姓名 学 号 指导教师 日 期 基于VHDL的键盘扫描及显示电路摘要运VHDL硬件描述语言和图形设计综合方法,实现了44键盘扫描电路的程序设计,通过运用Quartus软件平台生成电路符号,建立波形文件,设置输入端口,实现模拟仿真,得到仿真波形图。关键字: VHDL Quartus 数码管1题目分析本次课程设计题目为44键盘扫描电路的设计。要求通过查阅相关书籍资料,熟悉和初步掌握VHDL语言的语法及其功能,根据要求首先进行理论上的分析,深入分析44键盘扫描电路的原理,然后根据分析结果设计程序,进行上机的调试,通过Quartus4.1以上软件进行仿真,并记录仿真的结果。 装 订 线 2 矩阵键盘及显示电路设计思路矩阵键盘及显示电路能够将机械式44矩阵键盘的按键值依次显示到8个7段数码管上,每次新的按键值显示在最右端的第O号数码管上,原有第06号数码管显示的数值整体左移到第17号数码管上显示,见图1。总体而言,矩阵键盘及显示电路的设计可分为4个部分:(1)矩阵键盘的行及列的扫描控制和译码。该设计所使用的键盘是通过将列扫描信号作为输入信号,控制行扫描信号输出,然后根据行及列的扫描结果进行译码。(2)机械式按键的防抖设计。由于机械式按键在按下和弹起的过程中均有510 ms的信号抖动时间,在信号抖动时间内无法有效判断按键值,因此按键的防抖设计是非常关键的,也是该设计的一个重点。(3)按键数值的移位寄存。由于该设计需要在8个数码管上依次显示前后共8次按键的数值,因此对已有数据的存储和调用也是该设计的重点所在。(4)数码管的扫描和译码显示。由于该设计使用了8个数码管,因此需要对每个数码管进行扫描控制,并根据按键值对每个数码管进行7段数码管的译码显示。2 矩阵键盘及显示电路的实现本文所设计的矩阵键盘及显示电路的电路符号如图2所示。其中,clk为时钟信号输入端(频率可为1 02432 768Hz);start为清零控制端;kbrow为列扫描信号输入端;kbeol为行扫描信号输出端;scan为数码管地址扫描信号输出端;seg7为数码管显示信号输出端。3.矩阵键盘及显示电路的电路符号44键盘扫描电路的电路符号如图2所示。其中clk1为时钟信号输入 装 订 线 端,start1为开始信号输入端,kbcol13.0为行扫描信号输出端,kbrow 13.0为列扫描信号输入端,seg717.0为八段显示控制信号输出端,scan12.0为数码管地址选择控制信号输出端。4.程序设计44键盘扫描电路用VHDL语言描述,全部代码由五个模块组成,其代码分别如下:键盘扫描模块程序、原理图及仿真波形:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity saomiao is port( en: out std_logic; state: out std_logic_vector(1 downto 0); clk : in std_logic; kbrow : in std_logic_vector(3 downto 0); kbcol : out std_logic_vector(3 downto 0) );End saomiao ;architecture one of saomiao is signal count:std_logic_vector(1 downto 0);beginprocess (clk , kbrow)beginen = not ( kbrow(0) or kbrow(1) or kbrow(2) or kbrow(3) );if( clkevent and clk=1) thenif not ( kbrow(0) or kbrow(1) or kbrow(2) or kbrow(3) )=1 then count kbcol= 0001;state kbcol = 0010;state kbcol= 0100;state kbcol= 1000;state kbcol case brow is when 0001=atatat atnull; end case; when 01= case brow is when 0001=atatat atnull; end case; when 10= case brow is when 0001=atatat atnull; end case; when 11=Case brow isWhen 0001= at at at at null; end case; end case;end if ;end process;End;防抖模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dizfenp is port( n: in std_logic;da : in std_logic_vector(3 downto 0);data : out std_logic_vector(3 downto 0); start : in std_logic; clk : in std_logic; scan : out std_logic_vector(2 downto 0) );End dizfenp ;architecture one of dizfenp is signal temp:std_logic_vector(31 downto 0);Signal fnq : std_logic; Signal cnt8: std_logic_vector(2 downto 0);Signal key :std_logic_vector(7 downto 0);beginprocess(clk)variable reg8: std_logic_vector(7 downto 0);beginif(clkevent and clk=1) thenreg8:=reg8 (6 downto 0) & n;end if;key= reg8;end process;fnq=key(0) and key(1) and key(2) and key(3) and key(4) and key(5) and key(6) and key(7) ;process(fnq,start)beginif start=0 thentemp=00000000000000000000000000000000;elsif (fnqevent and fnq=1) thentemp=temp(27 downto 0)&da;end if;end process;process(clk,temp,cnt8)beginif clkevent and clk=1 then cnt8 scan =000;data scan =001;data scan =010;data scan =011;data scan =100;data scan =101;data scan =110;data scan =111;datanull;end case;end process;End;译码模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity yima is port( data : in std_logic_vector(3 downto 0); seg7 : out std_logic_vector(7 downto 0) );End yima;architecture one of yima is beginProcess(data)BeginCase data isWhen 0000 = seg7 seg7 seg7 seg7 seg7 seg7 seg7 seg7 seg7 seg7 seg7 seg7 seg7 seg7 seg7 seg7 clk1 , kbrow = kbrow1,kbcol= kbcol1,en= a,state= b);U2: shuju port map(clk =clk1, brow =kbrow1, at = c, tate =b );U3: dizfenp port map(n =a, da=c,data=d,start =start1, clk = clk1, scan = scan1);U4: yima port map(data=d, seg7= seg71);End architecture one ;5.仿真及结果用Quartus软件平台对设计进行模拟仿真,得到44键盘扫描电路功能仿真结果如图3所示,时序仿真结果如图4所示。观察波形可知,列扫描信号kbrow1在时钟控制下循环扫描,当有键按下时,行扫描信号kbcol1读入相应的列信号来判断按键,seg71输出按键对应的数据,直到下一个按键被按下时才更新数据。6.心得体会本次主要做的是EDA方面的一些简单应用,通过对44键盘扫描电路的设计,初步了解的EDA方面的一些知识,加深了对硬件描述语言VHDL的了解。在实际动手解决问题的过程中初步学习了VHDL语言的功能,同时真正体会到了其硬件描述语言的良好的可读性、可移植性和易理解等优点。而且在设计的过程中运用Quartus软件平台模拟仿真,学习了这一实用性很高的软件,初步了解的Quartus的用法,丰富了我的知识储备。虽然一开始对设计题目和要求满头雾水,对VHDL语言和Quartus软件平 装
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版英语课程教学实施计划
- 家庭手工艺品制作创业计划书范文
- 七年级下学期班主任活动策划计划
- 学生课外活动综合提升计划
- 2025至2030中国光学液位传感器行业应用态势与盈利前景研究报告
- 2025-2030高速文件扫描仪行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030陶瓷砖行业市场深度调研及前景趋势与投资战略研究报告
- 2025-2030釉面砖行业发展分析及投资价值研究咨询报告
- 2025-2030质量检验检测行业市场发展现状及发展前景与投资研究报告
- 2025-2030船用加热器行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2024年不动产登记代理人《地籍调查》考试题库大全(含真题、典型题)
- 河道治理及生态修复工程 施工方案与技术措施
- 【MOOC】《英语进阶读与写》(电子科技大学)章节作业期末中国大学慕课答案
- 2024年秋《MySQL数据库应用》形考 实验训练1 在MySQL中创建数据库和表答案
- 物业管理人员开会讲什么
- 景区观光车司机培训
- 生产制造工艺流程规范与作业指导书
- 英语国家概况Chapter12
- 食堂承包经营服务项目 投标方案(技术方案)
- 《成本管理》项目六 短期经营决策分析课后练习
- DBS34 2607-2016 食品安全地方标准 代用茶
评论
0/150
提交评论