数字逻辑系统课程设计报告课案_第1页
数字逻辑系统课程设计报告课案_第2页
数字逻辑系统课程设计报告课案_第3页
数字逻辑系统课程设计报告课案_第4页
数字逻辑系统课程设计报告课案_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子工程学院数字逻辑系统课程设计题目:洗衣机控制器姓名: 学号: 班级: 指导老师: 日期:摘要此次的课程设计的题目是简易洗衣机控制器设计, 这次的EDA课程设计主要 就是掌握EDA技术在一些方面的运用。掌握 EDA技术及CPLD/FPG的开发流程、 自顶向下的设计思想和系统设计的分析方法, 以及洗衣机控制器的工作原理。 本 次的设计已基本完成要求,待机 5s 正转10s 待机5s 反转10s f, 如此循环。并用3个LED灯和7段数码管分别表示其工作状态和显示相应工作状 态下的时间, 能够自行设定洗衣机的循环次数, 利用循环语句来实现。 到达所设 定的循环次数后报警提示, 报警就是将敏感变量

2、赋给报警输出量。 虽然对于设计 的东西不是很了解, 不过,大致的思路已经了解。 此篇课程设计报告大致包括对 于此次设计的总体的原理和思路, 以及设计的每个模块分析, 电路图, 源程序的 描述,仿真结果的展示。 能够将所学知识运用到此次的课程设计当中, 对于之前 的一些理论知识也是一种深刻认识。绪论 随着电子技术获得了飞快的发展, 在其推动下, 现代电子产品几乎渗透了社 会的各个领域, 有力地推动了社会生产力的发展和社会信息化程度的提高, 同时 也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 EDA这 个以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方

3、式,以计算机、大规模可编程逻辑器件的可开发软件及实验开发系统为设计工具,通过 有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑 化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标 芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片 的一门新技术在现代生活中也越发的重要。面对当今飞速发展的电子产品市场,电子设 计人员需要更加实用、快捷的EDAT具,实用统一的集成设计环境,改变传统设计思路, 即优先考虑具体物理实现方式,而将精力集中到设计构思、方案比较和寻找最优化设计 等方面,以最快的速度开发出性能优良、质量一流的电子

4、产品。今天的EDAT具将向着 功能强大、简单易学、使用方便的方向发展。本次设计所用到的硬件描述语言是VHD语言。硬件描述语言VHD是EDAJ术技术 的重要组成部分。VHDL是 Very High Speed Integrated Circuit Hard Description Lan guag啲简称,作为一个规范语言和建模语言,随着VHD的标准化,出现一些支持 该语言的行为仿真器。不过,VHD不仅可以作为系统模拟的建模工具,而且可以作为电 路系统的设计工具,可以利用软件工具将VHDLS码自动地转化为文本方法表达的基本 逻辑元件连接图,即网表文件。此次的课程设计正是利用EDA技术及其运用来实现

5、一个简易的洗衣机控制器的设 计。将EDA技术拓展,将理论联系实际。为了更好地运用EDA知识,也为了掌握VHDL 语言的。此次的课程设计以EDA技术为基础,以VHDL语言为硬件语言,编写一段程序 来实现简易洗衣机的控制。设计基本原理此次制作的的简易洗衣机控制器设计用三只LED灯来显示洗衣机正转、反转、待机的三种状态。然后用电子定时器控制洗衣机设定的工作时间,以及正传、反转以及待机运行时间的控制。同时用两个数码管显示洗涤的预置时间(按秒数计 数),按倒计时方式对洗涤过程作计时显示, 待机5s f 正转10s f 待机5s f 反转10s f,如此循环,直到时间到,循环结束;洗涤过程由“开始”信号开

6、 始;最后定时到则停止,同时用蜂鸣器发出提示音(不过,此次的设计图中并没 有画出蜂鸣器的部分)。然后是通过各种开关组成控制电路,使洗衣机实现程序 运转。直至结束为止(也即循环次数到了)。包括定时输入模块、电机时间控制 模块、倒计时模块、电机状态控制模块、数码管显示模块、报警模块模块方框按键控制模块核心控制电路倒计时模块数字显示模块定时输入模块报警电路原理图lit Mri&刘曲 PrwH-Tinc TwJt: hnix=shupjPUT 一dui1|3 Q|PUT5nLl PLrrhsbidninBtkAIfdkcd泌Jinsll#IM I I II:washnacbne -O! shinsCL

