- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告
学 院: 大数据与信息工程学院
专 业: 电 子 与 通 信 工 程
学 号: 2015021718
学生姓名: 杨 鹏 举
指导教师: 李 良 荣
2016 年 5 月 24
目录
一、 实验题目
自动洗衣机设计
二、 实验目的
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,
文档评论(0)