FPGA综合设计实例课件.ppt

FPGA综合设计实例课件.ppt

ID:57401145

大小:5.12 MB

页数:130页

时间:2020-08-18

FPGA综合设计实例课件.ppt_第1页
FPGA综合设计实例课件.ppt_第2页
FPGA综合设计实例课件.ppt_第3页
FPGA综合设计实例课件.ppt_第4页
FPGA综合设计实例课件.ppt_第5页
资源描述:

《FPGA综合设计实例课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十章综合设计实例1键盘扫描与显示矩阵式键盘:行,列矩阵是键盘以行列形式排列,键盘上每个按键其实是一个开关电路,当某键被按下时,该按键对应的位置就呈现逻辑0状态.行扫描方式:逐行送0电平,读取列的状态,以判断按下的键号.列扫描方式:逐列送0电平,读取行的状态,以判断按下的键号.以行扫描为例:1给行依次送0111,1011,1101,1110信号;2读取列电平状态,数码管显示libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;

2、entitykey_scanisport(column:instd_logic_vector(3downto0);--列状态scan_cnt:instd_logic_vector(3downto0);---扫描字row:outstd_logic_vector(3downto0);---行状态key_pressed:outstd_logic);-----按键有效与否,后续判断为零则为有键按下end;architecturertlofkey_scanisbeginrow<="1110"whenscan_cnt(3d

3、ownto2)="00"else"1101"whenscan_cnt(3downto2)="01"else"1011"whenscan_cnt(3downto2)="10"else"0111";key_pressed<=column(0)whenscan_cnt(1downto0)="00"elsecolumn(1)whenscan_cnt(1downto0)="01"elsecolumn(2)whenscan_cnt(1downto0)=“10"elsecolumn(3);endrtl;按键扫描控制程序按键处

4、理控制模块libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityscan_countisport(clk:instd_logic;--clockscan_clk:instd_logic;--1khzclkkey_pressed:instd_logic;--检测按键有效与否,停止计数.scan_cnt:outstd_logic_vector(3downto0))

5、;--计数end;architecturebehavofscan_countissignalqscan:std_logic_vector(3downto0);beginscan_1:process(clk,scan_clk,key_pressed)beginif(clk'eventandclk='1')thenif(scan_clk='1'andkey_pressed='1')thenqscan<=qscan+1;endif;endif;endprocess;scan_cnt<=qscan;end;按键消抖控制

6、模块libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitydebounceisport(key_pressed:instd_logic;clk:instd_logic;--同步时钟scan_clk:instd_logic;--1khzclockkey_valid:outstd_logic);end;architecturebehavofdebounceisbe

7、gindebounce:process(clk,scan_clk,key_pressed)variabledbnq:std_logic_vector(5downto0);beginif(key_pressed='1')thendbnq:="111111";--unkey_pressed,countresetat63elsif(clk'eventandclk='1')thenifscan_clk='1'thenifdbnq/=1thendbnq:=dbnq-1;--key_pressednotenoughlong

8、timeendif;endif;endif;ifdbnq=2thenkey_valid<='1';--key_validafterkey_pressed1/63ksecondelsekey_valid<='0';endif;endprocess;end;键盘译码及按键存储模块libraryieee;useieee.std_logic_1164.all;useieee.std_logic

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。