7、KjKHz SEG7.OUOiitlM DK(7.O1 I- I Fir = i hui|iart2 doJt2P_0R&S12c2danjcc dd1.O 樹SUMT* r USe 一 e-l W L eI L e 一 1JJJTPLiTdj|1 !|r *rLLr nrMnii rq”JTPUT |、p(n_nanie5PIN_U3MT?PIN-R5原理图解析首先,是有五个输入的。shu和hshu是设置时间的,pin name18是相当于 是允许输入的,time miao是脉冲的设置,而另一个开关 kaiguan就是本设计 的开关。输出也是有五个的。Gewei和shiwei是一个数码管显示

8、时间的十位, 一个数码管显示个位。虽然本次的设计只有5s和10s两种显示的时间,也用两个数码管来显示时间。De ng是显示是正转、反转、待机的状态,dianji是显示 当下处于什么状态的(00代表正转,01代表待机,11代表反转)。Ct用来检测 是否时间达到零,达到零则为1,否则则为0。对于shuru这个模块来说,dout 和dout1的输出是由shu和hshu的上升沿来控制的,同时 dout和dout1又是 hui和hui1的一个输入。而 washmachine的输入是一个脉冲,输出 c和d又分 别是hui和dianji的输入。而kaiguan是hui和hui1的输入,控制倒计时的模 块,用

9、来随时停止计时。引脚图:LK4如Al PmtJPBjnk VHfflfgp VQ,t|ntfird二二-二OutputOb!pvtOutput8如OutputOuttxitOutput第二章设计的分立模块解析PJJ3Bl悯Pir*j711 jiB1_NQ阳产1】-窗心IPW P7T *2AI13VL/TTl(O*iuh)九科LEI性T13VLVm.(drfid()ttnrTiT?TW dnegf展啊*LEI3.3 VJJ-HVT7l(kf*uh)3.J-LVtTl(*f*A)一卜 J L4 , N“ ii 1=U i. I !:.=?.-小WTTL他仙) S.JVLVTTKdefiuH)讲解的

10、依次是定时输入模块、电机时间控制模块、倒计时模块、电机状态控制模 块、数码管显示模块。以及顺带介绍一下要事先报警应如何操作。2、1定时输入模块此模块是为了实现洗衣机能够定时输入的功能,保证洗衣机能够正常运行。 当din为1的时候是无效时刻,而且shu是上升沿时dout加1,hshu是上升沿 时 doutl 加 1。2、1、1定时输入模块源代码讲解首先,是定义输入输出量,有三个输入量, shu和hshu以及din,输出量 有两个,分别是dout和dout1,信号量有两个,分别是 count和count1。信号 量在在源代码中充当中间量。最后是要把 count和count1分别赋值给dout和 d

11、out1的。输入量shu和hshu分别决定count和count1,当shu和hshu是上升 沿时,count和count1加1 ,count是从0到9,接着又是到0开始循环,而count1 是从0到6,接着是到0继续循环。不过,当din为1时count和count1都是1111”,也就是说,当din为1时相当于阻止此模块运行2、1、2定时输入模块框图shuruX1shudout3.0hshudout13.0dinin st2、2洗衣机时间控制模块此模块由一个累加器和一个命令控制器组成,用来实现预置洗涤时间的功 能,洗涤时间以分钟数为单位,用户可根据自己的需求来设定洗涤时间的长短。 一开始是想

12、说,在时间设置模块设置15次的循环时间,这样也就避免让时间设置方面那样麻烦,不过,此次的源代码是将此模块算在当中的。2、2、1洗衣机时间控制模块源代码讲解首先来说,就是此模块的输入输出量都是很简单的, 有一个输入,两个输出, elk输入,也即脉冲输入,d和c输出。信号量count2 (有三位)和shi。而elk 是上升沿时shi则加1, shi是从0到60的,当shi为60时,c为1,否则,c 则为O.count2 也是从0到5的,当count2为5时,d为1,否则d则为0.2、2、2洗衣机时间控制模块框图washmach ineXclkcdinst2、3倒计时模块由于洗衣机有工作时间,必须要

13、一模块来控制它的工作时间范围, 当洗衣机 开始工作后,减法计数器即会实现减数功能,直到时间减到零,洗衣机便停止工 作。2、3、1倒计时模块源代码讲解首先此模块是有两部分的,有十位的还有个位的表示。对于这两部分,模式 基本一致。输入量有三个,jian、reset和din3,0 ,din3,0为定时输入模块 的输出dout3,0。信号量有count3,0 。Jian就是控制倒计时的量,当jian 的上升沿到来,则count3,0开始减1, count3,0从9开始减到0,然后再循 环,不过这是对于个位输入来说,对于十位来说,则不用考虑。 Reset是有开关 来控制的。当reset为1时,此模块是不

14、能工作的,就是复位。2、3、2倒计时模块框图hui1jianresetdin3.0dout3.0cinst52、4洗衣机状态控制模块此模块是为了实现能够控制洗衣机电机时间达到正转、反转、待机的功能。让观看者在外部能够观察到洗衣机当下正处于什么状态,而且,此外还有灯的部分,所以,通过灯也可以辨认出洗衣机的工作状态。2、4、1洗衣机状态控制模块源代码讲解此模块的输入量只有一个,就是 cc,输出量有两个,dd和dneg,信号量为 count、dian 和 deng1,dd=dian,而 deng=deng1。当 cc 的上升沿至U来时,count 则加1,count是从0到5循环的。Count的变化

15、也就是会决定待机、正转、反 转的时间,dian的值则是代表待机、正转、反转的,01代表正转,此时deng 为100,也即亮灯表示正转;00代表待机,此时deng为010,也即亮灯代表待 机;11代表反转,此时deng为001,也即亮灯代表反转。2、4、2洗衣机状态控制模块框图dianjiccdd1.0den g2.0inst2、5数码管显示模块根据课程设计要求,必须将洗衣机的工作状态及工作时间在数码管和指示灯 上显示出来,此模块是用来控制洗衣机的工作状态及工作的频率,并把工作状态及工作时间显示出来。2、5、1数码管显示模块源代码讲解对于此模块没有很多该讲的地方,它就是,一个输入,一个输出,输入

16、是由 倒计时模块的输出来充当数码管模块的输入的。输出直接接到数码管上显示。此次用的是七个引脚的数码管。而且有两个数码管。一个显示十位,一个显示个位。 对于数码管的编码,是按照数码管显示的规律来实现的。2、5、2数码管显示模块框图2、6报警模块当洗涤时间结束时,洗衣机就会自动发出警报声,以此提醒用户洗涤工作完 成,此模块就是实现此功能。2、& 1报警模块源代码讲解此模块有两个输入,一个输出,输入是脉冲和一个量。当fini she按下时,也就是提吃报警,然后就响应报警,接着,输出 warning就连接到elk,也就是脉冲 上面,主要提出了报警,则只要此时elk还在输入,那就会驱动蜂鸣器来发出警 报

17、声,此时也就实现了报警。当没有警报时,也即洗衣机正常工作的情况,warning 就为0,也就不会驱动蜂鸣器,也不会报警。报警模块就是这样实现的。不过, 此次的设计并没有将蜂鸣器考虑在内,而且,总体的程序也没有将报警模块加入, 只是最后陈述一下该如何实现报警。小结此次的课程设计是做简易洗衣机控制器,对于此次的设计我不能说完成得有 多好,只能说也算是尽力了。对于一些功能的实现,也完成得不是很好,虽然说 如果能顺利实现的话是基本可以达到目标,但是把程序,也就是源代码输入到 Quartus II 后发现在软件上不能编译,经过一系列的检查,我本人认为是选择 芯片上出现得问题最大,所以此次的源代码基本上在

18、软件上不能实现。不过,虽然此次的设计把仿真图和结果附上, 是借鉴了别的论文的一些资料。对于此次的 课程设计,我最大的收获就是能够基本理解那些源代码的意思,至少那些源代码我都能看懂,而且我还对于那些源代码我都有认真地学习以及思考,我对于这次 的课程设计我是报以很认真的态度。 而且,就是对于那款软件我都有尽我所能地 去学习,包括查资料,看视频来学习。对于我的课程设计结果,不能说是很好, 但是我认为只要认真地学习了就不会辜负这次难得的机会,这个学期学习 EDA 技术及其运用, 我虽说不是掌握得很好, 但是我有学会关于它的基本知识, 对于 硬件描述语言VHD语言也有所掌握,加上这次的课程设计所用的就是

19、 VHD语言, 就对VHDL语言更进一步的了解。总的来说,此次的课程设计完成算是还行的, 而且也基本懂得了这次的课程 设计的意义, 也收获了不少, 不仅是理论知识的长进, 而且对于将理论联系实际 的了解也更深刻了。 通过这次课程设计, 自己也懂得了不少。 也给自己提了个醒, 以后的学业路上也要更加努力,只要真的去努力做一件事情,才会有所收获。附录1定时输入模块源代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY shuru I

20、SPORT ( shu, hshu, din : IN STD_LOGIC;dout : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);dout1 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);END shuru;ARCHITECTURE behave OF shuru ISSIGNAL count, count1 :STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS (shu,hshu,din)BEGIN dout=count; dout1=count1;IF din=1 THENdout=1111;dout1

