全自动洗衣机的设计verilog程序.docVIP

  • 4
  • 0
  • 约1.36万字
  • 约 17页
  • 2019-12-11 发布于上海
  • 举报
实验报告 学 院: 大数据与信息工程学院 专 业: 电子与通信工程 学 号: 2015021718 学生姓名: 杨 鹏 举 指导教师: 李 良 荣 2016 年 5 月 24 目录 TOC \o 1-3 \h \z \u 一、 实验题目 3 二、 实验目的 3 三、 实验要求 3 四、 洗衣机工作原理与功能说明 3 状态图如下 4 程序RTL视图如下 4 五、详细代码如下 5 模块一实现洗衣机状态转换和各状态输出控制 5 模块二实现复位信号的异步复位同步释放 11 模块三实现当前状态的数码管显示 12 模块四实现按键检测 13 模块五实现顶层的调用 15 实验题目 自动洗衣机设计 实验目的 1、熟练掌握Quartus II 工程文件的建立过程。 2、掌握Verilog的基本语法、语句、模块的使用。 3、了解模块的建立与使用。 4、了解FPGA的开发基本流程。 实验要求 1、初始状态,准备启动。 2、开始进水;为防止进水过程出现故障,故不用定时器控制,而是手动给一个信号模拟水位检测传感器,表示进水完成。 3、开始洗涤:正反洗涤4次开始排水。 4、排水后立即脱水。 5、洗涤之后漂洗2次,每次漂洗过后都排水甩干。 6、整个过程全部用数码管来显示状态机状态,并用两个led灯表示电机的正转与反转状态。 洗衣机工作原理与功能说明 自动洗衣机的工作原理:洗衣机有7个工作状态分别为空闲(idle)、加水(water)、洗衣(wash)、排水(drain)、甩干(dry)、漂洗(rinse)、结束音乐提示(music)。一次完整的洗涤,进水3次、洗涤1次、漂洗两次、排水3次、甩干3次。一次完整的状态转换为:空闲(idle)、加水(water)、洗衣(wash)、排水(drain)、甩干(dry)、加水(water)、漂洗(rinse)、排水(drain)、甩干(dry)、加水(water)、漂洗(rinse)、排水(drain)、甩干(dry)、结束音乐提示(music)。 程序功能说明:程序有4个输入start启动信号、water_test水满检测信号,水满了就置一、drain_test排水检测,水排完了就置一、emergency紧急停止信号,任何情况下输入都进入idle状态,即停止工作。一开上电过后系统处于空闲状态,当输入信号start后进入加水状态,水满过后进入浸泡状态,浸泡完毕进入洗衣状态,洗衣完毕进入排水状态,第一次排水完毕进入甩干状态,第一次甩干完成进入加水状态,第二次加水完成后进入第一次漂洗状态,第一次漂洗完毕进入第二次排水状态,排水完毕进入第二次甩干状态,第二次甩干完毕进入第三次加水状态,再进入第二次漂洗状态,第三次排水状态,第三次甩干状态,进入结束音乐提醒状态,回到空闲状态。洗衣服和漂洗为洗衣电机的低速档位,在排水过程中将电机档位变为高档位。当甩干完毕变到其他状态时,就把电机档位变到低档位。洗涤和漂洗时,电机正转和反转之间有3秒钟的延时(即让电机自动减速,不至于电机突然反转时负荷太大烧毁电机)。 状态图如下 程序RTL视图如下 4个输入由外部按键输入,经过模块key按键消抖确定按键是否被按下。按键输入到模块washer作为一些状态转换的条件。washer的状态输出到数码管显示模块segmain显示系统当前处于什么状态。 系统有4个输出clockwise正转信号0表示转,1表示不转、 anticlockwise反转信号0表示转,1表示不转、finish结束信号0表示结束,1表示未结束、cstate表示当前状态。经调试实现了想要的功能。 五、详细代码如下 模块一实现洗衣机状态转换和各状态输出控制 // //用1段式状态机,分成3段来写 // module washer( clk, rst_n, start, water_test, //水满信号 drain_test, //排水检测 emergency, //紧急情况处理 clockwise, //正转信号 anticlockwise, //反转信号 finish, //结束信号 level, //档位显示 0为高档位 1为低档位 cstate //用于显示处于哪个状态 ); parameter idle = 0, inwater = 1, steep = 2, //浸泡 wash = 3, //洗涤 drain = 4, //排水

文档评论(0)

1亿VIP精品文档

相关文档