名稱:七段數(shù)碼管顯示Verilog代碼Quartus? 開發(fā)板
軟件:Quartus
語言:Verilog
代碼功能:
七段數(shù)碼管顯示
二、題目要求:
(1)撥動開關(guān)K1,紅燈閃爍(閃爍頻率為2-4Hz),七段數(shù)碼管開始從14倒計時(每秒計數(shù)減1);當(dāng)減到7時,紅燈停止閃爍,同時黃燈亮,倒計時繼續(xù);當(dāng)減到0時,保持0顯示,黃燈熄滅,同時綠燈亮。整個過程中任意時刻撥動開關(guān)K1,則從頭(顯示14,紅燈閃)開始。
(2)外部輸入脈沖信號頻率為50mhz;
三、設(shè)計原理:
(1)計數(shù):輸入脈沖信號為50mhz,七段數(shù)碼管顯示改變?yōu)?Hz,紅燈閃爍頻率為2-4Hz,需要計數(shù)脈沖信號或者設(shè)計分頻器。
(2)七段數(shù)碼管顯示:七段數(shù)碼管是電子開發(fā)過程中常用的輸出顯示設(shè)備。在實驗系統(tǒng)中使用的是兩個四位一體、共陰極型七段數(shù)碼管。其單個靜態(tài)數(shù)碼管如下圖4-1所示。
由于七段數(shù)碼管公共端連接到GND(共陰極型),當(dāng)數(shù)碼管的中的那一個段被輸入高電平,則相應(yīng)的這一段被點亮。反之則不亮。共陽極性的數(shù)碼管與之相么。四位一體的七段數(shù)碼管在單個靜態(tài)數(shù)碼管的基礎(chǔ)上加入了用于選擇哪一位數(shù)碼管的位選信號端口。八個數(shù)碼管的a、b、c、d、e、f、g、h、dp都連在了一起,8個數(shù)碼管分別由各自的位選信號來控制,被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
6. 仿真圖
整體仿真圖
分頻模塊
控制模塊
顯示模塊
部分代碼展示:
module?downcount( input?clk,//時鐘50MHz input?K1,//按鍵 output?led_red,//紅燈 output?led_green,//綠燈 output?led_yellow,//黃燈 output?[2:0]?SEL,//數(shù)碼管位選 output?[7:0]?SEG?//數(shù)碼管段選 ); wire?clk_1KHz;//1KHz wire?clk_4Hz;//4Hz wire?clk_1Hz;?//1Hz wire?[3:0]?data_one;//個位 wire?[3:0]?data_ten;//十位 //分頻模塊 div_clk?i_div_clk( .?clk(clk),//50MHz .?clk_1KHz(clk_1KHz),//1KHz .?clk_4Hz(clk_4Hz),//4Hz .?clk_1Hz(clk_1Hz)?//1Hz ); //控制模塊 control?i_control( .?clk_1KHz??(clk_1KHz?),//時鐘1KHz .?clk_4Hz???(clk_4Hz??),//4Hz(綠燈閃爍頻率) .?clk_1Hz???(clk_1Hz??),?//1Hz .?K1????????(K1???????),//按鍵 .?led_red???(led_red??),//紅燈 .?led_green?(led_green),//綠燈 .?led_yellow?(led_yellow),////黃燈 .?data_one??(data_one?),//個位 .?data_ten??(data_ten?)?//十位 ); //顯示模塊 display?i_display( .?clk_1KHz??(clk_1KHz?),//時鐘1KHz .?data_one??(data_one?),//個位 .?data_ten??(data_ten?),?//十位 .?SEL(SEL),//數(shù)碼管位選 .?SEG(SEG)?//數(shù)碼管段選 ); endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=547