21、=1111;ELSIF RISING_EDGE(shu) THENIF count=1001 THEN count=0000;ELSE count=count+1;END IF;END IF;IF RISING_EDGE(hshu) THENIF count1=0110 THEN count1=0000;ELSE count1=count1+1; END IF;END IF;END PROCESS;END behave;附录 2 洗衣机时间控制模块源代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;U

22、SE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY washmachine ISPORT (clk : IN STD_LOGIC; c: OUT STD_LOGIC; d : OUT STD_LOGIC);END washmachine;ARCHITECTURE miao20 OF washmachine ISSIGNAL count2: STD_LOGIC_VECTOR (2 DOWNTO 0);SIGNAL shi: INTEGER RANGE 0 TO 60;BEGIN PROCESS(clk)BEGINIF RISING_EDGE(clk) THENIF shi

23、=60 THEN shi=0;c=1;ELSE shi=shi+1;c=0; END IF;IF count2=101 THEN Count2=000; d=1;elseCount2=count2+1; d=0;END IF;END IF;END PROCESS;END miao20; 附录 3 倒计时模块模块源代码 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY hui ISPORT (jian1 : IN STD_LOGI

24、C; reset1 : IN STD_LOGIC;din1 :IN STD_LOGIC_VECTOR (3 DOWNTO 0); dout1 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); c1 : OUT STD_LOGIC );END hui;ARCHITECTURE behave OF hui ISSIGNAL count3: STD_LOGIC_VECTOR (3 DOWNTO 0); BEGINdout1= count3;PROCESS(jian1,reset1,din1)BEGINIF reset1=1 THEN count3= din1; c1=0;EL

