/洗衣机控制器的设计
//A) 设计一个电子定时器,定时时间为99秒,控制洗衣机作如下运转:
//启动→正转 20 秒→暂停 10 秒→反转 20 秒→暂停 10 秒→定时时间未到回到“正转 20 秒→暂停 10 秒→……”,定时到则停止;
//B) 若定时到,则停机发出LED全亮作为指示信号;
//C) 用数码管显示洗涤的剩余时间(秒数),按倒计时方式对洗涤过程作计时显示,直到时间到,停机;洗涤过程由按下key按键开始;
//用LED分别表示“正转”、“暂停”、“反转”三个状态。
学习过程中的小项目,拿到项目后首先需要思考如何实现,最后才是写代码。
1、有按键,就要消抖 ,那么就要考虑信号;
2、计时99s, 需要一个计时器;
3、正转、暂停、反转需要状态机实现跳转;
4、led 灯亮,那么就需要关联数码管
5、还需要考虑数码管显示的数字应为十进制显示,所以需要转换成BCD码;
6、最后需要一个顶层文件,把以上的模块关联在一起即可实现;
module wash_machine (
input wire clk,
input wire rst,
input wire key,
output reg [6:0] T, //输