• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

電梯請求顯示系統(tǒng)Verilog代碼Quartus實驗箱

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

2-24011611135V25.doc

共1個文件

名稱:電梯請求顯示系統(tǒng)Verilog代碼Quartus實驗箱

軟件:Quartus

語言:Verilog

代碼功能:

電梯請求顯示系統(tǒng)

二、題目要求:

(1)按鍵S1為一樓上行請求按鈕,按鍵S2為二樓上行請求按鈕,按鍵S3為三樓上行請求按鈕,按鍵S4為四樓上行請求按鈕,按鍵S5為五樓上行請求按鈕,按鍵S6為六樓上行請求按鈕;撥動開關(guān)K2為二樓下行請求按鈕,撥動開關(guān)K3為三樓下行請求按鈕,撥動開關(guān)K4為四樓下行請求按鈕,撥動開關(guān)K5為五樓下行請求按鈕,撥動開關(guān)K6為六樓下行請求按鈕,撥動開關(guān)K7為七樓下行請求按鈕;七段數(shù)碼管顯示當(dāng)前電梯所在樓層數(shù)字(初始為4);每次只有一個有效請求(不用考慮優(yōu)先級);當(dāng)請求發(fā)出后,比較請求樓層和當(dāng)前樓層數(shù)值,數(shù)碼管按照電梯每秒升或降一層(1Hz)進(jìn)行數(shù)值變換,直到顯示樓層與請求樓層相等后停止,同時綠燈閃爍三次(4Hz)。

(2)外部輸入脈沖信號頻率為1mhz;

三、設(shè)計原理:

(1)計數(shù):輸入脈沖信號為1mhz,七段數(shù)碼管顯示改變?yōu)?s,需要計數(shù)脈沖信號或者設(shè)計分頻器。

(2)七段數(shù)碼管顯示:七段數(shù)碼管是電子開發(fā)過程中常用的輸出顯示設(shè)備。在實驗系統(tǒng)中使用的是兩個四位一體、共陰極型七段數(shù)碼管。其單個靜態(tài)數(shù)碼管如下圖4-1所示。

QQ圖片20240116110816.png

由于七段數(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)閉。

數(shù)碼管顯示模塊的電路原理如圖4-2所示,表4-1是其數(shù)碼管的輸入與FPGA的管腳連接表。

QQ圖片20240116110853.png

(3)消抖的原理:按鍵默認(rèn)輸入邏輯‘1’,當(dāng)有按鍵按下時對應(yīng)的輸入為邏輯‘0’(但會存在抖動),當(dāng)FPGA開始檢測到該引腳從‘1’變?yōu)椤?’后開始定時(按鍵抖動時間大約10ms),定時時間結(jié)束后若該引腳仍然為‘0’則表示確實發(fā)生按鍵按下,否則視為抖動而不予以理會;按鍵松開過程的消抖處理和按下時原理一樣。

基于VerilogHDL語言的電路設(shè)計、仿真與綜合;主要包括:各個電路子模塊的Verilog源文件、仿真文件,功能仿真波形;頂層設(shè)計的Verilog源文件、仿真源文件,功能仿真波形。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

本代碼已在實驗箱驗證,實驗箱如下,其他開發(fā)板可以修改管腳適配:

QQ圖片20240116111020.png

演示視頻:

設(shè)計文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. 仿真文件

6. 仿真圖

管腳分配

部分代碼展示:

//電梯
module?lift(
input?clk,//1MHz
input?S1,S2,S3,S4,S5,S6,//上行請求按鍵
input?K2,K3,K4,K5,K6,K7,//下行請求按鍵
output?LED,//green?led
output?[2:0]?HEX_sel,//數(shù)碼管位選
output?[7:0]?HEX//共陰極數(shù)碼管,高電平亮
);
wire?clk_1Hz;//1Hz時鐘
wire?clk_4Hz;//4Hz時鐘
wire?[3:0]?floor;//電梯樓層
wire?S1_debounce;//消抖后S1
//按鍵消抖
key_debounce?i_key_debounce(
.?clk(clk),
.?button_in(S1),//輸入
.?button_posedge(S1_debounce)//消抖后按鍵
);
//分頻模塊
div?i_div(
.?clk(clk),//1MHz
.?clk_1Hz(clk_1Hz),//1Hz時鐘
.?clk_4Hz(clk_4Hz)//4Hz時鐘
);
//電梯控制模塊
lift_ctrl?i_lift_ctrl(
//.?clk(clk),//1MHz
.?clk_1Hz(clk_1Hz),//1Hz時鐘
.?clk_4Hz(clk_4Hz),//4Hz時鐘
.?S1(S1_debounce),//消抖后S1
.?S2(S2),
.?S3(S3),
.?S4(S4),
.?S5(S5),
.?S6(S6),//上行請求按鍵
.?K2(K2),
.?K3(K3),
.?K4(K4),
.?K5(K5),
.?K6(K6),
.?K7(K7),//下行請求按鍵
.?LED(LED),
.?floor(floor)//電梯樓層
);

點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=580

  • 2-24011611135V25.doc
    下載

相關(guān)推薦