名稱:醫(yī)院病房呼叫系統(tǒng)病床呼叫(代碼在文末付費下載)
軟件:Quartus
語言:Verilog
要求:
1、用1~6個開關(guān)模擬6個病房的呼叫輸入信號,1號優(yōu)先級最高;1~6優(yōu)先級依次降低;
2、 用一個數(shù)碼管顯示呼叫信號的號碼;沒信號呼叫時顯示0;有多個信號呼叫時,顯示優(yōu)先級最高的呼叫號(其它呼叫號用指示燈顯示);
3、凡有呼叫發(fā)出5秒的呼叫聲;
4、對低優(yōu)先級的呼叫進(jìn)行存儲,處理完高優(yōu)先級的呼叫,再進(jìn)行低優(yōu)先級呼叫的處理。
本代碼已在實驗箱驗證,實驗箱資料如下:
FPGA_CDS講義1711ok.docx
演示視頻:
部分代碼展示
//用1~6個開關(guān)模擬6個病房的呼叫輸入信號,1號優(yōu)先級最高;1~6優(yōu)先級依次降低; //2、?用一個數(shù)碼管顯示呼叫信號的號碼;沒信號呼叫時顯示0;有多個信號呼叫時,顯示優(yōu)先級最高的呼叫號(其它呼叫號用指示燈顯示); //3、凡有呼叫發(fā)出5秒的呼叫聲; //4、對低優(yōu)先級的呼叫進(jìn)行存儲,處理完高優(yōu)先級的呼叫,再進(jìn)行低優(yōu)先級呼叫的處理。 module?sickroom_ctrl( input?clk,//時鐘20MHz input?rst_p,//復(fù)位 //6個呼叫按鍵 input?key_1, input?key_2, input?key_3, input?key_4, input?key_5, input?key_6, input?deal_key,//處理按鍵,按下表示處理當(dāng)前最高優(yōu)先級 output?[5:0]?led,//呼叫指示燈 output?reg?[3:0]?number//數(shù)碼管顯示呼叫信號的號碼 ); reg?[5:0]?call_data=6'd0; always@(posedge?clk?or?posedge?rst_p) if(rst_p==1) call_data<=6'd0; else if(key_1==1)//呼叫按鍵1 call_data<=call_data?|?6'b100000; else?if(key_2==1)//呼叫按鍵2 call_data<=call_data?|?6'b010000; else?if(key_3==1)//呼叫按鍵3 call_data<=call_data?|?6'b001000; else?if(key_4==1)//呼叫按鍵4 call_data<=call_data?|?6'b000100; else?if(key_5==1)//呼叫按鍵5 call_data<=call_data?|?6'b000010; else?if(key_6==1)//呼叫按鍵6 call_data<=call_data?|?6'b000001;
設(shè)計文檔(文檔點擊可下載):
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
6. 仿真圖
整體仿真圖
按鍵模塊
病房控制模塊
呼叫鈴控制模塊
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=183
閱讀全文