- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VHDL洗衣机控制系统设计实验报.doc
VHDL实验报告
洗衣机控制器设计
一.实验题目名称:洗衣机控制器设计
二:实验目的、任务和要求:
设计一个洗衣机洗涤程序控制器,控制洗衣机的电动机按下图所示的规律运转:
图2.1 电机运转时序图
用两位数码管预置洗涤时间(分钟数),洗涤过程在送入预置时间后开始运转,洗涤中按
倒计时方式对洗涤过程作计时显示,用LED表示电动机的正、反转,如果定时时间到,则
停机并发出音响信号。
其系统框图如下图所示:
图 2.2 系统框图
设计思路:
此设计问题可分为洗涤预置时间编码寄存电路模块、十进制减法计数器模块、时序电路模块、译码驱动模块四大部分。
设置预置信号LD,LD有效后,可以对洗涤时间计数器进行预置数,用数据开关K1-K10分别代表数字1,2,…,9,0,用编码器对数据开关K1-K10的电平信号进行编码,编码器真值表如下表所示,编码后的数据寄存。
图2.3 编码器真值表
设置洗涤开始信号start,start有效,则洗涤时间计数器进行倒计数,并用数码管显示,同时启动时序电路工作。
时序电路中含有20s定时信号,10s定时信号,设为A、B,A、B为“0”表示定时时间未到,为“1”表示定时时间到。
时序电路状态表如下表所示:
图 2.4 时序电路状态表
状态编码为: S0=00 S1=01 S2=11 S3=10
若选JK触发器,其输出为Q2Q1。 逻辑赋值后的状态如下表所示:
图2.5 逻辑状态表
设置电动机正转信号run、反转信号rev、暂停信号Pause,由时序电路的输出Q2Q1经译码驱动模块,可使显示信号正确反映电路的工作状态,译码驱动模块真值表如下表所示:
图2.6 译码驱动真值表
直到洗涤计时时间到,时序电路异步复位,并启动音响电路。
其硬件系统示意图如下图所示:
图2.7 硬件系统设计
三.实验系统结构设计分析
系统运行过程如下:在系统进行运行之前,使用K按钮预置洗衣机运转时间,此时用户设定的时间通过数码管时时显示出来,计时设备选取的精度是分钟级,也就是说用户可以设定洗衣时间是多少分钟,范围为00-99。然后用户可以给出开始信号,系统开始运转并开始从预设时间倒计时,重复“正传-暂停-反转-暂停”的循环过程直至剩余时间变为零。数码管在系统的整个运行过程中时时显示剩余运转时间,由于我们选用的数码管是一个,故设定的是每隔一秒分别显示十位和个位。
根据以上需求分析,按照系统模块化设计的要求可将洗衣机控制器的电路设计为主要由五部分组成,包括:预设时间和编码电路、减法计数器电路、数码管显示电路、电机运转时序控制电路、译码器。系统总体电路图如下:
图3.1 系统模块设计图
各个部分的具体功能描述如下:
预设时间和编码电路(settime):接受用户通过按钮预置的时间信息,编码成八位之后转给减法计数器。
减法计数器电路(counter):接收编码之后的预置时间信息,向电机运转控制电路传递运行信号,并将预置时间信息和剩余时间信息发给数码管显示电路进行实时显示。
数码管显示电路(showtime):接收减法计数器电路传来的时间信息,进行实时译码显示。
电机运转时序控制电路(analyse):接收运行起止信号,安排电机运行状态并编码输出。
译码器(move):接收电机运行状态信号,译码后实时控制电机的正传、反转和暂停。
为方便使用Spartan-3E进行系统实现,我们根据该开发板的特点对实验实现进行了如下修改:
开始的时候是在settime模块我们是使用十个按钮进行数字0到9的输入,每一位分别对应数字一到十,后来在写入板子的时候由于开关个数有限,选用了四位编码输入,即:“0000”到“1001”,非别对应一到十;
预置时间的十位数字和个位数字分开输入。先进行十位数字的输入,完成后通过按钮向系统发送“Load”信号。然后进行预置时间个位数字的输入,输入完成后同样以“Load”按钮结束;而且,当开始输入的时间是错误的时候,可以进行多次输入,以前的信息会被自动覆盖。
以发光二极管的亮灭展示电机的正转、反转和暂停;
在七个数码管上交替显示倒计时的十位和个位数字,每个时序脉冲替换一次。开始的时候是设计为两个数码管,大但考虑到只有一个数码管,故我们设计为每一秒交替显示十位和个位。
四.实验代码设计以及分析:
根据总体设计图和实验分析,各个部分的程序实现如下:
预置时间和编码电路(settime):
其中,time_input为通过开发板上按钮输入的信号,load为输入确认信号。本模块将输入的四位时间信息编码输出到减法计数器电路。
减法计数器(counter):
本模块中clk为系统时序脉冲信号,start为系统开始运行的信号,time_set为从预置时间模块接收到的
文档评论(0)