名稱:洗衣機(jī)控制器Verilog代碼vivado? ego1開發(fā)板
軟件:vivado
語言:Verilog
代碼功能:
洗衣機(jī)控制器
(1)設(shè)計一個洗衣機(jī)控制器,使洗衣機(jī)作如下運(yùn)轉(zhuǎn):定時啟動—〉正轉(zhuǎn)20秒—〉暫停10秒—〉反轉(zhuǎn)20秒—〉暫停10秒—〉定時不到,重復(fù)上面過程。
(2)若定時到,則停止,并發(fā)出提示信號。
(3)用兩個數(shù)碼管顯示洗滌的預(yù)置時間(15分鐘),按倒計時方式對洗滌過程作計時顯示,直到時間到停機(jī);洗滌過程由開始信號開始。
(4)三只LED燈表示正轉(zhuǎn)、反轉(zhuǎn)、暫停三個狀態(tài)。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在ego1開發(fā)板驗證,ego1開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計文檔:
1. 工程文件
2. 程序文件
3. FPGA型號
4. 程序編譯
5. Testbench
6. 仿真圖
Washing_time是剩余時間倒計時,程序內(nèi)預(yù)置時間15分鐘倒計時,洗衣結(jié)束后end_led信號拉高,表示洗衣結(jié)束信號
Led[2:0] 是正轉(zhuǎn)反轉(zhuǎn)暫停信號,led[2]為正轉(zhuǎn),led[1]為暫停,led[0]為反轉(zhuǎn)
數(shù)碼管顯示,首先把Washing_time轉(zhuǎn)換為十位ten_wei和個位one_wei,然后分別掃描顯示,
下圖中十位=1,個位=5,1對應(yīng)數(shù)碼管碼字為8'hf9,5對應(yīng)數(shù)碼管碼字為8'h92,所以下圖f9,92依次顯示。
部分代碼展示:
`timescale?1ns?/?1ps //testbench module?wash_machine_test(); reg????????clk_in;//50Hz reg????????start_key;//啟動按鍵 wire?[2:0]?led;//正轉(zhuǎn),反轉(zhuǎn),暫停 wire???????end_led;?//洗衣結(jié)束信號 wire?[1:0]?bit_select;// wire?[7:0]?dig_led2;//數(shù)碼管2 washing_machine?i_washing_machine ( .clk_in(clk_in),? .start_key(start_key),? .led(led),? .end_led(end_led),? .bit_select(bit_select),? .dig_led2(dig_led2) ); initial?begin start_key=0; #200; start_key=1;//開始按鍵按下 #50; start_key=0; #100; end //產(chǎn)生時鐘 always?begin clk_in=1; #10; clk_in=0; #10; end endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=457