eda数字逻辑洗衣机控制器

更新时间:2024-03-19 17:20:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

湖南涉外经济学院

课程设计报告

课程名称:EDA技术与应用

报告题目:洗衣机控制器的设计 学生姓名: 所在学院: 专业班级: 学生学号: 指导教师:

2016年12月28日

1

课程设计任务书

报告题目 学生姓名 洗衣机控制器的设计 专业班级 指导教师 完成时间 职称 教授 总体设计要求和技术要点 设计一个洗衣机控制器,要求如下: 1.设计一个洗衣机控制器,要求洗衣机有正转、反转、暂停三种状态。设定洗衣机的工作时间,要洗衣机在工作时间内完成:定时启动?正转20秒?暂停10秒?反转20秒?暂停10秒?定时未到回到“正转20秒?暂停10秒???”,定时到则停止,同时发出提示音。 2.若定时到,则停机发出声音信号 3.用两个数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直到时间到停机;洗涤过程由“开始”信号开始; 4.三只LED灯表示“正转”、“反转”、“暂停”三个状态。 工作内容及时间进度安排 第15周: 周1---周3 :立题、论证方案设计 周4---周5 :预答辩 第16周: 周1---周3 :仿真实验7 周4---周5 :验收答辩 课程设计成果 1.与设计内容对应的软件程序 2.课程设计总结报告

摘要

2

洗衣机控制器的设计主要是定时器的设计。由一片FPGA和外围电路构成了电器控制部分。FPGA接收键盘的控制命令,控制洗衣机的进水、排水、水位和洗衣机的工作状态、并控制显示工作状态以及设定直流电机速度、正反转控制、制动控制、起停控制和运动状态控制。对芯片的编程采用模块化的VHDL (硬件描述语言)进行设计,设计分为三层实现,顶层实现整个芯片的功能。顶层和中间层多数是由VHDL的元件例化语句实现。中间层由无刷直流电机控制、运行模式选择、洗涤模式选择、定时器、显示控制、键盘扫描、水位控制以及对直流电机控制板进行速度设定、正反转控制、启停控制等模块组成,它们分别调用底层模块。

3

目录

一、概述????????????????????????????5 二、程序框图????????????????????????5 三、程序模块设计??????????????????????6

1.减法计数器模块???????????????????????6 2.数码管显示模块???????????????????????63.时序电路模块????????????????????????6 4.译码器模块?????????????????????????6 5.声音模块???????????????????6 四、VHDL源程序????????????????????????6 五、仿真波形图??????????????????????10 六、 结论与心得??????????????????????????11 七、 参考文献???????????????????????????11

4

一、概述

洗衣机的逻辑结构主要由优先计时模块、报警模块及数码管显示模块组成。洗衣机控制器的设计主要是定时器的设计。由一片FPGA和外围电路构成了电器控制部分。FPGA接收键盘的控制命令,控制洗衣机的进水、排水、水位和洗衣机的工作状态、并控制显示工作状态以及设定直流电机速度、正反转控制、制动控制、起停控制和运动状态控制。

二、程序框图

定时启动 正转 暂停 反转 暂停 停止 定时到 定时未到

5

三、程序模块设计 1、减法计数器模块:

由于洗衣机有工作时间,必须要一模块来控制它的工作时间范围,当洗衣机开始工作后,减法计数器即会实现减数功能,直到时间减到零,洗衣机便停止工作。当出现系统运行结束信号time_over时,蜂鸣器报警洗衣机工作结束。

2、数码管显示模块:

根据课程设计要求,必须将洗衣机的工作状态及工作时间在数码管和指示灯上显示出来,此模块是用来控制洗衣机的工作状态及工作的频率,并把工作状态及工作时间显示出来。a,b,c,d,e,f,g分别对应数码管的七段,minute和second分别位选两个数码管,显示十位和个位。

3、时序电路模块:

接收运行起止信号,安排电机运行状态并编码输出

4、译码器模块:

接收电机运行状态信号,译码后实时控制电机的正传、反转和暂停。

5、声音模块:

当洗涤时间结束时,洗衣机就会发出警笛声,以此提醒用户洗涤结束。

四、VHDL源程序

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;

6

use ieee.std_logic_unsigned.all; entity xiyiji is

port(clk,clk1,minter,start,rst:in std_logic;

M :out std_logic_vector(2 downto 0); BEEP :out std_logic; SL1: out std_logic;

LED :out std_logic_vector(6 downto 0));

end xiyiji;

architecture one of xiyiji is

