名稱:汽車里程表計程儀及蜂鳴器音樂報警Verilog代碼Quartus仿真
軟件:Quartus
語言:Verilog
代碼功能:
汽車里程表計程儀及蜂鳴器音樂報警
1.計程功能,預設三個速度對應三個開關,啟動后,數(shù)碼管上按速度乘以時間顯示里程。
2.報警功能,按下一個開關模擬前方一定距離出現(xiàn)障礙,當計程儀再增加2公里后紅燈閃爍,蜂鳴器間斷響起,3公里后紅燈常亮,蜂鳴器不間斷響起。
3.附加功能,4公里后通過障礙,蜂鳴器播放音樂(只要調(diào)的那種)。
三個預設速度分別設成20公里每小時40公里每小時60公里每小時
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
設計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
部分代碼展示:
//顯示模塊 module?display( input?clk, input?[7:0]?distance,//里程 output?reg?[5:0]?bit_select,//數(shù)碼管位選 ????output?reg?[7:0]?seg_select//數(shù)碼管段選 ); reg?[3:0]dis_data?=?4'd0;?//顯示值 reg?[31:0]select_num?=32'd0;//分頻計數(shù)器 reg?[2:0]geshu?=?3'd0;//數(shù)碼管個數(shù)計數(shù) reg?[7:0]?counter_buf;//寄存器 always@(posedge?clk) begin ????counter_buf<=distance;//里程 end ////////////////////////////////////////////位選//////////////////////////////////////////////// always?@(posedge?clk?)??//掃描頻率 begin if(select_num?==?32'd99_999)?? begin select_num?<=?32'd0;? end? else?begin select_num?<=select_num?+1'd1;?//掃描頻率計時數(shù)字 end end always?@(posedge?clk?)?? begin if(select_num?==?32'd99_999) begin if(geshu?==?3'd5) begin geshu?<=?3'd0; end else?begin geshu?<=?geshu?+?1'd1;????//掃描那個管子的指示位 end end end always?@(posedge?clk?)??//位選切換 begin case?(geshu) 3'd0: begin bit_select<=6'b111101; dis_data<=?counter_buf?%4'd10;//顯示個位 end 3'd1: begin? bit_select<=6'b111110; dis_data?<=?counter_buf?/4'd10;//顯示十位 end default:bit_select<=6'b111111; endcase end? //段選輸出 always?@(posedge?clk) begin case?(dis_data)??//數(shù)字顯示碼 8'd0:?seg_select<=?~8'b1100_0000; 8'd1:?seg_select<=?~8'b1111_1001; 8'd2:?seg_select<=?~8'b1010_0100; 8'd3:?seg_select<=?~8'b1011_0000; 8'd4:?seg_select<=?~8'b1001_1001; 8'd5:?seg_select<=?~8'b1001_0010; 8'd6:?seg_select<=?~8'b1000_0010; 8'd7:?seg_select<=?~8'b1111_1000; 8'd8:?seg_select<=?~8'b1000_0000; 8'd9:?seg_select<=?~8'b1001_0000; default:; endcase end endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=514
閱讀全文