洗衣机控制器数字逻辑课程设计分析报告.doc
文本预览下载声明
石家庄经济学院
华信学院
数字逻辑课程设计报告
题 目 洗衣机控制器
姓 名
学 号
班 号
指导老师
成 绩
2014年6月
目 录
1. 课程设计目的
2. 开发工具选择
3. 设计方案
4. 模块描述
5. VHDL实现
6. 调试仿真
7. 课程设计回顾总结
参 考 文 献
附录
1课程设计目的
设计一个洗衣机控制器,控制洗衣机的电机按照下图要求运转。
用两位数码管预置洗涤时间(分钟数),洗涤过程在送入预置时间后开始运转,洗涤中按倒计时方式对洗涤过程作计时显示,用LED表示电动机的正、反转,如果定时时间到,则停机并发出音响信号。
2开发工具选择
硬件描述语言
洗衣机控制器的设计采用了功能强大的VHDL语言,它具有很强的行为能力描述,设计方法灵活,可以支持库和模块设计方法。
QuartusII软件开发工具
本设计采用的软件开发工具是美国的Altera公司的QuartusII,它支持多种设计输入方法,包括原理图输入、文本输入。
EDA实验开发系统
本设计采用的EDA实验开发系统,主要用于提供可编程逻辑器件的下载电路及EDA实验开发的外围资源,供硬件验证用。
3设计方案
总体思路:
洗衣机启动后,将依次经过正转15s、暂停5秒、反转15秒、暂停5秒四个步骤(状态)。在实例中,假设定时时间为40秒,故经过这四个状态后时间到,停止。
具体实现:
此设计问题可分为洗涤预置时间编码寄存电路模块、十进制减法计数器模块、时序电路模块、译码驱动模块四大部分。
设置预置信号LD,LD有效后,可以对洗涤时间计数器进行预置数,用数据开关K1-K10分别代表数字1,2,…,9,0,用编码器对数据开关K1-K10的电平信号进行编码,编码器真值表如下表所示,编码后的数据寄存。
设置洗涤开始信号start,start有效,则洗涤时间计数器进行倒计数,并用数码管显示,同时启动时序电路工作。
时序电路中含有15s定时信号,5s定时信号,设为A、B,A、B为“0”表示定时时间未到,为“1”表示定时时间到。
设置电动机正转信号run、反转信号rev、暂停信号Pause,由时序电路的输出Q2Q1经译码驱动模块,可使显示信号正确反映电路的工作状态。
直到洗涤计时时间到,时序电路异步复位。
流程图如下:
4模块描述
模块一:预设时间和编码电路(yuzhitime)
接受用户通过按钮预置的时间信息,编码成八位之后转给减法计数器。
模块二:减法计数器电路(counter)
接收编码之后的预置时间信息,向电机运转控制电路传递运行信号,并将预置时间信息和剩余时间信息发给数码管显示电路进行实时显示。
模块三:数码管显示电路(showtime)
接收减法计数器电路传来的时间信息,进行实时译码显示
模块四:电机运转时序控制电路(shixu)
接收运行起止信号,安排电机运行状态并编码输出。
模块五:译码器(move)
接收电机运行状态信号,译码后实时控制电机的正传、反转和暂停。
5 VHDL实现
模块一:预设时间和编码电路(yuzhitime)
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity yuzhitime is
port(load,clk:in std_logic;
time_input:in std_logic_vector(3 downto 0);
time_set:out std_logic_vector(7 downto 0));
end yuzhitime;
architecture yuzhitime of yuzhitime is
signal p1:std_logic_vector(7 downto 0);
begin
process(time_input)is begin
case time_input is
when 0000=p1
when 0001=p1
when 0010=p1=000
显示全部