25、SIF RISING_EDGE(jian1) THENIF count3 = 0000 THEN count3= 1001; c1=1;ELSEcount3= count3-1; c1=0;END IF;END IF;END PROCESS;END behave;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY hui1 ISPORT (jian2 : IN STD_LOGIC; Reset2 : IN STD_LOGIC;di

26、n2 :IN STD_LOGIC_VECTOR (3 DOWNTO 0);dout2 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); c2 : OUT STD_LOGIC );END hui1;ARCHITECTURE behave OF hui1 ISSIGNAL count4: STD_LOGIC_VECTOR (3 DOWNTO 0); BEGINdout2= count4;PROCESS(jian2,reset2,din2)BEGINIF reset2=1 THEN count4= din2; c2=0;ELSIF RISING_EDGE(jian2) THE

27、NIF count4 = 0000 THEN count4= 1001; c2=1;ELSE count4= count4-1; c2=0;END IF;END IF;END PROCESS;END behave;附录 4 洗衣机状态控制模块源代码 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY dianji ISPORT (cc : in STD_LOGIC; dd : OUT STD_LOGIC_VECTOR (1 DOW

28、NTO 0); deng : OUT STD_LOGIC_VECTOR (2 DOWNTO 0) );END dianji;ARCHITECTURE behave OF dianji ISSIGNAL count5: STD_LOGIC_VECTOR (2 DOWNTO 0);SIGNAL dian : STD_LOGIC_VECTOR (1 DOWNTO 0);SIGNAL deng1 : STD_LOGIC_VECTOR (2 DOWNTO 0); BEGINdd = dian; deng=deng1;process(cc)BEGINIF RISING_EDGE(cc) ThENIF co

29、unt5= 101 THEN Count5 = 000;ELSEcount5= count5+1; END IF;IF count5=000 THEN dian=01;deng1=100;ELSIF count5=010 THEN dian=00;deng1=010;ELSIF count5=011 THEN dian=11 ;deng1=001; END IF;END IF;END PROCESS;END behave; 附录 5 数码管显示模块源代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY shuma ISPORT(CL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论