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

洗衣机控制器Basys2开发板verilog电子定时器倒计时

05/23 13:07
666
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1-231106225534T3.doc

共1个文件

名称:洗衣机控制器Basys2开发板verilog电子定时器倒计时(代码在文末下载)

软件:ISE

语言:Verilog

代码功能:

洗衣机控制器设计要求

(1)设计一个电子定时器,控制洗衣机做如下运转:定时启动→正转25s→暂停5s→反转25s→暂停。如果定时未到,则回到“正转25s→暂停5S→…,定时到则停止。

(2)若定时到,则停机发出音响信号。

(3)用两个数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直到时间计时结束;洗涤过程由“开始”信号开始。

(4)3只LED灯表示“正转”、“反转”、“暂停“等3个状态。

教学提示

(1)设计20s、10s定时电路

(2)电路输出为“正转”、“反转”、“暂停“等3个状态。

(3)按照设计要求,用定时器的"时间到”信号启动相应的下一个定时器工作,直到整个过程结束。

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

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

basys2.png

演示视频:

设计文档:

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,//加按键,设置时间
input key_sub,//减按键,设置时间
input key_start,//启动按键
input key_reset,//复位按键
output D1,//正转
output D2,//反转
output D3,//暂停
output end_led,//结束指示灯
output [7:0] SEG,//数码管段选
output [1:0] SEL//数码管位选
);
wire clk_1Hz;
wire clk_1K;
wire [7:0] time_data;//剩余时间
//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),//复位按键,按下高电平
. end_led(end_led),
. D1(D1),//正转
. D2(D2),//反转
. D3(D3),//暂停
. time_data(time_data)//剩余时间
);
display i_display(
. clk_1K(clk_1K),//1000Hz
. time_data(time_data),//剩余时间
. SEG(SEG),//数码管段选
. SEL(SEL)//数码管位选
);
endmodule

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

  • 1-231106225534T3.doc
    下载

相关推荐