数字电路综合设计实验报告文档

时间:2024.4.20

数字电路综合设计课程报告

姓名:

学号:

班级:

20120530


目录

一. 设计题目................................................................................................................. 1

二.设计要求及技术指标............................................................................................ 1

2.1实验目的........................................................................................................ 1

2.2 实验要求....................................................................................................... 1

2.3 实验原理....................................................................................................... 2

三. 方案选择及总体设计.......................................................................................... 2

3.1 方案选择....................................................................................................... 2

3.2 总体设计....................................................................................................... 2

3.2.1 信号生成........................................................................................... 2

3.2.2 分频................................................................................................... 2

3.2.3 信号计数编码................................................................................... 2

3.2.4 信号译码输出................................................................................... 3

3.3 功能描述....................................................................................................... 3

3.4 总体结构框图............................................................................................... 4

四. 硬件介绍................................................................................................................. 4

五. 软件设计................................................................................................................. 4

5.1 基本思路....................................................................................................... 4

5.2 程序框图....................................................................................................... 5

5.3 子程序设计(代码)及仿真波形及分析................................................... 5

5.3.1 分频器............................................................................................... 5

5.3.2 计数器............................................................................................... 7

5.3.3 译码器............................................................................................... 8

5.4 主程序设计及仿真波形及分析................................................................... 9

六. 调试及相关说明................................................................................................... 10

七. 结束语................................................................................................................... 11


一. 设计题目

基于Quartus II的流水灯设计仿真

二.设计要求及技术指标

2.1实验目的

通过本次实验,引导学生以计算机辅助设计的手段来设计数字逻辑电路;

掌握QuartusII集成开发环境软件原理图输入的设计流程;

掌握简单流水灯的工作原理,学会通过QuartusII建立原理图设计小型数字电路;

掌握可编程逻辑器件(PLD)的开发步骤;

掌握对设计进行编译、仿真的方法。

流水灯工作效果如下:

2.2 实验要求

用逻辑电路控制8个LED灯,始终保持1亮7暗,亮灯从左到右,在脉冲信号CP的推动下循环流动。

2.3 实验原理

利用信号生成器生成固定频率信号,降低频率后对信号累计编码,对累计编码的信号译码后送给LED灯显示。

三. 方案选择及总体设计

3.1 方案选择

使用QuartusII6.0设计系统,应用VHDL语言编程构造所需器件,需要的器件有分频器、计数器、译码器,组装好后,编译仿真,锁定引脚下载到开发板。

3.2 总体设计

分为三个大的模块,分别为分频器、计数器、译码器。

使用分频器将晶振送来的高频信号转化为低频,用计数器记录时钟周期产生三位的二进制码,使用3-8线译码器输出高电平有效的信号,从而控制LED灯。

3.2.1 信号生成

使用开发板自带的晶振产生原始信号,但是频率较高需要降低频率(分频)。

3.2.2 分频

使用一个较淡的分频逻辑器件分频,原理为输入信号多个周期产生一个输出周期。

3.2.3 信号计数编码

对于分频后的信号,并不能直接用于控制LED灯,需要技术产生二进制代码,译码后控制LED灯。计数器可以对输入信号累加计数,由于最后的LED灯数目为8个,23=8,故需要产生3位的二进制码,范围从000到111。

3.2.4 信号译码输出

经过编码的信号从000到111依次循环,可利用3-8线译码器,产生译码输出信号,又由于要求的是有一个灯亮,故输出信号选为高电平有效。

输入与输出信号对应关系如下表:

3.3 功能描述

8个LED灯,有一个灯亮着从左到右,一轮过后再次循环,其他灯则灭。

3.4 总体结构框图

四. 硬件介绍

计算机、开发板、开发板上面的芯片为MAXII系列的EPM240T100C5。

五. 软件设计

5.1 基本思路

