国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

四個按鍵控制led的四種變化(按鍵控制led)(附源碼)

這篇具有很好參考價值的文章主要介紹了四個按鍵控制led的四種變化(按鍵控制led)(附源碼)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


一、實驗任務

使用開發(fā)板上的四個按鍵控制四個LED燈。按下不同的按鍵時,四個LED燈顯示不同效果。本實驗是在EP4CE6F17C8開發(fā)板上實現(xiàn),仿真請用modelsim Altera
四個按鍵控制led燈,fpga開發(fā)

四個按鍵控制led燈,fpga開發(fā)

二、系統(tǒng)框圖

四個按鍵控制led燈,fpga開發(fā)

三、代碼實現(xiàn)

module key_led (
    input clk,                      //時鐘周期
    input rst_n,                    //復位信號
    input [3:0] key ,               //4個按鍵,提供4個位寬
    output reg [3:0] key_led        //4個led燈,提供4個位寬
);
reg [1:0] state;                    //兩位寬的狀態(tài)寄存器,存儲4個狀態(tài)
reg [25:0] cnt_1s;                  //存儲1s的寄存器


parameter MAX_1s = 26'd49_999_999;//1s的時鐘周期


//1s計數(shù)器
always @(negedge rst_n or posedge clk) begin
    if (!rst_n) begin
        cnt_1s <= 26'd0;
    end
    else if (cnt_1s == MAX_1s) begin
        cnt_1s <= 26'd0;
    end
    else begin
        cnt_1s <= cnt_1s + 26'd1;
    end
end

//狀態(tài)每隔1s進行跳轉(zhuǎn)
always @(negedge rst_n or posedge clk) begin
    if (!rst_n) begin
        state <= 2'd0;
    end
    else if (cnt_1s == MAX_1s) begin            //每隔1s進入下一個狀態(tài)
        state <= state + 2'd1;
    end
    else begin
        state <= state;
    end
end

//不同按鍵不同led燈閃爍方式
always @(negedge rst_n or posedge clk) begin
    if (!rst_n) begin
        key_led <= 4'b0000;
    end
    else if (key[0] == 0) begin            //key0鍵按下,從右往左流水燈
        case (state)
            2'd0: key_led <= 4'b0001;
            2'd1: key_led <= 4'b0010;
            2'd2: key_led <= 4'b0100;
            2'd3: key_led <= 4'b1000;
            default: key_led <= key_led ;
        endcase
    end
     else if (key[1] == 0) begin            //key1鍵按下,從左往右流水燈
        case (state)
            2'd0: key_led <= 4'b1000;
            2'd1: key_led <= 4'b0100;
            2'd2: key_led <= 4'b0010;
            2'd3: key_led <= 4'b0001;
            default: key_led <= key_led ;
        endcase
    end
     else if (key[2] == 0) begin            //key2鍵按下,led燈閃爍
        case (state)
            2'd0: key_led <= 4'b1111;
            2'd1: key_led <= 4'b0000;
            2'd2: key_led <= 4'b1111;
            2'd3: key_led <= 4'b0000;
            default: key_led <= key_led ;
        endcase
    end
     else if (key[3] == 0) begin            //key3鍵按下,燈常亮
        case (state)
            2'd0: key_led <= 4'b1111;
            2'd1: key_led <= 4'b1111;
            2'd2: key_led <= 4'b1111;
            2'd3: key_led <= 4'b1111;
            default: key_led <= key_led ;
        endcase
    end
    else begin
        state <= state;
    end
end



endmodule

仿真代碼:

`timescale 1ns/1ns
module key_led_tb (
);
    reg clk;
    reg rst_n;
    reg [3:0] key;
    wire [3:0] key_led;

    parameter MAX_1s = 9;
    parameter CYCLE = 20;

    always #(CYCLE/2) clk <= ~clk;

    initial begin
        clk = 1'b0;
        rst_n = 1'b0;
        #(CYCLE);
        rst_n = 1'b1;
        key = 4'b1111;
        #(4*(MAX_1s + 1)*CYCLE);  //4個state的時間
        key = 4'b1110;
        #(4*(MAX_1s + 1)*CYCLE);  
        key = 4'b1101;
        #(4*(MAX_1s + 1)*CYCLE);  
        key = 4'b1011;
        #(4*(MAX_1s + 1)*CYCLE);  
        key = 4'b0111;
        $stop;
    end


    key_led  #(.MAX_1s(MAX_1s))u_key_led(
        .clk(clk),
        .rst_n(rst_n),
        .key(key),
        .key_led(key_led)
    );


    
endmodule

四、引腳分配

四個按鍵控制led燈,fpga開發(fā)

五、總結(jié)

注意:該實驗并未進行按鍵消抖,需一直按著按鍵才能讓該按鍵所操控的led變化功能實現(xiàn)。文章來源地址http://www.zghlxwxcb.cn/news/detail-737855.html

到了這里,關(guān)于四個按鍵控制led的四種變化(按鍵控制led)(附源碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • FPGA/Verilog HDL/AC620零基礎(chǔ)入門學習——第一個項目按鍵控制LED

    FPGA/Verilog HDL/AC620零基礎(chǔ)入門學習——第一個項目按鍵控制LED

    最近要考試了,所以我趕緊補習FPGA,我們用的是小梅哥的AC620開發(fā)板,軟件是Quartus。推薦看這個視頻教程:零基礎(chǔ)輕松學習FPGA,小梅哥FPGA設(shè)計思想與驗證方法視頻教程 用按鍵控制LED燈的亮滅就是一個二選一多路器,兩個IO,a、b,可以是高電平,也可以是低電平。 輸入按鍵

    2024年02月05日
    瀏覽(28)
  • STM32矩形(矩陣)按鍵(鍵盤)輸入控制LED燈 ——4*4矩陣按鍵源碼解析

    STM32矩形(矩陣)按鍵(鍵盤)輸入控制LED燈 ——4*4矩陣按鍵源碼解析

    本文基于標準函數(shù)庫的工程實現(xiàn)stm32F103C8T6使用4*4的矩陣按鍵控制LED燈的亮滅及閃爍等功能。 程序源碼:鏈接:https://pan.baidu.com/s/1_MPhvMduKCTP0MPG-Gtw3A?pwd=2syk? 提取碼:2syk 文章目錄 一、矩形鍵盤介紹 1、硬件電路基本原理 2、兩種識別方法介紹 3、硬件接線即使用 二、程序源碼

    2024年02月04日
    瀏覽(26)
  • LED屏幕3D特效的四種原理

    LED屏幕3D特效的四種原理

    2D與3D的區(qū)別在于,前者是平面顯示,而后者是立體顯示。從2D到帶眼鏡觀看3D,再到裸眼3D技術(shù),無不說明技術(shù)的進步。隨著裸眼3D技術(shù)越來越成熟,LED顯示屏廠家在LED電子大屏幕的基礎(chǔ)上搭載3D技術(shù)的案例越來越多。那么,LED電子大屏幕3D特效是如何實現(xiàn)的?其四種原理又分別

    2024年02月16日
    瀏覽(18)
  • 獨立按鍵控制led燈

    獨立按鍵控制led燈

    今天,我們來學習關(guān)于獨立按鍵來控制led燈的知識。 1.獨立按鍵控制led燈亮滅 首先是來用一個獨立按鍵控制一個led燈的亮滅。其中獨立按鍵由P3表示,其具體電路圖如下 ? ? ? ? ? ? ? ? ?? ?其中第一個按鍵為P3_1,第二個按鍵為P3_0,第三個按鍵為P3_2,第四個按鍵為P3_3,很明

    2024年02月08日
    瀏覽(17)
  • 按鍵控制LED閃爍實驗

    按鍵控制LED閃爍實驗

    實驗任務: 本節(jié)實驗任務是使用底板上的PL_KEY0和PL_KEY1按鍵來控制底板上的PL_LED0和PL_LED1兩個LED的閃爍方式。沒有按鍵按下時,兩個LED保持常亮;如果按鍵0按下,則兩個LED交替閃爍;如果按鍵1按下,則兩個LED同時閃爍。 模塊示意圖: ? 模塊代碼實現(xiàn): modulekey_led( input? ? ?

    2024年02月04日
    瀏覽(26)
  • 按鍵控制 LED 實驗

    按鍵控制 LED 實驗

    目錄 1 按鍵簡介 2 實驗任務 3 硬件設(shè)計 4 程序設(shè)計 5 下載驗證 ????????按鍵開關(guān)是一種電子開關(guān),屬于電子元器件類。 ????????輕觸式按鍵 ????????自鎖式按鍵 ????????使用底板上的 PL_KEY0 和 PL_KEY1 按鍵來控制底板上的 PL_LED0 和 PL_LED1 兩個 LED 的閃爍方式。沒有

    2024年02月11日
    瀏覽(19)
  • SoC-按鍵控制led

    SoC-按鍵控制led

    1.hps_0.h 2.main.c SoC

    2024年02月10日
    瀏覽(15)
  • 觸摸按鍵控制LED燈

    觸摸按鍵控制LED燈

    目錄 1.理論 2.代碼 2.1?touch_ctrl_led.v 2.2 tb_touch_ctrl_led 以上的波形圖的touch_flag是采用組合邏輯的方式產(chǎn)生的。 以上的touch_flag是采用時序邏輯產(chǎn)生的,時序邏輯會延遲一拍。 以上是上升沿和下降沿的組合邏輯和時序邏輯實現(xiàn),邏輯或的寫法剛好是邏輯與的兩個寄存器的值反過來

    2024年01月23日
    瀏覽(12)
  • 【stm32----按鍵中斷實驗,按鍵控制LED燈】

    【stm32----按鍵中斷實驗,按鍵控制LED燈】

    1、按下KEY1,LED1亮,再次按下KEY1,LED1滅; 2、按下KEY2,LED2亮,再次按下KEY2,LED2滅; 3、按下KEY3,LED3亮,再次按下KEY3,LED3滅; 一、頭文件 1、gpio.h 2、key.h 二、初始化函數(shù)及功能函數(shù) 1、gpio.c 2、key.c 三、中斷處理函數(shù) do_irq.c 四、主函數(shù) main.c 依次按下key3、key2、key1、key2

    2024年02月04日
    瀏覽(25)
  • IntelliJ IDEA 控制臺中文亂碼的四種解決方法

    IntelliJ IDEA 控制臺中文亂碼的四種解決方法

    IntelliJ IDEA 如果不進行配置的話,運行程序時控制臺有時候會遇到中文亂碼,中文亂碼問題非常嚴重,甚至影響我們對信息的獲取和程序的跟蹤。開發(fā)體驗非常不好。 本文中我總結(jié)出四點用于解決控制臺中文亂碼問題的方法,希望有助于大家。 注意 :下面根據(jù)我日常工作的

    2024年02月08日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包