欢迎来到天天文库
浏览记录
ID:29472407
大小:444.54 KB
页数:38页
时间:2018-12-20
《基于vhdl键盘扫描及显示电路设计说明书》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、广西工学院课程设计说明书——装订线——设计题目系别专业班级学生姓名学号指导教师日期39基于VHDL的键盘扫描及显示电路摘要运VHDL硬件描述语言和图形设计综合方法,实现了4×4键盘扫描电路的程序设计,通过运用QuartusⅡ软件平台生成电路符号,建立波形文件,设置输入端口,实现模拟仿真,得到仿真波形图。关键字:VHDLQuartusⅡ数码管1题目分析本次课程设计题目为4×4键盘扫描电路的设计。要求通过查阅相关书籍资料,熟悉和初步掌握VHDL语言的语法及其功能,根据要求首先进行理论上的分析,深入分析4×4键盘扫描电路的原
2、理,然后根据分析结果设计程序,进行上机的调试,通过Quartus4.1以上软件进行仿真,并记录仿真的结果。——装订线——2矩阵键盘及显示电路设计思路 矩阵键盘及显示电路能够将机械式4×4矩阵键盘的按键值依次显示到8个7段数码管上,每次新的按键值显示在最右端的第O号数码管上,原有第0~6号数码管显示的数值整体左移到第1~7号数码管上显示,见图1。总体而言,矩阵键盘及显示电路的设计可分为4个部分: (1)矩阵键盘的行及列的扫描控制和译码。该设计所使用的键盘是通过将列扫描信号作为输入信号,控制行扫描信号输出,然后根据行及
3、列的扫描结果进行译码。 (2)机械式按键的防抖设计。由于机械式按键在按下和弹起的过程中均有5~10ms的信号抖动时间,在信号抖动时间内无法有效判断按键值,因此按键的防抖设计是非常关键的,也是该设计的一个重点。 (3)按键数值的移位寄存。由于该设计需要在8个数码管上依次显示前后共8次按键的数值,因此对已有数据的存储和调用也是该设计的重点所在。 (4)数码管的扫描和译码显示。由于该设计使用了8个数码管,因此需要对每个数码管进行扫描控制,并根据按键值对每个数码管进行7段数码管的译码显示。 2矩阵键盘及显示电路的实现
4、 本文所设计的矩阵键盘及显示电路的电路符号如图2所示。其中,clk为时钟信号输入端(频率可为1024~32768Hz);start为清零控制端;kbrow为列扫描信号输入端;kbeol为行扫描信号输出端;scan为数码管地址扫描信号输出端;seg7为数码管显示信号输出端。393.矩阵键盘及显示电路的电路符号4×4键盘扫描电路的电路符号如图2所示。其中clk1为时钟信号输入——装订线——端,start1为开始信号输入端,kbcol1[3..0]为行扫描信号输出端,kbrow1[3..0]为列扫描信号输入端,seg71[7
5、..0]为八段显示控制信号输出端,scan1[2..0]为数码管地址选择控制信号输出端。4.程序设计4×4键盘扫描电路用VHDL语言描述,全部代码由五个模块组成,其代码分别如下:键盘扫描模块程序、原理图及仿真波形:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitysaomiaoisport(en:outstd_logic;state:outstd_logic_vector(1downto0);clk:instd_log
6、ic;39kbrow:instd_logic_vector(3downto0);kbcol:outstd_logic_vector(3downto0));Endsaomiao;architectureoneofsaomiaoissignalcount:std_logic_vector(1downto0);beginprocess(clk,kbrow)beginen<=not(kbrow(0)orkbrow(1)orkbrow(2)orkbrow(3));if(clk'eventandclk='1')thenifnot(
7、kbrow(0)orkbrow(1)orkbrow(2)orkbrow(3))='1'thencount<=count+1;endif;endif;endprocess;process(clk)beginifclk'eventandclk='1'thencasecountiswhen"00"=>kbcol<="0001";state<="00";when"01"=>kbcol<="0010";state<="01";when"10"=>kbcol<="0100";state<="10";when"11"=>kbcol<
8、="1000";state<="11";whenothers=>kbcol<="1111";endcase;endif;endprocess;End;39按键数值输出模块:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityshuj
此文档下载收益归作者所有