版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录一、目的2二、内容及要求21、设计的主要内容22、设计的主要要求3三、原理31基于状态机的控制电路设计32洗衣机控制器的工作原理3(1)洗衣机的工作状态3(2)全自动洗衣过程4(3)单独执行某个洗衣程序4(4)设计思路5四、步骤及仿真图7五、程序设计10(1)时钟分频模块···························
2、;·····························10(2)数码管显示11(3)定时器电路12。(4)预置时间和编码电路···············
3、··································13(5)时序电路13(6)译码器14六、心得体会14七、参考文献15一、目的 1 学习掌握全自动洗衣机的控制原理。2 掌握基于有限状态机的控制电路设计方法.二、内容及要求1、设计的主要内容:
4、设计一个全自动洗衣机控制器电路,实现对洗衣机的全自动控制。 根据全自动洗衣机的控制原理设计一个控制电路, 使之能够控制全自动洗衣机完成整个 工作过程。洗衣机工作过程分为两种情况: (1)全部自动完成 当按下复位按钮时,洗衣机上电,控制电路复位到初始状态(默认水位为“中”;使用 ) 者可根据衣服的多少,按下水位控制按钮,改变水位设置,以控制上水时加水的多少;当按 下启动/暂停按钮时,洗衣机开始洗衣的第一个操作:进水阀门打开,开始上水,并根据水 位设置(高、中、低、少)历时不同的时间timeadd(8s、7s、6s、5s) ;然后进水阀门关闭, 电机开始运转,开始洗衣过程,并历时 9s;然后电机停
5、止运转,排水阀门打开,开始排水, 并根据水位设置(高、中、低、少)历时不同的时间timedrain(7s、6s、5s、4s) ;然后排水 阀门关闭,进水阀门打开,开始第二次上水,并历时timeadd当甩干结束后,整个洗衣 过程完成,扬声器发出持续 15 秒的急促的“嘀嘀”音,提示用户洗衣结束。正常运行状态 下全自动洗衣机工作过程:空闲(idle)第一次加水(water1)7s洗衣(wash)9s第一次排水(drain1)6s第二 次加水(water2)7s漂洗(rinse)9s第二次排水(drain2)6s甩干(dry)5s蜂鸣 15s 。 洗衣机整个工作过程可分为 9 个状态,运用有限状态机
6、的设计思想来实现。 (2)人工干预在每个工作状态下,如果想要洗衣机暂停工作,可按下启动/暂停按钮,则洗衣机立刻 暂停当时的操作。比如,在第一次加水过程中,若按下启动/暂停按钮,则进水阀门立刻关 闭,暂停上水,计时暂停;当再次按下启动/暂停按钮,则进水阀门又打开,并继续计时, 直到加水满 timeadd 后,进入洗衣过程。 洗衣机功能设置: 打开洗衣机盖/合上洗衣机盖:当洗衣机在甩干过程中,若打开洗衣机盖,则洗衣机 应立即暂停工作,停止电机运转和排水;只有合上洗衣机盖,洗衣机才能继续工作。因此洗 衣机控制器有一个 open_door 输入信号,并根据此信号控制洗衣机的动作。 水位控制:有一个水位
7、控制按钮,逐次按动它,水位可以在高、中、低、少这 4 档 间切换,以控制上水时加水的多少。 洗衣模式选择:有一个洗衣模式选择按钮,在洗衣机上电后开始启动之前,按动此 按钮,可以选择洗衣机单独执行不同的洗衣程序:浸泡、洗涤、漂洗、脱水(甩干) ;若不 按此按钮,则默认全程自动执行浸泡、洗涤、漂洗、甩干这 4 个程序。2、设计的主要要求:(1)根据设计题目要求编写相应程序代码。(2)画出洗衣机控制器包括不同洗衣模式的完整的状态转移图。(3)对编写的VHDL程序代码进行编译和仿真。(4)总结设计内容。三、原理1 基于状态机的控制电路设计有限状态机(FSM,Finite State Machine)是
8、一种重要的时序逻辑电路单元,尤其适 合于设计数字系统的控制模块。 状态机可以认为是组合逻辑和寄存器逻辑的特殊组合, 它一 般包括两个部分:组合逻辑部分和寄存器部分。组合逻辑部分又包括次态逻辑和输出逻辑, 分别用于状态译码和产生输出信号; 寄存器部分用于存储状态。 状态机的次态是现态及输入 信号的函数,输出信号根据状态机的现态或输入信号而定。 根据输出信号产生方法的不同,状态机可分为两类:摩尔(Moore)型状态机和米里 (Mealy)型状态机。对于 Moore 型状态机,其输出只为状态机当前状态的函数,而与输入 无关。而对于 Mealy 型状态机,其输出不仅与状态机当前状态有关,而且与输入有关
9、。 实用的状态机一般都设计为同步时序电路,它在时钟信号的触发下,完成各状态之间 的转移,并产生相应的输出。 采用 Verilog HDL 语言实现基于状态机的控制电路设计, 就是在时钟信号的触发下, 完 成两项任务: (1)用 case 或 if-else 语句描述出状态的转移, (2)描述状态机的输出信号(通 常是控制信号) 。2 洗衣机控制器的工作原理(1)洗衣机的工作状态洗衣机有 9 个工作状态分别为:空闲(idle) 、第一次加水(water1) 、洗衣(wash) 、第 一次排水(drain1) 、第二次加水(water2) 、漂洗(rinse) 、第二次排水(drain2) 、甩干
10、(dry) 、 蜂鸣(beep) 。 (2)全自动洗衣过程最简单的操作是在洗衣机上电后(默认水位为“中”,通过水位控制按钮设置好合适的 ) 水位,然后按下start_pause启动/暂停按钮,使洗衣机全自动完成整个洗衣过程,此时洗衣机控制器状态转移图如图 1所示。 图1 洗衣机控制器状态转移图start_p ause rst idle m=0 , w=0 d=0 15s beep m=0,d=0 speaker water1 w=1 m=0 , 7s wash m=1 w=0 , 浸泡 9s 甩干 5s dry m=1,d=1 w=0 6s drain2 d=1 w=0, m=0 9s rin
11、se m=1 w=0,d=0 7s drain1 d=1 w=0, m=0 6s water2 w=1 m=0,d=0 洗涤 漂洗图 1 全自动洗衣机控制器的状态转移图 。 一旦按下 rst 按钮, 则电路复位到初始状态, 控制信号 m=0, w=0, d=0。 当按下 start_pause 启动/暂停按钮时,则进入 water1 状态,w = 1,使进水阀门打开,开始上水,并历时 7s。然 后转移到下一状态wash,w = 0,使进水阀门关闭;同时 m = 1,使电机开始运转,开始 洗衣过程,并历时 9s。再转移到下一状态drain1,直到当甩干结束后,整个洗衣过 程完成,扬声器发出持续
12、15 秒的急促的“嘀嘀”音,提示用户洗衣结束,控制器又返回到 初始状态。 (3)单独执行某个洗衣程序 但有时候,人们可能需要单独执行某个洗衣程序,如洗涤或脱水,这时可以在洗衣前通 过按动洗衣模式选择按钮来选择不同的洗衣程序。 在这种情况下, 洗衣机控制器的状态转移 图就会比图 1更复杂一些,下面加以详细说明。 首先在 idle 状态下,当按下启动/暂停按钮时,控制器要根据不同的洗衣模式跳转到不 同的状态:若默认是全自动洗衣程序或选择浸泡程序,则跳转到 water1;若选择洗涤程序, 则跳转到 wash;若选择漂洗程序,则跳转到 water2;若选择甩干,则跳转到 dry。而当洗衣机执行完相应的
13、洗衣程序后,则所有控制信号、计时器应清零,同时控制器应 返回初始状态。因此,在 water1 状态下,当加好水时控制器不是直接跳转到 wash,而是要 先判断洗衣模式是否为浸泡程序,若是,则跳转到 idle;若不是,才直接跳转到 wash。同 理,在 drain1 状态下,当排完水时控制器不是直接跳转到 water2,而是要先判断洗衣模式是 否为洗涤程序,若是,则跳转到 idle;若不是,才直接跳转到 water2。在 drain2 状态下,当 排完水时控制器不是直接跳转到 dry,而是要先判断洗衣模式是否为漂洗程序,若是,则跳 转到 idle;若不是,才直接跳转到 dry。(4)设计思路洗衣
14、机控制器系统结构图如图 2所示,将整个设计划分为两个子模块:时钟分频子模 块和洗衣机状态控制器子模块。 图2 洗衣机控制器系统结构图(1)时钟分频子模块 clkdiv.v将系统时钟 50MHz 分频为 1KHz, 再将 1KHz 分频为 1Hz, 以产生洗衣结束时的提示蜂 鸣音 speaker=clk_1Hz&clk_1KHz&alarm(每间隔 1s 产生一个音频为 1KHz 的提示音) 。 1Hz 的时钟信号还作为洗衣机状态控制器子模块的输入时钟信号,驱动洗衣定时器计 数。(2)洗衣机状态控制器子模块 wash_ctrl.v 设计时,首先应画出状态转移图并仔细分析,明确在每
15、个状态下控制器要输出哪些控 制信号,计数器该怎样计数;当希望洗衣机暂停时,所有控制信号应都变为 0,计数器暂停 计数。当计数器正常计数到预定值时,应跳转到下一状态。然后用 case 语句、if-else 语句对 状态转移和输出进行描述。 信号定义: input clk_1KHz, clk_1Hz, rst, start_pause, mode, level, open_door; /* start_pause:启动/暂停按钮信号,高有效; mode:洗衣模式选择信号,高有效。不按时,默认全程 执行浸泡、洗涤、漂洗、甩干这 4 个程序;每按一下,单独选 择浸泡,或洗涤,或漂洗,或甩干程序。 le
16、vel:水位控制信号(负脉冲) ,每按一下,循环选择水 位(高、中、低、少) ; open_door: 洗衣机盖打开信号 (负脉冲) 第一次按是 , “开 盖” ,再按一次则是合盖。 * */ output W, M, D; /W 是进水阀门控制信号,M 是引擎工作信号,D 是放水阀门 控制信号 output3:0 times; /定时计数器,用于洗衣各过程的定时计数 output speaker; /洗衣结束提示音信号,驱动扬声器发声 output3:0 nextstate; /状态机,描述洗衣机的状态转移过程 为方便设计,这里还定义了一些中间变量: reg3:0 modestate; /洗
17、衣模式计数器,0:默认全自动洗程序,1:只执行浸泡程序,2: 只执行洗涤程序,3:只执行漂洗程序,4:只执行甩干程序。根据其值决定控制器从 idle 状态应跳转到哪一状态。 reg3:0 waterlevel;/水位计数器,用来控制加水时间,当水位为高、中、低、少时其 值为 0、1、2、3。 reg3:0 timeadd; /加水时间计数器, 根据水位选择控制加水时间, 当水位为高、 中、 低、少时其值为 8s、7s、6s、5s。 reg3:0 timedrain; /排水时间计数器,根据水位选择控制排水时间,当水位为高、中、 低、少时其值为 7s、6s、5s、4s; reg doorstat
18、e; /洗衣机盖的状态,为“1”表示盖是打开的,为“0”表示盖是合 上的。 reg start_pause_level;/将启动/暂停脉冲信号转换为相应的高低电平信号。 reg alarm; /蜂鸣状态信号,蜂鸣时 alarm 为“1” ,平时为“0” 整个模块包括 8 大部分: 5 / 用 parameter 常量定义状态机的状态,洗衣、漂洗、甩干和蜂鸣的时间长度 / 将启动/暂停脉冲信号转换为高低电平信号 always(posedge start_pause or posedge rst) / 洗衣模式选择(对 modestate 赋值) always(posedge rst or pos
19、edge mode) / 水位控制(对 waterlevel 赋值) always(posedge rst or negedge level) /复位时默认水位为“中” / open_door 信号控制 always(posedge rst or negedge open_door) / 根据水位选择控制加水时间和排水时间 always(posedge clk_1KHz) begin case(waterlevel) endcase end / 状态机输出及状态转移 always(posedge clk_1Hz or posedge rst) begin if(rst) /控制信号清零,计数器
20、清零,状态机回到空闲状态 else begin case(nextstate) idle: /(1)空闲状态 /根据 modestate 的值判断应跳转到哪个状态 water1 : /(2)第一次加水 begin if(!start_pause_level) begin end /暂停操作 else begin if(times<timeadd-1) begin end /若未加好水,则一直加水 else begin end /否则根据 modestate 是否为 4'd1 判断应跳转到空闲态或下一个状态 end end wash: /(3)洗衣 6 drain1: /(4)第一
21、次排水 /若未排完水,则一直排水 /否则根据 modestate 是否为 4'd2 判断应跳转到空闲态或下一个状态 water2: /(5)第二次加水 rinse: /(6)漂洗 drain2: /(7)第二次排水 /若未排完水,则一直排水 /否则根据 modestate 是否为 4'd3 判断应跳转到空闲态或下一个状态 dry: /(8)甩干 beep: /(9)蜂鸣 endcase end end / speaker 信号输出 assign speaker=clk_1Hz&clk_1KHz&alarm;四、步骤及仿真图(1)在上面的代码提示 框架中完成核心子
22、模块wash_ctrl.v的设计。 (2)对核心子模块 wash_ctrl.v 进行时序仿真。 仿真全程自动顺序执行浸泡、洗涤、漂洗、甩干这 4 个程序 当rst信号来到时,所有的信号置零;当start_pause信号有效时,进入加水状态;只要不 再按下start_pause按钮,洗衣机将按照预定的时序自动完成洗衣的全过程。如图3所示。 图3 洗衣过程全部自动完成的仿真图 仿真人工干预洗衣过程 在洗衣过程全部自动完成后,再分别给rst和start_pause一个正脉冲,模拟一次新的洗衣 过程。在洗衣状态(wash)下,第二次按下start_pause按钮,则M从“1”变为“0” ,洗衣机 暂停
23、操作;稍后第三次按下start_pause按钮时,则M从“0”变为“1” ,洗衣机继续操作。如 图4所示。 图4 人工干预洗衣过程的仿真图 仿真选择洗衣模式在人工干预洗衣过程结束后,再给rst一个正脉冲,模拟一次新的洗衣过程。当第一次 按下mode按钮时,洗衣机进入浸泡程序操作;第二次按下mode按钮时,洗衣机进入洗涤程 序。当然,若依次按下mode按钮时,洗衣机会依次进入漂洗、甩干程序(后两个程序限于 篇幅不作图解) 。如图 5所示。仔细观察modestate和nextstate的变化。 图5 选择洗衣模式的仿真图 仿真进行水位控制 在上述洗衣过程结束后,再给 rst 一个正脉冲,模拟一次新
24、的洗衣过程。先给 level 一 个负脉冲,设置水位为低,再启动;到第二次加水期间,给 level 一个负脉冲,设置水位为 少。观察洗衣和漂洗过程中的加水时间和排水时间是否分别与设置的水位相一致。 图6 设置水位分别为低和少时的仿真图 仿真在甩干过程中,打开洗衣机盖的现象 图7 在甩干过程中,先后打开和合上洗衣机盖时的仿真图(3)设计顶层图形文件(如图 8所示) ,编译。 注意这里用未消抖按键 9、按键 10(低有效) ,作为水位控制信号 level_n 与洗衣机盖打 开信号 open_door_n 的控制键,因此还需要增加按钮消抖模块。 图8 顶层图形文件wash_top.bdt(4)进行引
25、脚锁定。 输入信号: clk(f=50MHz)接 Pin28; rst 接键 1(Pin233) ;start_pause 接键 4(Pin236) ;mode 接键 7(Pin239) ; level_n:水位控制信号,负脉冲有效,接键 9(Pin132) ; open_door_n:洗衣机盖打开信号,负脉冲有效,接键 10(Pin128) 。 输出信号: W 接发光二极管 D8(Pin168) ;M 接 D7(Pin167) 接 D6(Pin166) ;D ; times 3.0: 当前状态工作时间, 接数码管 1, 从高位到低位分别接 Pin16、 Pin15、 Pin14、 Pin13
26、; nextstate3.0:当前工作状态,接数码管 2,从高位到低位分别接 Pin20、Pin19、Pin18、 Pin17; modestate3.0: 所选洗衣模式, 接数码管 7, 从高位到低位分别接 Pin140、 Pin139、 Pin138、 Pin137; 10 waterlevel3.0:当前水位档位,接数码管 8,从高位到低位分别接 Pin160、Pin159、 Pin158、Pin141; speaker 接 Pin174。 五、 程序设计(1)时钟分频模块(2) 数码管显示(3)定时器电路 end(4)预置时间和编码电路(5)时序电路(6)译码器六、心得体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.从选题到定稿,从理论到实践,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防安全演练脚本
- 退休员工欢送会
- 2025版脑膜炎症状认知及护理指南
- 手术前后护理评估
- 2025版感冒常见症状及护理要点
- 音乐基础理论介绍
- 乐高大颗粒飞行员训练器设计方案
- 护网行动笔试题目及答案
- 2025年岐黄天使中医课后试题及答案
- 护理考试题库及答案软件
- 绝缘电阻和接地电阻的测量实验
- 《食品经营许可证》申请报告书空白模板
- Unit2Extendedreading知识点课件-高中英语牛津译林版(2020)选择性必修第一册
- 生产过程质量改善计划
- 绿萝养殖幻灯片
- 股票基础学习实战篇
- 国际金融课件(完整版)
- 暨南大学引进人才聘任合同
- 统编版高中语文必修上册第二单元4《喜看稻菽千重浪》《心有一团火温暖众人心》《探界者钟杨》同步练习【含答案】
- 原材料进场监理验收细则范文
- 服装生产管理培训课程PPT课件
评论
0/150
提交评论