EDA课设报告哈理工荣成.doc

上传人:叶*** 文档编号:35119771 上传时间:2022-08-20 格式:DOC 页数:7 大小:35KB
返回 下载 相关 举报
EDA课设报告哈理工荣成.doc_第1页
第1页 / 共7页
EDA课设报告哈理工荣成.doc_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《EDA课设报告哈理工荣成.doc》由会员分享,可在线阅读,更多相关《EDA课设报告哈理工荣成.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、哈 尔 滨 理 工 大 学 荣 成 学 院EDA课程设计题目:矩阵键盘控制电路设计 班级: 姓名: 学号: 目录一、设计任务1二、方案选择1三、实现方案与电路原理图2四、引脚分配表5五、关系表5六、总体设计6七、软件设计源程序及实验现象6八、总结11一、设计任务矩阵键盘实验1:向用户介绍矩阵键盘扫描实现的方法,;把相应的键值显示在数码管二、方案选择(1)矩阵键盘基础知识在许多数字系统中,经常采用按键系统的输入方式之一,为系统提供数据输入或者命令输入。当按键数目交多少时,把每一个按键连接到键盘矩阵中行和列的交叉点,如下图所示,一个4*4行列结构可构成有16个按键的矩阵。 开发板上设计了行列式矩阵

2、编码键盘,规模为4*4,可作为外部输入。采用矩阵编码可以减少对I/O口的占用。开发板上的矩阵编码键盘有4条行线,4条列线。行线和列线的交又处不直接连接,而是通过一个按键加以连接。这样就构成了4*4=16个按键输入,比直接将信号线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。 矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,如图列线通过电阻接正电源,并将行线所接的FPGA、CPLD的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有

3、按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可以得知是否有键按下了。(2)行扫描法的基础知识 行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法。第一种(列扫描):1、判断键盘中有无键按下:将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无按键按下。2、判断闭合键所在的位置:在确认有键按一下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行

4、线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交义处的按键就是闭合的按键。第二种:本设计中采用(行扫描)1、等待按键并识别按键位置:按一定的频率用低电平循环扫描行线Y0-Y3,同时检测列线的状态,一旦判断有一列为低则表示有键被按下,停止扫描并保持,当前行线的状态,再读取列线的状态从而得到当前按键的键码。2、等待按键弹起:检测到各列线都变成高电平后,重新开始扫描过程,等待下一次按键。三、实现方案与电路原理图图1-1 Cyclone (EP4CE15F17C8N)局部图图1-2 矩阵键盘引脚图图1-3 一位数码管电路图

5、图1-4 一位数码管引脚图(一)图1-4 一位数码管引脚图(二)图1-5 Cyclone (EP4CE15F17C8N)内部电路图四、引脚分配表图1-6 引脚分配表截图五、关系表表1-6 扫描信号和列线按键输入信号与按键之间的关系表六、总体设计系统结构的整体设计: 由行列式键盘原理就可以知道,要找正确的完成键盘输入工作必须有按键扫描电路产生keydrv3keydrv0信号。同时还必须有按键译码电路keydrv3keydrv0信号和keyin3keyin0信号中译码出按键的值。此外,一般还需要一个按键发生信号用于和其他模块接口,通知其他模块按键上有按键动作发生,并可以从按键上读取按键的键值。由于

6、各个模块需要的时钟频率是不一样的,因此时钟产生模块就是用于产生各个模块需要的时钟信号。因此得到接盘接口电路的结构如上图所示。七、软件设计源程序及实验现象library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY KEYSCAN IS PORT ( clk : IN std_logic; rst : IN std_logic; row : OUT std_logic_vector(3 DOWNTO 0); - 行线 column : IN

7、 std_logic_vector(3 DOWNTO 0); - 列线 dataout : OUT std_logic_vector(7 DOWNTO 0); - 数码管显示数据 END KEYSCAN; ARCHITECTURE arch OF KEYSCAN ISSIGNAL div_cnt : std_logic_vector(24 downto 0); -分频计数器SIGNAL scan_key : std_logic_vector(3 DOWNTO 0); -扫描码寄存器(行值row) SIGNAL key_code : std_logic_vector(3 DOWNTO 0); -

8、保存行扫描码 SIGNAL dataout_tmp : std_logic_vector(7 DOWNTO 0); -dataout的寄存器 BEGIN row = scan_key; dataout = dataout_tmp; PROCESS(clk,rst) BEGIN IF (NOT rst = 1) THEN div_cnt = 000; ELSIF(clkEVENT AND clk = 1)THEN div_cnt scan_key scan_key scan_key scan_key=0111; -判断第四列是否有键按下 END CASE; END PROCESS; PROCES

9、S(clk,rst) -此进程用于读取哪个按键被按下, BEGIN -先检测列数,再检测行数,两者交接即为按键序号,即逐行扫描 IF (NOT rst = 1) THEN key_code -当扫描结果为第一列时 CASE column IS WHEN 1110 = -如果行为第一行,相交键被按下 key_code key_code key_code key_code NULL; END CASE; WHEN 1101 = -当扫描结果为第二列时 CASE column IS WHEN 1110 = key_code key_code key_code key_code NULL; END C

10、ASE; WHEN 1011 = -当扫描结果为第三列时 CASE column IS WHEN 1110 = key_code key_code key_code key_code NULL; END CASE; WHEN 0111 = -当扫描结果为第四列时 CASE column IS WHEN 1110 = key_code key_code key_code key_code NULL; END CASE; WHEN OTHERS = key_code dataout_tmp dataout_tmp dataout_tmp dataout_tmp dataout_tmp dataou

11、t_tmp dataout_tmp dataout_tmp dataout_tmp dataout_tmp dataout_tmp dataout_tmp dataout_tmp dataout_tmp dataout_tmp dataout_tmp NULL; END CASE; END PROCESS;END arch;实验现象:数码管显示按下的按键位置八、总结本次课程设计,主要是利用quartus软件构造一个4*4键盘扫描的显示电路。程序编程中使用的是逐行扫描,先判断行数,再判断列数,然后构造出按键序号。再由按键序号值进行数码管的设定。其中,进行数码管设定时,最初我们的数码管显示是按照“

12、abcdefgdp”顺序来的,进行引脚设定时,通过查图发现,在主板中,先由引脚ST_BA对应到“U_SEGMENT_St(b4h36a)_st SEGMENT_St(b4h36a)_st.SchDoc”模块中DBB0,对应到引脚编辑中的N5.此时,DBB0实质上,在7 DOWNTO 0时是末尾,与之前的略有不同,是在辗转了几次之后才弄明白的。可见,程序中,很多小地方也是比较关键的,懂了就是明白,没弄明白就是不懂,这需要慢慢领会。并且各有各的想法、特点,这也正是程序多彩的一面。本次课设中,通过对主板、核心板图的查找、对比,引脚的设定,程序的解读,对EDA的了解认识有了很大的提升。相信今后在使用过程中边查边学边用,会有更大的突破。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