北邮数电简易洗衣机控制器(动画)解析.docVIP

北邮数电简易洗衣机控制器(动画)解析.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字电路综合实验报告 学院:信息与通信工程 专业:信息工程 班级:2013211125 基于CPDL的简易洗衣机控制器的设计与实现 一:设计课题的任务要求 基本要求: 1、 洗衣机的工作步骤为洗涤、漂洗和脱水三个过程,工作时间分别为:洗涤 30秒(进水5秒,洗衣15秒,排水 5秒,甩干 5秒),漂洗 25秒(进水 5秒,漂洗 10秒,排水5秒,甩干 5秒),脱水 15秒(排水5秒,甩干 10秒); 2、 用一个按键实现洗衣程序的手动选择:A、单洗涤;B、单漂洗;C、单脱D、漂洗和脱水;E、洗涤、漂洗和脱水全过程; 3、 用发光二极管显示洗衣机的工作状态(洗衣、漂洗和脱水),并倒计时显示每个状态的工作时间,全部过程结束后,应有声音提示使用者,并保持在停止状态,直至再次开始; 4、 用点阵动画显示洗衣机工作过程中进水、波轮或滚筒转动、排水和甩干等的工作情 况,四种工作情况的动画显示要有区别且尽可能的形象。 5、 用一个按键实现暂停洗衣和继续洗衣的控制,暂停后继续洗衣应回到暂停之前保留的状态; 提高要求: 1、 三个过程的时间有多个选项供使用者选择。 2、 可以预约洗衣时间。 3、 自拟其它功能。 二:系统设计 (一)设计思路 本题目较复杂的地方是状态太多,而且状态中还嵌套着状态,于是我选择了分模块写代码然后顶层用原件图连接起来的设计方法。根据实验要求,首先要通过一个经过防抖按键来实现模式的选择,这里我通过记录输入时钟上升沿的个数来选择好不同的模式,同时设置好不同模式对应的总时间,状态转移时间,LED初始值等。然后在检测到确定按键产生的信号后,将这些选择好的信息传入到中心控制器中。在中心控制器中由开始/暂停键来控制程序的进行,在开始状态下,时间会递减,并可以判断是否进行状态转换而转换到下一个状态(洗涤,漂洗,脱水),同时将变化的时间传入到时间处理模块和动画转换模块,前者将输入的时间提取成个位和十位,然后输出到数码管控制模块进行显示。后者通过与选择模式的结合,可以决定当前模式与时间对应的动画,将决定动画的代码传入到动画模块,即可以通过点阵显示不同的动画。当时间减少到0时,中心控制器还会输出一个蜂鸣器报警的信号来控制报警。所有进程执行完毕后,各项数据会进行清零返回,等待下一次的使用。由上面的设计思路可以总结出一共有以下的模块: 分频模块、防抖模块、按键(模式选择,确定,开始/暂停)模块、中心控制模块、时间处理模块、数码管显示模块、数码管选通模块、动画控制模块、动画显示模块、报警模块。在下文中有对每个模块的功能介绍,代码分析以及仿真波形的分析。 (二)总体框图 上文所述的各种模块之间的连接如图所示: 说明:其中动画模块,数码管模块等还可以细分,在下文中也有着详细的介绍以及相关代码和仿真分析。 (三)状态转移图 由于洗衣的五种模式之间存在着相互的联系,我们可以用状态转移图来表示这五种状态在选择时的转换关系: 说明:001:单洗涤 010:单漂洗 100:单脱水 110:漂洗+脱水 111:洗涤+漂洗+脱水 000:结束 控制流程图 否 是 否 是 否 否 是 是 否 是 三:分块设计代码及仿真分析 (一)分频模块 1:模块功能 此模块对外部输入的25MHZ时钟进行三级分频。第一级分为600HZ,用于点阵和数码管的扫描,第二级为100HZ,用于防抖模块的输入信号,第三级为1HZ,用于时间控制和动画控制。 2:代码分析(以三级分频为例子) library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity div is port( clk:in std_logic; --输100HZ时钟 clkout:out std_logic --分频后的1HZ时钟

文档评论(0)

美洲行 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档