signal MDate: integer range 0 to 9:=0; signal BDate: integer range 0 to 9:=2; signal Date: integer range 0 to 9:=0; signal Sceond: integer range 0 to 60:=0; signal Sceond20: integer range 0 to 60:=0; signal Sceond10: integer range 0 to 60:=0; signal Sceondf20: integer range 0 to 60:=0; signal yanshi: integer range 0 to 100:=0; signal flag: std_logic:='0'; signal Cflag: std_logic:='0'; signal Sflag: std_logic:='0'; signal Gflag: std_logic:='1'; signal Lflag: std_logic:='0'; begin process(clk1)

begin

if clk1'event and clk1='1' then

if yanshi<30 then yanshi<=yanshi+1; else Lflag<=not (Lflag);yanshi<=0;

end if; end if;

7

end process;

process(start,rst,minter,flag,Sflag)

begin

if start'event and start='1' and Lflag='0' then flag<='1'; end if; if rst='0' then

if minter'event and minter='1' and flag='0' and Lflag='0' then if MDate<9 then MDate<=MDate+1; else MDate<=0; end if; end if;

else MDate<=0;flag<='0';--Gflag<='0'; end if;

if flag='1' then

if Sflag'event and Sflag='1' then

if Date>0 then Date<=Date-1;Gflag<='0'; else Gflag<='1';

end if; end if;

else Gflag<='0';Date<=MDate; end if;

if Gflag='1' then BEEP<=clk1; end if;

end process; process(clk,Cflag)

begin

if clk'event and clk='1' and flag='1' then

if Sceond<59 then Sceond<=Sceond+1; Sflag<='0';-- else Sceond<=0; Sflag<='1';--

8

end if;

if Gflag='0' and flag='1' then

if Sceond20<20 then Sceond20<=Sceond20+1; M<=\elsif Sceond10<10 then Sceond10<=Sceond10+1;

M<=\

elsif Sceondf20<20 then Sceondf20<=Sceondf20+1; M<=\else Sceond20<=0; Sceond10<=0; end if; end if;

Sceondf20<=0;

end if;

if Gflag='1' then M<=\end if;

end process;

with Date select LED<=\

\\\\\\\\\\

SL1<='0';

end one;

9

五、仿真波形图

六、结论与心得

通过这次课程设计我对FPGA的编程更加熟悉,对定时器和计数器的设计,让我更加明白时序组合门电路设计思路和方法。而且自已独立思考与设计,使我初步掌握了VHDL的设计方法与一些技巧。通过这个实验设计,我更加熟练地掌握了一些常见的数字芯片的设计方法,在设计中也参考和查阅了很多资料,从中学到不少课本上没有的东西。只有把所学的理

10

论知识与实践相结合起来,从理论中得出结论,才能真正地更好去理解知识,从而提高自己的实际动手能力和独立思考的能力

同时为期两周的EDA课程设计结束了,我成功的完成了我的任务——洗衣机控制器,但对我来说宝贵的不是结果而是过程,在思考、摸索、寻求帮助最终圆满完成设计的过程中我学会了许多。 在第一周的开始,我们接触了全新的知识,了解了Max+PlusII软件、Verilog HDL语言和实验箱,这对我来说既新鲜又有趣,但第一次用一种新的语言来编写一个设计确实是个挑战。这一个星期我一直在从图书馆借来的资料上、网络上努力学习并掌握Max+PlusII软件、Verilog HDL语言,利用一切闲暇的时间仔细思考我的设计思路和方向,因为我知道方向比速度更重要。当我已经有了整体程序的大框后,一些细节的问题层出不穷,比如计数器的终值控制、清零的反应速度、对开关的状态敏感还是变化敏感等等。在一遍一遍的调试和修改中,我深刻理解了那句以前未体会的一句话:“阻挡你前行的并不是你面前的大山而是鞋子里的小石子。”不要忽略细枝末节的小问题,细节决定成功。 拿着调试好了的仿真波形和程序设计,我兴高采烈的去上箱天真的以为课程设计的成功触手可及,而实际上由于缺乏经验在硬件和软件连接的过程中仍然着意象不到的问题。硬件的实现与软件构造的理想模型有着些许细小的差异,几经调试,多次从程序、锁定管脚到连线的确认,我终于得到了我期待的实验效果。

感谢陈明义老师在我整个设计过程中的指导和帮助,他严谨认真的工作态度让我学会了设计过程中要精准仔细。感谢我的同学们在两周里的帮助和鼓励,他们的陪伴让我拥有克服任何困难的勇气。这次课程不是结束而是一个新的开始,在以后的生活中我会继续保持这次课程设计教给我的宝贵经验。

七、参考文献

[1] EDA 技术与应用/陈忠平,高金定主编; 京:中国电力出版社,2013.11

11

教师评语: 教师评语及设计成绩 课程设计成绩: 指导教师: 日期:年月日

12

本文来源:https://www.bwwdw.com/article/cut8.html

Top