洗衣机控制器Verilog代码vivado ego1开发板

名称:洗衣机控制器Verilog代码vivado  ego1开发板

软件:vivado

语言:Verilog

代码功能:

洗衣机控制器

(1)设计一个洗衣机控制器,使洗衣机作如下运转:定时启动—〉正转20秒—〉暂停10秒—〉反转20秒—〉暂停10秒—〉定时不到,重复上面过程。

(2)若定时到,则停止,并发出提示信号。

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

(4)三只LED灯表示正转、反转、暂停三个状态。

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

ego1开发板.png

1. 工程文件

2. 程序文件

3. FPGA型号

4. 程序编译

5. Testbench

6. 仿真图

Washing_time是剩余时间倒计时,程序内预置时间15分钟倒计时,洗衣结束后end_led信号拉高,表示洗衣结束信号

Led[2:0] 是正转反转暂停信号,led[2]为正转,led[1]为暂停,led[0]为反转

数码管显示,首先把Washing_time转换为十位ten_wei和个位one_wei,然后分别扫描显示,

下图中十位=1,个位=5,1对应数码管码字为8'hf9,5对应数码管码字为8'h92,所以下图f9,92依次显示。

部分代码展示:

`timescale 1ns / 1ps
//testbench
module wash_machine_test();
reg        clk_in;//50Hz
reg        start_key;//启动按键
wire [2:0] led;//正转,反转,暂停
wire       end_led; //洗衣结束信号
wire [1:0] bit_select;//
wire [7:0] dig_led2;//数码管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
//产生时钟
always begin
clk_in=1;
#10;
clk_in=0;
#10;
end
endmodule
源代码

 扫描文章末尾的公众号二维码

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值