名稱:洗衣機(jī)控制器Basys2開發(fā)板verilog電子定時(shí)器倒計(jì)時(shí)(代碼在文末下載)
軟件:ISE
語言:Verilog
代碼功能:
洗衣機(jī)控制器設(shè)計(jì)要求
(1)設(shè)計(jì)一個(gè)電子定時(shí)器,控制洗衣機(jī)做如下運(yùn)轉(zhuǎn):定時(shí)啟動→正轉(zhuǎn)25s→暫停5s→反轉(zhuǎn)25s→暫停。如果定時(shí)未到,則回到“正轉(zhuǎn)25s→暫停5S→…,定時(shí)到則停止。
(2)若定時(shí)到,則停機(jī)發(fā)出音響信號。
(3)用兩個(gè)數(shù)碼管顯示洗滌的預(yù)置時(shí)間(分鐘數(shù)),按倒計(jì)時(shí)方式對洗滌過程作計(jì)時(shí)顯示,直到時(shí)間計(jì)時(shí)結(jié)束;洗滌過程由“開始”信號開始。
(4)3只LED燈表示“正轉(zhuǎn)”、“反轉(zhuǎn)”、“暫停“等3個(gè)狀態(tài)。
教學(xué)提示
(1)設(shè)計(jì)20s、10s定時(shí)電路。
(2)電路輸出為“正轉(zhuǎn)”、“反轉(zhuǎn)”、“暫?!暗?個(gè)狀態(tài)。
(3)按照設(shè)計(jì)要求,用定時(shí)器的"時(shí)間到”信號啟動相應(yīng)的下一個(gè)定時(shí)器工作,直到整個(gè)過程結(jié)束。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在Basys2開發(fā)板驗(yàn)證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 管腳約束
4. 程序編譯
5. RTL圖
6. Testbench
7. 仿真圖
7.1 整體仿真圖
7.2 div_to_1K模塊
7.3 div_to_1模塊
7.4 control模塊
7.5 display模塊
部分代碼展示:
module?wash_machine( input?clk,//50MHz input?key_add,//加按鍵,設(shè)置時(shí)間 input?key_sub,//減按鍵,設(shè)置時(shí)間 input?key_start,//啟動按鍵 input?key_reset,//復(fù)位按鍵 output?D1,//正轉(zhuǎn) output?D2,//反轉(zhuǎn) output?D3,//暫停 output?end_led,//結(jié)束指示燈 output?[7:0]?SEG,//數(shù)碼管段選 output?[1:0]?SEL//數(shù)碼管位選 ); wire?clk_1Hz; wire?clk_1K; wire?[7:0]?time_data;//剩余時(shí)間 //50M分頻到1K div_to_1K?i_div_to_1K( .?clk(clk),//50MHz .?key_reset(key_reset),//按鍵,按下高電平 .?clk_1K(clk_1K)//1KHz信號 ); //1K分頻到1Hz div_to_1?i_div_to_1( .?clk_1K(clk_1K),//1KHz .?key_reset(key_reset),//按鍵,按下高電平 .?clk_1Hz(clk_1Hz)//1Hz信號 ); //控制模塊 control?i_control( .?clk_1Hz(clk_1Hz),//1Hz .?key_add(key_add),//加按鍵,按下高電平 .?key_sub(key_sub),//減按鍵,按下高電平 .?key_start(key_start),//啟動暫停按鍵,按下高電平 .?key_reset(key_reset),//復(fù)位按鍵,按下高電平 .?end_led(end_led), .?D1(D1),//正轉(zhuǎn) .?D2(D2),//反轉(zhuǎn) .?D3(D3),//暫停 .?time_data(time_data)//剩余時(shí)間 ); display?i_display( .?clk_1K(clk_1K),//1000Hz .?time_data(time_data),//剩余時(shí)間 .?SEG(SEG),//數(shù)碼管段選 .?SEL(SEL)//數(shù)碼管位選 ); endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=267