77范文网 - 专业文章范例文档资料分享平台

14电气EDA实验指导书(1)(3)

来源:网络收集 时间:2019-06-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

其为一个数值,则八位数码管按一定的速率开始显示“0-F”,当数码管显示A-F时LED灯LED1开始被点亮,显示其它数值时熄灭。按S1键显示的数值又从0开始,拨动八位拨动开关,置于其它数据,数码管的显示速率会发生改变。

六、 实验报告

1、 出仿真波形,并作说明。

2、 自己设计文件,然后通过设计文件到模块符号文件的转换,设计自己的电路并

在实验系统中验证。进一步掌握这种方法。

3、 写出在软件中通过其它方法从设计文件到模块符号文件的转换过程。

10

实验四 矩阵键盘接口电路的设计

一、 实验目的

1、了解普通4×4键盘扫描的原理。 2、进一步加深七段码管显示过程的理解。 3、了解对输入/输出端口的定义方法。

一、 实验原理

实现键盘有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描。作为一个嵌入系统设计人员,总是会关心产品成本。目前有很多芯片可以用来实现键盘扫描,但是键盘扫描的软件实现方法有助于缩减一个系统的重复开发成本,且只需要很少的CPU 开销。嵌入式控制器的功能能强,可能充分利用这一资源,这里就介绍一下软键盘的实现方案。

图4-1 简单键盘电路

通常在一个键盘中使用了一个瞬时接触开关,并且用如图4-1 所示的简单电路,微处理器可以容易地检测到闭合。当开关打开时,通过处理器的I/O 口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的/IO 口的输入将被拉低得到逻辑0。可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1 或者0。尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。当触点闭合时,其弹起就像一个球。弹起效果将产生如图4-2 所示的好几个脉冲。弹起的持续时间通常将 维持在5ms~30ms 之间。

11

如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。

图4-2 按键抖动

键盘上阵列这些开关最有效的方法(当需要5 个以上的键时)就形成了一个如图4-3 所示的二维矩阵。当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O 端被连接的时候)。一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。

图4-3 矩阵键盘

键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按

12

下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。

获取到行值和列值以后,组合成一个8位的数据,根据实现不同的编码在对每个按键进行匹配,找到键值后在7段码管显示。

二、 实验内容

本实验要求完成的任务是通过编程实现对4X4矩阵键盘按下键的键值的读取,并在数码管上完成一定功能(如移动等)的显示。

三、 实验步骤

1、打开QUARTUSII软件,新建一个工程。

2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。 3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中提供的示例程序。

参考程序:

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;

------------------------------------------------------------------ entity exp12 is

port( Clk : in std_logic; --时钟信号

Kr : in std_logic_vector(3 downto 0); --键盘行

Kc : buffer std_logic_vector(3 downto 0); --键盘列

a,b,c,d,e,f,g : out std_logic; --七段码管显示 Sa,sb,sc : buffer std_logic); --七段码管片选 end exp12;

------------------------------------------------------------------ architecture behave of exp12 is

signal keyr,keyc : std_logic_vector(3 downto 0); signal kcount : std_logic_vector(2 downto 0); signal dcount : std_logic_vector(2 downto 0);

13

signal kflag1,kflag2 : std_logic;

signal buff1,buff2,buff3,buff4,buff5,buff6,buff7,buff8 : integer range 0 to 15;

signal Disp_Temp : integer range 0 to 15;

signal Disp_Decode : std_logic_vector(6 downto 0);

begin

process(Clk) --扫描键盘 begin

if(Clk'event and Clk='1') then if(Kr=\ kflag1<='0';

kcount<=kcount+1; if(kcount=0) then kc<=\

elsif(kcount=1) then kc<=\

elsif(kcount=2) then kc<=\ else

kc<=\ end if; else

kflag1<='1'; keyr<=Kr; keyc<=Kc; end if;

kflag2<=kflag1; end if; end process;

process(Clk) --显示右移 begin

if(Clk'event and Clk='1') then

if(kflag1='1' and kflag2='0' ) then buff1<=buff2; buff2<=buff3; buff3<=buff4; buff4<=buff5; buff5<=buff6; buff6<=buff7;

14

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库14电气EDA实验指导书(1)(3)在线全文阅读。

14电气EDA实验指导书(1)(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/662402.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: