VHDL语言的洗衣机控制器设计---复习过程.doc
《VHDL语言的洗衣机控制器设计---复习过程.doc》由会员分享,可在线阅读,更多相关《VHDL语言的洗衣机控制器设计---复习过程.doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。VHDL语言的洗衣机控制器设计-目录一、目的2二、内容及要求21、设计的主要内容22、设计的主要要求3三、原理31基于状态机的控制电路设计32洗衣机控制器的工作原理3(1)洗衣机的工作状态3(2)全自动洗衣过程4(3)单独执行某个洗衣程序4(4)设计思路5四、步骤及仿真图7五、程序设计10(1)时钟分频模块10(2)数码管显示11(3)定时器电路12。(4)预置时间和编码电路13(5)时序电路13(6)译码器14六、心得体会14七、参考文献15一、目的1学习掌握全自动洗衣机的控制原理。2掌握基于有限状态
2、机的控制电路设计方法.二、内容及要求1、设计的主要内容:设计一个全自动洗衣机控制器电路,实现对洗衣机的全自动控制。根据全自动洗衣机的控制原理设计一个控制电路,使之能够控制全自动洗衣机完成整个工作过程。洗衣机工作过程分为两种情况:(1)全部自动完成当按下复位按钮时,洗衣机上电,控制电路复位到初始状态(默认水位为“中”;使用)者可根据衣服的多少,按下水位控制按钮,改变水位设置,以控制上水时加水的多少;当按下启动/暂停按钮时,洗衣机开始洗衣的第一个操作:进水阀门打开,开始上水,并根据水位设置(高、中、低、少)历时不同的时间timeadd(8s、7s、6s、5s);然后进水阀门关闭,电机开始运转,开始
3、洗衣过程,并历时9s;然后电机停止运转,排水阀门打开,开始排水,并根据水位设置(高、中、低、少)历时不同的时间timedrain(7s、6s、5s、4s);然后排水阀门关闭,进水阀门打开,开始第二次上水,并历时timeadd当甩干结束后,整个洗衣过程完成,扬声器发出持续15秒的急促的“嘀嘀”音,提示用户洗衣结束。正常运行状态下全自动洗衣机工作过程:空闲(idle)第一次加水(water1)7s洗衣(wash)9s第一次排水(drain1)6s第二次加水(water2)7s漂洗(rinse)9s第二次排水(drain2)6s甩干(dry)5s蜂鸣15s。洗衣机整个工作过程可分为9个状态,运用有限
4、状态机的设计思想来实现。(2)人工干预在每个工作状态下,如果想要洗衣机暂停工作,可按下启动/暂停按钮,则洗衣机立刻暂停当时的操作。比如,在第一次加水过程中,若按下启动/暂停按钮,则进水阀门立刻关闭,暂停上水,计时暂停;当再次按下启动/暂停按钮,则进水阀门又打开,并继续计时,直到加水满timeadd后,进入洗衣过程。洗衣机功能设置:打开洗衣机盖/合上洗衣机盖:当洗衣机在甩干过程中,若打开洗衣机盖,则洗衣机应立即暂停工作,停止电机运转和排水;只有合上洗衣机盖,洗衣机才能继续工作。因此洗衣机控制器有一个open_door输入信号,并根据此信号控制洗衣机的动作。水位控制:有一个水位控制按钮,逐次按动它
5、,水位可以在高、中、低、少这4档间切换,以控制上水时加水的多少。洗衣模式选择:有一个洗衣模式选择按钮,在洗衣机上电后开始启动之前,按动此按钮,可以选择洗衣机单独执行不同的洗衣程序:浸泡、洗涤、漂洗、脱水(甩干);若不按此按钮,则默认全程自动执行浸泡、洗涤、漂洗、甩干这4个程序。2、设计的主要要求:(1)根据设计题目要求编写相应程序代码。(2)画出洗衣机控制器包括不同洗衣模式的完整的状态转移图。(3)对编写的VHDL程序代码进行编译和仿真。(4)总结设计内容。三、原理1基于状态机的控制电路设计有限状态机(FSM,FiniteStateMachine)是一种重要的时序逻辑电路单元,尤其适合于设计数
6、字系统的控制模块。状态机可以认为是组合逻辑和寄存器逻辑的特殊组合,它一般包括两个部分:组合逻辑部分和寄存器部分。组合逻辑部分又包括次态逻辑和输出逻辑,分别用于状态译码和产生输出信号;寄存器部分用于存储状态。状态机的次态是现态及输入信号的函数,输出信号根据状态机的现态或输入信号而定。根据输出信号产生方法的不同,状态机可分为两类:摩尔(Moore)型状态机和米里(Mealy)型状态机。对于Moore型状态机,其输出只为状态机当前状态的函数,而与输入无关。而对于Mealy型状态机,其输出不仅与状态机当前状态有关,而且与输入有关。实用的状态机一般都设计为同步时序电路,它在时钟信号的触发下,完成各状态之
7、间的转移,并产生相应的输出。采用VerilogHDL语言实现基于状态机的控制电路设计,就是在时钟信号的触发下,完成两项任务:(1)用case或if-else语句描述出状态的转移,(2)描述状态机的输出信号(通常是控制信号)。2洗衣机控制器的工作原理(1)洗衣机的工作状态洗衣机有9个工作状态分别为:空闲(idle)、第一次加水(water1)、洗衣(wash)、第一次排水(drain1)、第二次加水(water2)、漂洗(rinse)、第二次排水(drain2)、甩干(dry)、蜂鸣(beep)。(2)全自动洗衣过程最简单的操作是在洗衣机上电后(默认水位为“中”,通过水位控制按钮设置好合适的)水
8、位,然后按下start_pause启动/暂停按钮,使洗衣机全自动完成整个洗衣过程,此时洗衣机控制器状态转移图如图1所示。图1洗衣机控制器状态转移图start_pauserstidlem=0,w=0d=015sbeepm=0,d=0speakerwater1w=1m=0,7swashm=1w=0,浸泡9s甩干5sdrym=1,d=1w=06sdrain2d=1w=0,m=09srinsem=1w=0,d=07sdrain1d=1w=0,m=06swater2w=1m=0,d=0洗涤漂洗图1全自动洗衣机控制器的状态转移图。一旦按下rst按钮,则电路复位到初始状态,控制信号m=0,w=0,d=0。当
9、按下start_pause启动/暂停按钮时,则进入water1状态,w=1,使进水阀门打开,开始上水,并历时7s。然后转移到下一状态wash,w=0,使进水阀门关闭;同时m=1,使电机开始运转,开始洗衣过程,并历时9s。再转移到下一状态drain1,直到当甩干结束后,整个洗衣过程完成,扬声器发出持续15秒的急促的“嘀嘀”音,提示用户洗衣结束,控制器又返回到初始状态。(3)单独执行某个洗衣程序但有时候,人们可能需要单独执行某个洗衣程序,如洗涤或脱水,这时可以在洗衣前通过按动洗衣模式选择按钮来选择不同的洗衣程序。在这种情况下,洗衣机控制器的状态转移图就会比图1更复杂一些,下面加以详细说明。首先在i
10、dle状态下,当按下启动/暂停按钮时,控制器要根据不同的洗衣模式跳转到不同的状态:若默认是全自动洗衣程序或选择浸泡程序,则跳转到water1;若选择洗涤程序,则跳转到wash;若选择漂洗程序,则跳转到water2;若选择甩干,则跳转到dry。而当洗衣机执行完相应的洗衣程序后,则所有控制信号、计时器应清零,同时控制器应返回初始状态。因此,在water1状态下,当加好水时控制器不是直接跳转到wash,而是要先判断洗衣模式是否为浸泡程序,若是,则跳转到idle;若不是,才直接跳转到wash。同理,在drain1状态下,当排完水时控制器不是直接跳转到water2,而是要先判断洗衣模式是否为洗涤程序,若
11、是,则跳转到idle;若不是,才直接跳转到water2。在drain2状态下,当排完水时控制器不是直接跳转到dry,而是要先判断洗衣模式是否为漂洗程序,若是,则跳转到idle;若不是,才直接跳转到dry。(4)设计思路洗衣机控制器系统结构图如图2所示,将整个设计划分为两个子模块:时钟分频子模块和洗衣机状态控制器子模块。图2洗衣机控制器系统结构图(1)时钟分频子模块clkdiv.v将系统时钟50MHz分频为1KHz,再将1KHz分频为1Hz,以产生洗衣结束时的提示蜂鸣音speaker=clk_1Hz&clk_1KHz&alarm(每间隔1s产生一个音频为1KHz的提示音)。1Hz的时钟信号还作为
12、洗衣机状态控制器子模块的输入时钟信号,驱动洗衣定时器计数。(2)洗衣机状态控制器子模块wash_ctrl.v设计时,首先应画出状态转移图并仔细分析,明确在每个状态下控制器要输出哪些控制信号,计数器该怎样计数;当希望洗衣机暂停时,所有控制信号应都变为0,计数器暂停计数。当计数器正常计数到预定值时,应跳转到下一状态。然后用case语句、if-else语句对状态转移和输出进行描述。信号定义:inputclk_1KHz,clk_1Hz,rst,start_pause,mode,level,open_door;/*start_pause:启动/暂停按钮信号,高有效;mode:洗衣模式选择信号,高有效。不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 语言 洗衣机 控制器 设计 复习 过程
限制150内