您当前的位置: 首页 > 

耐心的小黑

暂无认证

  • 0浏览

    0关注

    323博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

FPGA 按键控制LED灯亮灭切换实验

耐心的小黑 发布时间:2020-10-22 23:01:07 ,浏览量:0

一、实验内容

有四个按键,分别控制四个LED灯的亮灭切换。

二、实验说明

1、代码中,使用位宽为4的key_h作为输入,分别连接着四个按键,也即每一位的高低对应着按键的松按。使用位宽为4的led作为输出,分别连接着四个LED,也即每一位的高低对应控制LED的亮灭切换。

2、采集按键状态的时候,采用了这篇文章:FPGA中按键消抖的三种方案 中的方案二来对按键进行消抖。

3、在检测下降沿的时候,使用(前一拍数据)&(后一拍数据取反)的方式进行检测。若结果为1,则说明检测到了下降沿。

三、代码解析

1、RTL代码

//4个独立按键S3/S4/S5/S6的按下与否,对应控制LED D24/D25/D26/D27的亮灭切换。

module at7(
			input sys_clk_i,	//外部输入50MHz时钟信号
			input ext_rst_n,	//外部输入复位信号,低电平有效
			input [3:0] key_h,	//4个独立按键输入,未按下为高电平,按下后为低电平
			output reg[3:0] led		//4个LED指示灯接口	
    		);

	/***********************************************************
			 第一部分:检测按键的上升沿或者下降沿
	************************************************************/

	wire key;	//所有按键值相与的结果,用于按键触发判断
	reg[3:0] keyr;  //按键值key的缓存寄存器

	//四个键中,任何一个被按下,key都会变为0;除非全都未按下,key才为1。
	assign key = key_h[0] & key_h[1] & key_h[2] & key_h[3];

	always @(posedge sys_clk_i or negedge ext_rst_n)
		if (!ext_rst_n) keyr             
关注
打赏
1640088279
查看更多评论
0.0382s