利用分频器对晶振产生的信号进行分频使频率降低,计数器对信号累加,产生三位的信号(从000到111),再利用三八线译码器对计数器产生的信号译码,产生高电平有效地信号(从00000001到10000000),将引脚锁定,下载到开发板。

5.2 程序框图

从左到右依次为:晶振信号输入、分频器、计数器、译码器、LED灯输出。

5.3 子程序设计(代码)及仿真波形及分析

5.3.1 分频器

代码:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity divide is

  port(clk:in std_logic;

     cp:out std_logic);

  end;

architecture divide of divide is

signal clock:std_logic;

begin

cp<=clock;

process(clk,clock) is

variable count:integer range 0 to 999999;

begin

  if(clk'event and clk='1')then

     if(count=999999) then

        clock<=not clock;

        count:=0;

     else

        count:=count+1;

     end if;

  end if;

end process;

end divide;

仿真:

为了在仿真中便于观察,将分频周期中999999改为6,将divide.vhd设为顶层文件,编译,新建一个波形文件,将端口导入,选择“功能仿真”、新建网表,为输入指定值,仿真后波形图如下:

分析:

由仿真可以看出,输出信号的频率明显减低,若将分频数值设置得更大,效果将更加明显,说明本代码可以用于系统使用。

5.3.2 计数器

代码:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity counter is

  port(clk:in std_logic;

     outp:out std_logic_vector(2 downto 0));

end;

architecture counter of counter is

signal s1:std_logic_vector(2 downto 0);

begin

process(clk) is

begin

  if(clk='1' and clk'event)then

     s1<=s1+'1';

  end if;

end process;

outp<=s1;

end counter;

仿真:

将counter.vhd设为顶层文件,编译,新建一个波形文件,将端口导入,选择“功能仿真”、新建网表,为输入指定值,仿真后波形图如下:

分析:

有仿真结果可以看出,对应于输入信号的每一个周期,输出都会改变,而且这种改变是有规律的,从000到111,符合了设计的要求,完全可以应用到系统设计之中。

5.3.3 译码器

代码:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity decoder is

  port(inp:in std_logic_vector(2 downto 0);

     outp:out std_logic_vector(7 downto 0));

end;

architecture decoder of decoder is

begin

process(inp) is

begin

case inp is

  when "000"=>outp<="00000001";

  when "001"=>outp<="00000010";

  when "010"=>outp<="00000100";

  when "011"=>outp<="00001000";

  when "100"=>outp<="00010000";

  when "101"=>outp<="00100000";

  when "110"=>outp<="01000000";

  when "111"=>outp<="10000000";

end case;

end process;

end decoder;

5.4 主程序设计及仿真波形及分析

将前面的VHDL代码生成器件,依照数据处理顺序组装成为如下的电路图:

从左到右依次为晶振信号,分频器,计数器,译码器,LED灯输出。

对总电路图编译后仿真如下图:

可看出系统总体符合要求,8个LED灯依次亮灭。

六. 调试及相关说明

将输入信号输出信号与引脚绑定,下载到开发板观看效果。

绑定后如图:

绑定后再次编译Design.bdf文件,效果如图:

七. 结束语

在此次课程设计过程中,学会了QuartusII软件的使用,在QuartusII中创建项目、新建文件、编译文件、对设计进行仿真以及对编译好的内容进行下载到开发板上观察效果。

在整个过程中,编译使用VHDL代码编写的逻辑器件的代码时,需要将该文件设置为工程的顶层文件,否则后面的仿真出错。在由逻辑器件组装好电路图时,需要将组装好的电路图文件设为顶层文件再编译,否则后面出错。在下载到开发板之前,需要锁定引脚,之后还需要编译一次,否则会出错。这些都是在开发设计过程中总结出的经验。

在设计过程中加深了对可编程逻辑器件的使用的理解,克服了一些困难,学到了一些以前没有学到的知识。


第二篇:数字电路设计实验报告


数字电路设计实验报告

                    引言

本课程是面向智能车制作的课程,但是主要讲述的是一些关于智能车制作的一些最基本的基础知识。比如说一些单片机的知识和一些相应数字电路的知识。故我在这里利用一些所学的知识来设计一个数字时钟。该电路系统由秒信号发生器、“时、分、秒”计数器、显示器组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,这里用多谐振荡器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。译码显示电路将“时”、“分”、“秒”计数器的输出状态送到七段显示译码器进行译码,通过六个七段数码管显示出来。

本作品的主要设计目的是熟练使用555定时器构成多谐振荡器的方法,掌握使用74LS160构成60进制计数器的方法以及使用74LS160构成24进制计数器的方法,理解在实际的设计电路中电压电流关系对整个电路功能的实现所具有的重要性。

关键词:数字电子钟;555定时器;60进制计数器;24进制计数器;共阳极七段数码管;74LS47译码器;

第一章:设计方案的选择

数字电子技术的复杂性和灵活性决定了数字电子钟的设计方案有多种,以下是本设计的方案选择。

   1、信号源的选择

多谐振荡器,信号发生器,脉冲芯片以及石英晶体振荡器等方式都可以作为脉冲信号源,但是石英晶振产生的频率较高,需要用到分频器来对它进行分频处理,故在此我选择的是用555定时器制作的多谐振荡器,主要考虑的是它的易于制作和很好的稳定性。

   2、计数器的选择

时分秒计数器的选择在74系列里同样有多种,74LS160和 74LS161,74HC161,74LS191等等也都可以,考虑到其简单易用,在此我选择的是74LS160。

3、译码器的选择

译码器的选择就只有两大类,一类是驱动共阳极的数码管,一类是驱动共阴极的数码管。在74系列里也有好几种,在这里我选用74LS47来驱动共阳极数码管。

4、元器件清单

74LS160(十进制计数器)——6个,74LS47(译码器)——6个;74LS00(2输入与非门)——3个;BCD数码管——6个;NE555芯片一个,电阻,电容,滑动变阻器。

第二章、设计原理描述

1、数字计时器的设计思想

要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,使“时”、“分”、“秒”得以数字显示出来。我设计的数字时钟就是用来计时的,厄并没有增加那个什么其它的报时、校对的功能。

2、设计框图:

     电子钟在逻辑功能上是有秒脉冲发生器、秒计数器、分计数器、时计数器、译码器、显示器等组成。其原理框图如下所示:

    秒脉冲计数器——>>秒计数器——>>分计数器——>>时计数器——>>译码器——>>显示器

3、时钟信号的产生:

用NE555芯片和两个电阻以及两个电容组成一个时钟振荡电路,用来产生时钟信号的。电阻R1、R2和电容C1构成定时电路。定时电容C1上的电压UC作为高触发端TH(6脚)和低触发端TL(2脚)的外触发电压。放电端D(7脚)接在R1和R2之间。电压控制端K(5脚)不外接控制电压而接入高频干扰旁路电容C2(0.01uF)。直接复位端R(4脚)接高电平,使NE555处于非复位状态,3脚用于输出时钟信号。

由555定时器组成的多谐振荡器如图(C)所示,其中R1、R2和电容C为外接元件。其工作波如图(D)所示。

图2-3  555定时器组成的多谐振荡器及其工作波形图

设电容的初始电压=0,t=0时接通电源,由于电容电压不能突变,所以高、低触发端=0<CC,比较器A1输出为高电平,A输出为低电平,即(1表示高电位,0表示低电位),触发器置1,定时器输出此时,定时器内部放电三极管截止,电源向电容C充电,逐渐升高。当上升到时,输出由0翻转为1,这时触发顺保持状态不变。所以0<t<期间,定时器输出为高电平1。

时刻,上升到,比较器的输出由1变为0,这时触发器复0,定时器输出

期间,,放电三极管T导通,电容C通过放电。按指数规律下降,当时比较器输出由0变为1,R-S触发器的,Q的状态不变,的状态仍为低电平。

时刻,下降到,比较器输出由1变为0,R---S触发器的1,0,触发器处于1,定时器输出。此时电源再次向电容C放电,重复上述过程。

通过上述分析可知,电容充电时,定时器输出,电容放电时,0,电容不断地进行充、放电,输出端便获得矩形波。多谐振荡器无外部信号输入,却能输出矩形波,其实质是将直流形式的电能变为矩形波形式的电能。

多谐振荡器的放电时间常数分别为

tPH≈0.7×(R1+R2)×C1

tPL≈0.7×R2×C1

振荡周期T和振荡频率f分别为

T=tPH+tPL≈0.7×(R1+2R2)×C1

f=1/T≈1/[0.7×(R1+2R2)×C1]

根据以上两个式子就可以根据所需要的频率来确定电阻和电容的参数,但是为了频率可调一般会在电路4和7中间接入一个滑动变阻器。

4、用两个74LS160组成一个60进制的计数器原理:

74LS160本来是十进制的计数器,那么如何用两个十进制的计数器使它成为一个60进制的计数器呢?不过仅仅用这两个芯片是不可能的,还需要借助一个叫做74LS00的与非门芯片。

74LS160的工作要满足的条件有两个:它的MR,PE,CEP,CET这四个端口要为高电平才可以为计数状态;另一个条件就是CP端要有上升沿信号的输入,才会进入计数的状态。当MR为低电平的时候,无论74LS160的状态如何,都会把数据进行清零。那么在了解了这三个关于74LS160的基本的知识之后,那么就可以开始设计60进制的计数器了。原理图如下:

首先第一个160芯片的CP端接入到信号发生的那个端口上,其它的PE,CER,CET,MR都接到高电平上。在160的四个输出端,把四个输出端按照高低位的顺序接入到74LS47的输入端上。再把第一个芯片的TC(进位输出端)接到第二个芯片的CP端。接到第二个芯片的CP端是为了产生时钟计数信号(也即秒钟的个位计数信号)。第二个芯片的接法也是它的PE,CER,CET都接到高电平上,在160的四个输出端上,一方面把13和12两端的线接到第一个74LS00的输入端,另一方面把四个输出端按照高低位的顺序接入到74LS47的输入端上。再把74LS00的输出端接到第二个芯片的MR端和第三个芯片的CP端。接到第二个芯片的MR端是为了对第二个芯片的计数进行清零处理;而接到第三个芯片的CP端是为了产生时钟计数信号(也即分钟的个位计数信号)。

那么下面解释一下为什么是这么接线的:160是一个四位的计数器,从低位到高位的依次顺序是(14、13、12、11)。当74LS00的输入信号全是高电平时,其输出信号为低电平(但两个输入信号不全为高电平的时候,其输出端一直为高电平),把第一个芯片的TC端接到第二个芯片的CP端,是因为160具有自动进位的功能,每当160从9变到0的时候,就会在TC端产生一个高电平脉冲信号,从而产生了一个上升沿,使得第二个芯片开始计数。对于第二个芯片我们只要其当计数到6就可以,但是又不能出现6,所以第二个芯片的输出端的接法是把13、12两个端口接到74LS00的输入端,但第二个芯片从5变到6时(CP端会受到第一个芯片的影响,从而触发第二个芯片从5变到6),此时端口输出可表示为(0110),从而和第一个芯片引发类似的数据清零处理。

在这个数字电路中是需要两个60进制的计数器的,但是分钟的计数器和秒钟是差不多的。

5、用两个74LS160组成24进制计数器的原理:

 电路图如下图所示:

 组成24进制的计数器的方法用点不同于60进制计数器的连接方法。因为时钟只能从0计时到24,但是有因为时钟的个位数不是一个循环的计数,第二次计数时只要计到4变5的时候就要清零,而时钟的十位数只要计到2变3的时候就要清零了,因此连接方法也就不同于之前的。

第五个芯片的CP端也是接到第二个74LS00的输出端口上,它的PE,CER,CET都接到高电平上。在160的四个输出端上,一方面把12端(0010)的线接到第三个74LS00的输入端,另一方面把四个输出端按照高低位的顺序接入到74LS47的输入端上。而对于第六个芯片的输出端中的13端(0100)接到第三个74LS00的输入端,对于74LS00的输出端分别接到第五个和第六个的MR端,这样就可以实现时钟的清零了,不会出现24了。因为当第五个芯片从3变成4的一瞬间,MR也在差不多同时进行清零了。对于第五个的计数是一方面利用160自身的从9变0的功能。

6、显示电路:

在设计我用74LS47译码器来驱动共阳极的一位数码管,电路图如下:

第三章:数字电路的仿真设计

在multisim中画完电路之后,在进行仿真,以用来检验电路的正确性。完整的电路图如下,在仿真的时候没有接入ne555电路,而是用的函数发生器来充当信号源。但是效果是一样的。

仿真的结果分析:经测试,电路可以实现设计要求,可以实现数字钟的基本功能,秒脉冲信号及60、24进制计数器均可正常工作。所以,基于仿真结果可以认定,此次数字钟的设计是成功的。

第四章:心得体会

通过这次对数字电子钟的课程设计,把课本上学到的知识与实践相结合。从中对学到的知识有了更进一步的理解,而且更进一步的熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。也锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。厄,在一开始的时候我查阅了智能车队的里上传的关于74系列的资料,在认真阅读完相应的芯片的资料后,发现不是很懂。只知道74LS160是十进制的计数器,但是怎样才能组成60进制和24进制的计数器呢,不得已只能上网查阅资料,但是一查却发现许多是基于单片机的电子钟设计,而不是纯数字电路,后来找到一些资料和图,却发现不是很好理解。最后按照一个查到的关于60进制的计数器,在软件上连了,却发现没用第二个数码管根本不会计数,也即没有上升沿的输入。最后看了半天和百度,才发现那个电路图是有问题的了。74LS160虽然是十进制的计数器,但是它便不会计到10,而是在9以后就变为0了,所以把160的13和11两端的线接到与非门上,根本就不会输出低电平,一直保持的高电平输出。最后在研究了一下160的几个端口的功能之后,发现我完全可以把第一个160的TC端接到第二个芯片的CP端以用来产生时钟信号。按照这种思路来设计电路的话,就可以只要用到三个74LS00与非门了,比一些用五个的就要更简便一些了。从这个查阅资料的过程中,我发现了有问题可以找百度,但是却不能依赖于百度,有时看书才是王道那。

其实设计本身并不是有很重要的意义,而是在于我们对待问题时的态度和处理事情的能力。各个芯片能够完成什么样的功能,使用芯片时应该注意那些要点。同一个电路可以用那些芯片实现,各个芯片实现同一个功能的区别。

另外,我还渐渐熟悉了multisim这个仿真软件的各个功能,让我体会到了其中的乐趣,而在用这个软件的时候,还要学会如何去接线和安排这些元器件,用实现电路的简洁和直观,尽量要少的线交叉在一起。熟练掌握了Multisim仿真软件的使用,最重要的是提高了自己的动手实践能力,话说熟练的掌握了这个软件的一些基本的用法,比如说找元器件那和设置参数那,那么以后我们也就可以按照自己的思路去设计一些电路,并进行仿真,以证实自己的想法并且进行改进。具体来说:

一、学会了如何使用Multisim 10软件。

二、在实践中了解了多种元件的功能和参数。

三、从仿真实践中不仅学会了如何去分析问题和解决问题,也体会到了成功的喜悦和失败的忧郁。

四、提高了自己的读图和分析图还有设计图的能力。

五、掌握了设计不同进制的计数器的方法。

六、学会了用555定时器来产生一定频率的脉冲的方法。

    总之,这次课程设计让我学到了好多东西,也掌握了一些74系列芯片的使用。


更多相关推荐:
数字电路实验报告模板

组合逻辑电路的设计与调试一、实验目的1、掌握用门电路设计组合逻辑电路的方法。2、掌握组合逻辑电路的调试方法。二、实验器材数字电路实验箱一台、74LS00若干三、实验内容1、用与非门实现散人多数表决器电路(1)真…

数电实验报告1

实验一门电路逻辑功能及测试一实验目的1熟悉门电路逻辑功能2熟悉数字电路学习机及示波器使用方法二实验仪器及材料1双踪示波器2器件74LS00二输入端四与非门2片74LS20四输入端双与非门1片74LS86二输入端...

数字电路实验报告

数字电路技术实验报告学号130704002130704010姓名曹兴运丁玉祥组号B8日期20xx1012一实验目的1掌握中规模集成译码器的逻辑功能和使用方法2掌握中规模集成编码器的逻辑功能和使用方法3熟悉掌握集...

数字电路实验报告3

暨南大学本科实验报告专用纸课程名称数字逻辑电路实验成绩评定实验项目名称三态门特性研究和典型应用指导教师实验项目编号0806003803实验项目类型验证型实验地点B406学生姓名学号学院电气信息学院系专业电子信息...

数字电路实验报告4

暨南大学本科实验报告专用纸课程名称数字逻辑电路实验成绩评定实验项目名称中规模集成电路功能测试及应用指导教师实验项目编号0806003804实验项目类型验证型实验地点学生姓名学号学院电气信息学院系专业实验时间20...

数字电路与数字逻辑大型实验报告

数字电路与数字逻辑大型实验报告1一实验内容一QuartusII操作练习1用原理图输入法设计一个3线8线译码器二数字频率计设计三倒计时秒表设计二数字频率计的设计1工作原理脉冲信号的频率就是在单位时间内所产生的脉冲...

数电实验课程设计总结报告(电子表)

数字电路课程设计数字定时器课程设计任务书1集成数字定时器2技术指标1设计一个数字定时器要求它具有数字钟的功能又可以按预定时刻发出控制信号对被控对象实施开关控制2时钟功能具有24小时计时方式显示时分秒计时范围要求...

数电实验报告

数字电子技术实验实验报告学校北京交通大学专业通信工程班级通信1103学生王兴学号20xx年12月11日USB30等新的接口将会如何发展目录一USB30错误未定义书签1USB30定义错误未定义书签2USB30标准...

电工电子实验报告(多功能数字计时器设计)03

电工电子综合实验报告题目多功能数字计时器设计姓名张正刚学号091020xx50班级091020xx院系自动化专业自动化指导电子技术中心完成时间20xx8291目录1电路功能设计要求介绍2电路原理简介3单元电路设...

数电实验报告(15)

数字电路技术实验报告学专班学姓院信息科学与工程学院业电气工程及其自动化级13自动化1班号136330929名陈凯指导教师完成日期20xx年8月10日宁波大学信息科学与工程学院数值计算与Matlab语言实验报告学...

数电实验报告五

上海电力学院数字电路与数字逻辑实验指导书实验题目计数器的功能验证专业年级20xx252学生姓名学号同组姓名指导教师姓名刘洪利实验五计数器的功能验证一实验目的和要求1了解并掌握计数器的工作原理2使用EDA软件验证...

数电实验报告第八章

数字电路与逻辑设计实验报告Quartus软件设计组合电路姓名学号班级专业电子科学与技术实验日期一实验目的1掌握用Quartus软件进行电路设计的图形输入设计方法2学会利用Quartus分析逻辑电路3能够正确分析...

数字电路实验报告(24篇)