首页 > 技术 > 内容

基于FPGA的按键控制LED灯亮灭

时间:2026-01-10  作者:Diven  阅读:0

按键是常用的控制器件。生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等特点,在家电、数码产品、玩具等方面有的应用。

本实验我们将介绍如何使用按键控制多个LED的亮灭。

1. 按键简介

按键开关是电子开关,属于电子元器件类。

我们的开发板上有两种按键开关:

第是本实验所使用的轻触式按键开关(如下图1),简称轻触开关

使用时以向开关的操作方向施加压力使内部电路闭合接通,当撤销压力时开关断开,其内部结构是靠金属弹片受力后发生形变来实现通断的;

第二种是自锁按键(如下图2),自锁按键第一次按下后保持接通,即自锁,第二次按下后,开关断开,同时开关按钮弹出来。

开发板上的电源键就是第开关。

图1 轻触式按键

图2 自锁式按键

2. 实验任务

使用开发板上的四个按键控制四个LED灯。不同按键按下时,四个LED灯显示不同效果。(由于按键1被复位键占用,故本实验中使用按键2、按键3、按键4控制LED灯显示四种状态)

当按下按键2时,4个LED灯显示从右向左流水灯效果。

当按下按键3时,4个LED灯显示从左向右流水灯效果。

当按下按键4时,4个LED灯闪烁

3. 硬件设计

本实验中,系统时钟、复位按键、按键和LED灯的管脚如下表所示。

按键控制LED管脚分配图

4. 程序设计

系统框图

运行代码:
 

Module key_led ( input i_sys_clk, input i_sys_rst_n, input [2:0] i_key, output [3:0] o_led);paRAMeter p_0_2s_counter = 10_000_000;reg [23:0] r_0_2s_counter = 24'd0;always @ (posedge i_sys_clk or negedge i_sys_rst_n)begin if (~i_sys_rst_n) r_0_2s_counter <= 24'd0; else if (r_0_2s_counter == (p_0_2s_counter - 1'b1)) r_0_2s_counter <= 24'd0; else r_0_2s_counter <= r_0_2s_counter + 1'b1;endreg [1:0] r_led_state_switch = 2'd0;always @ (posedge i_sys_clk or negedge i_sys_rst_n)begin if (~i_sys_rst_n) r_led_state_switch <= 2'b00; else if (r_0_2s_counter == (p_0_2s_counter - 1'b1)) r_led_state_switch <= r_led_state_switch + 1'b1; else r_led_state_switch <= r_led_state_switch;endreg [3:0] r_led;always @ (posedge i_sys_clk or negedge i_sys_rst_n)begin if (~i_sys_rst_n) r_led <= 4'b0000; else if (i_key[0] == 1'b0) case (r_led_state_switch) 2'b00 : r_led <= 4'b1000; 2'b01 : r_led <= 4'b0100; 2'b10 : r_led <= 4'b0010; 2'b11 : r_led <= 4'b0001; default : r_led <= 4'b0000; endcase else if (i_key[1] == 1'b0) case (r_led_state_switch) 2'b00 : r_led <= 4'b0001; 2'b01 : r_led <= 4'b0010; 2'b10 : r_led <= 4'b0100; 2'b11 : r_led <= 4'b1000; default : r_led <= 4'b0000; endcase else if (i_key[2] == 1'b0) case (r_led_state_switch) 2'b00 : r_led <= 4'b1111; 2'b01 : r_led <= 4'b0000; 2'b10 : r_led <= 4'b1111; 2'b11 : r_led <= 4'b0000; default : r_led <= 4'b0000; endcase else r_led <= 4'b0000;endassign o_led = r_led;endModule

猜您喜欢


12月1日-2日,备受行业关注的2024世界传感器大会(WSS)在河南郑州举办,大会中,举行了多场高端演讲及行业峰会。其中,工信部直属产业研究机构赛迪研究院发...
2024-12-06 01:02:00
1 引言在导弹型号的研制过程中,匹配装置是用于遥测系统中信号变换的关键部件,是弹上所有关键部件的信息送到遥测设备的咽喉。匹配装置的精度和可靠性是影响遥测结果的...
2020-08-05 18:00:00
RF检波器是用于无线电频率信号处理的重要设备。主要用于将高频信号转换为低频信号,便于后续的分析和处理。RF检波器应用于通信、广播、雷达等领域,能够有效地提取信号...
2011-03-03 00:00:00
贴片电阻成本受到多种因素的影响,理解这些因素有助于企业更好地控制成本和选择合适的供应商。主要影响因素包括:原材料成本: 电阻的主要原材料是电阻浆料和基板,这些材...
2024-11-29 10:25:55
现代电子设备中,微型封装技术已成为提高产品性能和降低尺寸的重要手段。WLCSP(WaferLevelChipScalePackage)作为先进的封装形式,因其优...
2025-04-24 23:31:12
热敏电阻,又称为热电阻,是一种温度传感器,其电阻值随温度变化而变化。热敏电阻应用于温度测量、温度控制及温度补偿等领域。本文将重点介绍热敏电阻的温度特性实验,帮助...
2025-03-17 15:30:36
电阻器作为电子元件中的基础部件,其性能直接影响电路的稳定性和寿命。防硫化电阻因具备优异的抗硫化性能,应用于工业控制、汽车电子、家用电器等领域。本文将围绕“TDK...
2014-10-06 17:05:49
随着数字技术的迅猛发展,数字类免费验证板成为了电子爱好者和开发者们不可少的工具。不仅提供了一个便捷的平台,帮助用户进行电路设计和测试,还能有效降低开发成本。这些...
2008-01-02 00:00:00
收发器是应用于通信和网络设备中的关键组件,其主要优势体现在以下几个方面。收发器具有高效的数据传输能力。能够在不同的信号间进行快速转换,确保信息的及时传递,极大地...
2014-11-12 00:00:00
电阻器作为电子元器件中的基础元件,其性能直接影响到整个电路的稳定性和可靠性。TDK作为全球知名的电子元器件制造商,其生产的金属膜电阻凭借很好的品质和优异的性能,...
2016-03-01 01:46:21