• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

洗衣机控制器设计Verilog代码Quartus 远程云端平台

09/25 09:44
156
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-241030212625935.doc

共1个文件

名称:洗衣机控制器设计Verilog代码Quartus? 远程云端平台

软件:Quartus

语言:Verilog

代码功能:

洗衣机控制器设计要求

1.设计一个电子定时器,控制洗衣机作如下运转定时启动→正转20秒→暂停10秒→反转20秒→暂停10秒,每个循环1分钟;

2.按正计时方式用两个数码管显示正转、暂停、反转时间,同时用三只LED灯表示“正转”反转”、“暂停”三个状态;

3.用两个数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,时间到停机,停机指示灯亮;

4.洗涤过程由“开始”开关开始,设置“暂停”开关。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在远程云端平台验证,远程云端平台如下,其他开发板可以修改管脚适配:

远程云端平台.png

演示视频:

设计文档:

部分代码展示:

module?washing_machine(clk_in,?dataout,en,reset_n,?start_key,?stop_key,led,?end_beep);
???input????????clk_in;//1000Hz
???input????????reset_n;//复位按下低电平
???input????????start_key;//启动按下低电平
input????????stop_key;//暂停按下低电平
???
???output?[2:0]?led;//正反转灯???
???output???????end_beep;//结束报警
???
output[7:0]?dataout;//数码管段选
output[3:0]?en;//COM使能输出
???
???
???reg?[1:0]????state;
???reg?[2:0]????led;???
???reg?[7:0]????washing_time;???
???reg??????????end_beep_buf;
???reg?[7:0]????second_cnt;
???reg??????????min_en;???
???reg??????????second_en_1s;
???reg?[31:0]????second_div_cnt;
???
reg?[31:0]?beep_cnt=32'd0;???
???always?@(posedge?clk_in?or?negedge?reset_n)
if(!reset_n)
state<=2'b00;//空闲状态
else
?????????case?(state)
????????????2'b00?://空闲状态
???????????????if?(start_key?==?1'b0)
??????????????????state?<=?2'b01;
???????????????else
??????????????????state?<=?2'b00;
????????????2'b01?://倒计时状态
???????????????if(stop_key==0)
??????????????????state?<=?2'b11;
???????????????else?if?(washing_time?>?8'b00000000)
??????????????????state?<=?2'b01;
else?
state?<=?2'b10;
????????????2'b10?://结束
state?<=?2'b10;
????????????2'b11?://暂停
???????????????if?(start_key?==?1'b0)
??????????????????state?<=?2'b01;
???????????????else
??????????????????state?<=?2'b11;
????????????default?:
???????????????state?<=?2'b00;
?????????endcase
?
???always?@(posedge?clk_in)??????
??????begin
?????????if?(state?==?2'b10)//结束计数
????????????beep_cnt?<=beep_cnt+?1'b1;
??????end???
???
???always?@(posedge?clk_in)??????
??????begin
?????????if?(state?==?2'b10)//结束
????????????end_beep_buf?<=?1'b1;
?????????else
????????????end_beep_buf?<=?1'b0;
??????end
??
???assign?end_beep?=?end_beep_buf;
???
???
???always?@(posedge?clk_in)
if(state!=2'b01)//非倒计时状态清零
begin
????????????second_div_cnt?<=?32'd0;
????????????second_en_1s?<=?1'b0;
end
else//倒计时状态计时
??????begin
?????????if?(second_div_cnt?>=?32'd1000)//计数1000为1s,仿真将计数器改小为50
?????????begin

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1297

  • 2-241030212625935.doc
    下载

相关推荐