数字系统设计与硬件描述语言基于VHDL的洗衣机控制器设计.doc
文本预览下载声明
数字系统设计与硬件描述语言
期末考试作业
题目: 洗衣机控制器的设计
学院: 电子信息工程学院
专业: 物联网工程
学号: 3014204328
姓名: 刘涵凯
2016-12-10
选题设计描述
功能介绍
洗衣机控制器,能够实现开始与暂停、注水,洗涤、排水、脱水和警报提醒的功能,并且可以随时更改洗衣模式。洗衣机提供两种模式:模式1:注水-洗涤-排水-注水-洗涤-排水-脱水;模式2:脱水。洗衣模式决定洗衣时间。默认模式为模式2。
洗衣机界面如下图所示:
运转方式如下图所示:
算法简介
总程序描述:总程序通过调用5种模块,在洗衣机控制器输入变化时,立刻转换模式并产生对应输出。当开关关闭时,所有输出为0;暂停时,除显示开关状态的输出外,所有输出为0。
开关开启后,设置洗衣模式,之后按下“开始”即可开始工作。
在洗衣机控制器输入变化时,立刻转换模式并产生对应输出。
电子元器件模型如下图所示:
switch为开关信号,modelselect为开关选择信号,clkin为系统时序脉冲信号,sorp为开始/暂停信号。
waterstate为注水程序的工作状态,washrstate为洗涤程序的工作状态,drainstate为排水程序的工作状态,drystate为脱水程序的工作状态。
alarmout为警报提醒的状态。
switchstate为数码管显示的开关的状态(0/1),spstate为数码管显示的开始/暂停的状态(0/1), state为数码管显示的洗衣机工作状态(0~4),currentmodel为数码管显示的当前模式(0~2),timedecade为数码管显示的剩余时间的十位,timeunit为数码管显示的剩余时间的个位。
下面介绍各模块功能与算法:
1)开关与模式选择模块
a接收开关信息,b接收模式选择信息。
c输出总电路的开关信息(开启洗衣机并且设置完毕电路后,即可准备工作,等待“开始”信号)。
e为开关信息,将输入到数码管中显示。
time1与time2分别代表洗衣时间的十位和个位,将输入到计数器与警报模块中。
y为模式信息,将输入到码管中显示。
2)开始/暂停模块
a接收开关信息,b接收开始/暂停信息,clk接收系统时序脉冲信号。
startorpause输出受开始/暂停信息调控的系统时序脉冲信号。
y为开始/暂停信息,将输入到码管中显示。
3)计数器与警报模块
clk接收受开始/暂停信息调控的系统时序脉冲信号,a接收开关信息,time1和time2分别接收洗衣时间的十位和个位。
alarm输出警报信息;
outtime1和outtime2分别为剩余时间的十位和个位,将输入到数码管中显示,同时将输入到控制模块中。。
在脉冲信号的控制下,剩余时间逐渐减少,当剩余时间为0时,停止减小,并开启警报。
4)控制模块
a接收开关信息,b接收开始/暂停信息,time1和time2分别接收剩余时间的十位和个位。
water、wash、drain、dry分别输出注水、洗涤、排水、脱水的控制信息。
act为模块内部使用的BUFFER量。
控制模块根据剩余时间的多少决定工作状态。如:剩余时间为16-30分钟时洗涤,31-35分钟时注水。则剩余时间33分钟时,water为1,其他控制信息为0;剩余时间21分钟时,wash为1,其他控制信息为0。
5)译码器与数码管显示模块
b接收开关信息,a接收4位二进制数据。
q在数码管上显示字形。
程序源代码及说明
程序代码由主程序及5个模块代码组成
1)主程序
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL ;
ENTITY xyj IS
PORT(switch,modelselect,clkin,sorp: IN STD_LOGIC; --电源开关、模式选择、时钟、开始/暂停按键状态的输入
waterstate,washstate,drainstate,drystate,alarmout: OUT STD_LOGIC; --注水程序、洗涤程序、排水程序、脱水程序、警报状态的输出
switchstate,spstate,state,currentmodel,timedecade,timeunit: OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); --工作状态、工作模式、剩余时间的输出
END ENTITY xyj;
ARCHIT
显示全部