基于cyclone3 FPGA设计的智能洗衣机控制器课设报告文档+quartus9.1工程源码文件,可以做为你的学习设计参考。
1.课程设计名称及开发环境
题 目:智能洗衣机控制器的设计;
开发环境:本课设是基于DE0的板子,使用Verilog HDL开发的。
2.参考设计内容与要求
① 设计一个智能洗衣机控制器,能够实现洗衣,漂洗和脱水的功能。
②要求能够使用按键模拟对洗衣机的控制,能够设置工作模式,为了便于观察,将洗衣机设定的工作模式(1~5)和整个过程所剩的工作时间用数码管显示出来(时间分辨率为1分钟),能够将洗衣机当前所处的状态(注水,洗衣,排水,甩干)用发光管或者数码管显示出来。
【模式1】: 洗衣模式--强力洗( 洗衣30分钟)
【模式2】 :洗衣模式--普通洗 (洗衣20分钟)
【模式3】 :洗衣模式--轻柔洗(洗衣10分钟)
【模式4】 :漂洗模式
【模式5】 :甩干模式
注:在以上5个模式中,每次注水1分钟,漂洗5分钟,排水1分钟,甩干1分钟,模式1~3的洗衣时间如上所示,具体的洗衣步骤如下:
【模式1~3】:注水->洗衣->排水->甩干->注水->漂洗->排水->甩干
->注水->漂洗->排水->甩干。
【模式4】:注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
【模式5】:甩干。
【要求】:实现逻辑控制过程,可以选择性的加入注水口无水报警等人性化的状态提示,操作完毕使用蜂鸣器鸣叫两秒提示。
③ 画出洗衣机控制器的状态机,写出状态编码方案。
④ 用Verilog语言对设计进行描述,设计一个测试方案,并能够下载到实验板上调试成功。
// 顶层模块
module init(cp_50,cp_502,BUTTON,key_0,key_1,key_2,key_3,key_4,key_5,key_6,LEDG,led0,led1,led2,led3,VGA_HS,VGA_VS,VGA_R,VGA_G,VGA_B);
input cp_50,cp_502;
input [2:0] BUTTON;
input key_0,key_1,key_2,key_3,key_4,key_5,key_6;
output [9:0] LEDG;
output [7:0] led0, led1,led2,led3;
output VGA_HS; // VGA H_SYNC
output VGA_VS; // VGA V_SYNC
output [3:0] VGA_R; // VGA Red[3:0]
output [3:0] VGA_G; // VGA Green[3:0]
output [3:0] VGA_B; // VGA Blue[3:0]
reg [7:0]TIME;
reg [9:0]LEDG;
wire [3:0]flag;
wire out0;
always @(posedge cp_50)
begin
case (flag)
4'b0001: LEDG[9:0]<=10'b0000000001;
4'b0010: LEDG[9:0]<=10'b0000000011;
4'b0011: LEDG[9:0]<=10'b0000000111;
4'b0100: LEDG[9:0]<=10'b0000001111;
4'b0101: LEDG[9:0]<=10'b0000011111;
4'b0110: LEDG[9:0]<=10'b0000111111;
4'b0111: LEDG[9:0]<=10'b0001111111;
4'b1000: LEDG[9:0]<=10'b0011111111;
4'b1001: LEDG[9:0]<=10'b0111111111;
4'b1010: LEDG[9:0]<=10'b1111111111;
4'b1011: LEDG[9:0]<=10'b0111111111;
4'b1100: LEDG[9:0]<=10'b0011111111;
4'b1101: LEDG[9:0]<=10'b0001111111;
4'b1110: LEDG[9:0]<=10'b0000111111;
4'b1111: LEDG[9:0]<=10'b0000011111;
default: LEDG[9:0]<=10'b0000001111;