Verilog电子课程设计-洗衣机控制器fpga设计实现文档+quartus9.1工程源码文件,可以做为你的学习设计参考。
一、课程设计名称
智能洗衣机控制器的设计
二、设计内容与要求
① 设计一个智能洗衣机控制器,能够实现洗衣,漂洗和脱水的功能。
②要求能够使用按键模拟对洗衣机的控制,能够设置工作模式,为了便于观察,将洗衣机设定的工作模式(1~5)和整个过程所剩的工作时间用数码管显示出来(时间分辨率为1分钟),能够将洗衣机当前所处的状态(注水,洗衣,排水,甩干)用发光管或者数码管显示出来。
【模式1】 :洗衣模式--强力洗( 洗衣30分钟)
【模式2】 :洗衣模式--普通洗(洗衣20分钟)
【模式3】 :洗衣模式--轻柔洗(洗衣10分钟)
【模式4】 :漂洗模式
【模式5】 :甩干模式
注:在以上5个模式中,每次注水1分钟,漂洗5分钟,排水1分钟,甩干1分钟,模式1~3的洗衣时间如上所示,具体的洗衣步骤如下:
【模式1~3】:注水->洗衣->排水->甩干->注水->漂洗->排水->甩干
->注水->漂洗->排水->甩干。
【模式4】:注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
【模式5】:甩干。
【要求】:实现逻辑控制过程,可以选择性的加入注水口无水报警等人性化的状态提示,操作完毕使用蜂鸣器鸣叫两秒提示。
③ 画出洗衣机控制器的状态机,写出状态编码方案。
④ 用Verilog语言对设计进行描述,设计一个测试方案,并能够下载到实验板上调试成功。
3.输入输出设计(按键,数码管,LCD,键盘,蜂鸣器)
(1)输出显示部分:
A.LCD显示屏(拓展):用于显示洗衣机出于何种工作模式,采用的型号为1602显示屏,4位数据输入,接5V供电电源。
模块: lcd lcd(R, clk, LCD_E, LCD_RW, LCD_RS, SF_D);
lcd_pre lcd_pre(clk, state_dis, R);
显示内容: 7'b1100000: R <= " Strong "; 强力洗
7'b1000000: R <= " Middle "; 普通洗
7'b0100000: R <= " Soft "; 轻柔洗
7'b0010000: R <= " Add "; 注水
7'b0001000: R <= " Potch "; 漂洗
7'b0000100: R <= " Drain "; 排水
7'b0000010: R <= " Dry "; 甩干
7'b0000001: R <= " Finish "; 完成
default R <= " Welcome "; 初始状态
B.数码管:用于显示剩余时间,使用开发板自带的4个数码管。将四位时间分别写入四个数码管中。
(2)输入控制部分:
拨码开关(8个键):5个键控制5种模式,复位键(reset1)个,时间速度控制键1个,无水警报键1个;
模块:
Module act(clk1,clk2,clk_sel,clr,sel,warn,state_dis,dis_ts1,dis_ts2,dis_tm1,dis_tm2,LEDW);
4.核心运算模块
(1)时序控制:
通过设置tm1,tm2,ts1,ts2四个变量,对每个状态进行计时,达到时序控制的作用。
B.状态转换: