洗衣机控制器Basys3开发板verilog倒计时代码下载

本文详细描述了一款基于Basys3开发板的洗衣机控制器的设计,使用Verilog语言,实现了启动、定时、暂停功能,以及100MHz到1Hz的分频逻辑。通过按键控制操作,数码管显示剩余时间和工作模式,适用于VIVADO软件开发环境。
摘要由CSDN通过智能技术生成

名称:洗衣机控制器Basys3开发板verilog倒计时

软件:VIVADO

语言:Verilog

代码功能:

vivado 洗衣机控制器的设计

要求 

1)具有启动、定时、暂停的功能,用按键控制 

2)启动后洗衣机按正转20秒暂停10秒反转20秒暂停10秒的规律循环 

3)定时可以设置洗衣机工作的时间;(有个按键进入定时模式,再有一个按键负责按键负责减,可以定时可以不定时,如果定时需要在开始按键前完成,定时最多三分钟,如果不定时

就按照默认三分钟一旦按下开始键就要循环运行上述流程

4)用两个数码管显示洗涤的预置时间(分钟数,最大3分钟),按倒计时方式显示,直到时间到停机;洗涤过程由“开始”信号开始; 

5)三只LED灯表示“正转”、“反转”、“暂 停”三个状态。

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

本代码已在Basys3开发板验证,开发板如下,其他开发板可以修改管脚适配:

basys3开发板.png

代码下载:洗衣机控制器Basys3开发板verilog倒计时名称:洗衣机控制器Basys3开发板verilog倒计时(代码在文末下载)软件:VIVADO语言:Verilog代码功能:vivado 洗衣机控制器的设计要求 1)具有启动、定时、暂停的功能,用按键控制 2)启动后洗衣机按正转20秒暂停10秒反转20秒暂停10秒的规律循环 3)定时可以设置洗衣机工作的时间;(有个按键进入定时模式,再有一个按键负责按键负责减,可以定时可以不定时,如果定时需要在开始按icon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=290

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,//100MHz
input key_add,//加按键,设置时间--BTL
input key_sub,//减按键,设置时间--BTR
input key_start,//启动按键--BTU
input key_stop,//暂停按键,按下高电平--BTD
input key_reset,//复位按键--BTC
output D1,//正转
output D2,//反转
output D3,//暂停
output end_led,//结束指示灯
output stop_led,
output [3:0] bit_select,//数码管位选
output [7:0] seg_select//数码管段选
);
wire clk_1Hz;
wire clk_1K;
wire [7:0] time_data;//剩余时间
wire [7:0] led_time;//正计时时间
//100M分频到1K
div_to_1K i_div_to_1K(
. clk(clk),//100MHz
. 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_stop(key_stop),//暂停按键,按下高电平
. key_start(key_start),//启动按键,按下高电平
. key_reset(key_reset),//复位按键,按下高电平
. end_led(end_led),
. stop_led(stop_led),
. D1(D1),//正转
. D2(D2),//反转
. D3(D3),//暂停
. led_time(led_time),
. time_data(time_data)//剩余时间
);
//显示模块
display i_display
(
. clk(clk_1K),
. led_time(led_time),//正计时时间
. time_data(time_data),//剩余时间
. bit_select(bit_select),//数码管位选
. seg_select(seg_select)//数码管段选
);
endmodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值