名称:洗衣机工作模式Verilog代码AX301开发板Quartus
软件:Quartus
语言:Verilog
代码功能:
设置洗衣机工作模式:0——洗涤+漂洗;1——洗涤;2——轻柔洗涤;3——脱水。
设置水位状态:0-1-2-3-4表示5种水位。
设置小时、分钟。
可以倒计时。
洗涤结束报警。
洗衣机正转反转指示灯,高电平亮。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在AX301开发板验证,开发板如下,其他开发板可以修改管脚适配:
设计文档:
整体仿真图
消抖仿真图
显示模块
分频模块
状态控制模块
部分代码展示:
module?wash_machine( input?clk_50M,//50M input?reset_key_in,//复位 input?set_time_key_in,//设置 input?confirm_key_in,//确认 input?error_key_in,//故障按键 output?running_led,//洗衣机正在运行指示灯(1秒闪) output?alert_bell,//蜂鸣器报警 output?[2:0]?rotate_led,//洗衣机正转反转指示灯,高电平亮 output?[5:0]?bit_select,//数码管位选 output?[7:0]?seg_select//数码管段选 ); wire?clk_1Hz; wire?reset_key;//复位 wire?set_time_key;//设置 wire?confirm_key;//确认 wire?error_key;//故障按键 wire?[7:0]?countdown_hour_time;//时 wire?[7:0]?countdown_minute_time;//分 wire?[3:0]?water_level;//水位 wire?[3:0]?wash_mode;//模式 //按键消抖模块 key_xiaodou?reset_key_xiaodou( .?clkin(clk_50M),?? .?key_in(reset_key_in),//输入 .?key_posedge(),//消抖后按键上升沿 .?key_negedge(reset_key),//消抖后按键下降沿 .?key_value()//消抖后按键 ); key_xiaodou?set_time_key_xiaodou( .?clkin(clk_50M),?? .?key_in(set_time_key_in),//输入 .?key_posedge(),//消抖后按键上升沿 .?key_negedge(set_time_key),//消抖后按键下降沿 .?key_value()//消抖后按键 ); key_xiaodou?confirm_key_xiaodou( .?clkin(clk_50M),?? .?key_in(confirm_key_in),//输入 .?key_posedge(),//消抖后按键上升沿 .?key_negedge(confirm_key),//消抖后按键下降沿 .?key_value()//消抖后按键 ); key_xiaodou?error_key_xiaodou( .?clkin(clk_50M),?? .?key_in(error_key_in),//输入 .?key_posedge(),//消抖后按键上升沿 .?key_negedge(error_key),//消抖后按键下降沿 .?key_value()//消抖后按键 ); //分频模块 div_1Hz?i_div_1Hz( .?clk_50M(clk_50M), .?clk_1Hz(clk_1Hz) ); //状态机控制模块 state_control?i_state_control( .?clk_50M(clk_50M), .?clk_1Hz(clk_1Hz), .?reset_key(reset_key),//复位 .?set_time_key(set_time_key),//设置 .?confirm_key(confirm_key),//确认 .?error_key(error_key),//故障按键 .?running_led(running_led),//洗衣机正在运行指示灯(1秒闪) .?alert_bell(alert_bell),//蜂鸣器报警 .?rotate_led(rotate_led),//洗衣机正转反转指示灯,高电平亮 .?countdown_hour_time(countdown_hour_time),//时 .?countdown_minute_time(countdown_minute_time),//分 .?water_level(water_level),//水位 .?wash_mode(wash_mode)//模式 ); //显示模式 display?i_display( .?clk(clk_50M), .?water_level(water_level),//水位 .?wash_mode(wash_mode),//模式 .?countdown_hour_time(countdown_hour_time),//时 .?countdown_minute_time(countdown_minute_time),//分 .?bit_select(bit_select),//数码管位选 .?seg_select(seg_select)//数码管段选 ); endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=328
阅读全文