數字搶答器的設計 (1)具有4個搶答按鍵; (2)10秒內有效搶答,并倒計時顯示,若10秒內無人搶答,進行聲光報警。 (3)在有效時間內,將第一個按下按鍵的組員的編號進行鎖存、并顯示其編號,其他的組員再按無效。 (4)具有主持人復位按鍵,當復位鍵后,才可搶答并啟動倒計時。
1.jpg (2.64 MB, 下載次數: 91)
下載附件
部分測試1
2020-7-2 19:00 上傳
3.jpg (2.82 MB, 下載次數: 68)
下載附件
部分測試2
2020-7-2 19:00 上傳
部分代碼(Verilog):(已實現上述功能,且測試無誤) module digital_answer(a,b,c,d,reset,clk,beep,led,seg,deg);
/********** ********** **a,b,c,d是四個搶答按鍵。(低電平搶答有效) **reset是主持人復位鍵(也是開始) **beep是聲音報警 **led是光報警 **Nixie_tube[0]Nixie_tube[1]是數碼管倒計時顯示Nixie_tube[2]顯示空白 **Nixie_tube[3]是搶答者編號顯示數碼管 **clk是時鐘 **seg數碼管段選 **deg數碼管位選 **clk選擇48M(clock1) ********** ***********/ input a,b,c,d,reset,clk; output beep; output [3:0] led; output [7:0] seg; output [7:0] deg; reg beep; reg [3:0] led; reg [3:0] Nixie_tube; reg [7:0] seg; reg [7:0] deg; reg [3:0] data; //顯示選手編號a,b,c,d reg input_flag,count_flag; reg [14:0] count1; //2400分頻(產生1khz),作用與數碼管動態顯示 reg [8:0] count2; //500分頻(每0.5s翻轉一次產生1hz信號計數) reg div_1khz,div_1hz; reg [3:0] count_one,count_ten; reg [3:0] led_n; reg [2:0] cnt; //reg [3:0] dat; /****1Khz信號產生****/ always @(posedge clk) begin if(count1=='d24000) begin div_1khz<=~div_1khz;count1<=0;end else begin count1<=count1+1'b1;end end /****1hz信號產生****/ always @(posedge div_1khz) begin if(count2=='d500) begin div_1hz<=~div_1hz;count2<=0;end else begin count2<=count2+1'b1;end
end
全部代碼51hei下載地址:
digital_answer.zip
(1.42 KB, 下載次數: 65)
2020-7-2 18:58 上傳
點擊文件名下載附件
上述代碼的后續 下載積分: 黑幣 -5
|