分享

模拟电子技术网络课堂

 摩仔 2006-05-08

实验3.2 计数器、译码器、七段译码器与LED显示

 

 

|实验目的 |实验思路和实验前准备 |实验内容和步骤 |报告要求 |其他实验手段    
 

译码和显示在各种类型的数字仪表、检测设备及其他数字化系统中都是不可缺少的组成部分,通过实验进一步熟悉它们的工作原理是非常必要的。

一、实验目的

1.  熟悉译码器、计数器、七段译码器和LED显示器的使用方法;

2.学会控制电路的基础设计方法,提高综合实验的技能,为学习微机打下基础。

二、实验思路和实验前准备

1.  熟悉译码器的逻辑功能

3.2.1 74LS138逻辑符号图

一个译码器是将输入确定位数二进制代码的不同组合“翻译”成不同的对应输出信号。常用的译码器有教材上介绍的38译码器74LS138,即输入有3位二进制,其对应的8种组合分别与一个输出对应,其逻辑符号如图3.2.1。当所有74LS138的输入控制端有效时,输出与输入最小项的对应关系是 i017)。因此教材中已经介绍了它可以实现多输出逻辑函数。但在数字系统的设计中,译码器的另一个更为重要的作用是地址译码,也就是说,译码器将A0A1A2输入的三位地址“翻译”成8个输出信号,A0A1A2的一个确定值仅对应有一个输出为低电平有效,一般在数字计算机系统中,译码器的这8个输出信号分别接到其它器件的片选端 Chip Select,其上的横线代表片选信号是低电平有效,即低电平选中该芯片,它就可以与计算机通信数据。因此74LS1388个输出最多可以连接8个计算机外设接口,而任一时间最多只选中一个工作。图3.2.2就是早期的PC计算机使用74LS138译码器构成计算机中DMA控制器8237、中断控制器8259A、计数/定时器T/C8253)、并行可编程接口PPI8255A)、DMA页面寄存器及NMI屏蔽寄存器的片选或控制端。根据图中连接方法,可得到各芯片或寄存器的地址空间如图3.2.2右面所列。在信号AEN=1时,大家分析图中所标的各个芯片的地址范围是否正确?这一部分在学习微型计算机原理时会有更深刻的体会。

3.2.2  IBMPC/XT 系统主板 I/O接口地址译码电路

译码器还有许多其它的型号,与集成逻辑门中介绍的方法一样,可以在丰富的网络资源中得到找到需要的相关信息。

另外,在实验前,有必要先介绍一下器件符号的概念,对于同一个器件的逻辑符号图或引脚图,不同的器件手册或教材使用的引脚符号和表示形式都不一样,也许大家在学习过程中已经注意到这一点。为了与教材保持一致,我们对逻辑符号图进行规范,即逻辑符号框图内所有变量均为正逻辑(即框内符号上没有非号),逻辑符号框图外输入端的小圆圈表示该输入控制端为低电平有效,而输出端的小圆圈表示反码输出。即小圆圈实现了逻辑非运算,那么逻辑符号框图外对应的每个引脚的符号或变量名就默认为:当逻辑符号框图外引脚没有小圆圈时,那么该引脚对应的变量名与框图内符号一样,但用斜体表示是变量。例如,图3.2.1中的A0A1A2E3;当框图外引脚有小圆圈时,那么该引脚对应的变量名是在框内符号上冠一非号,例如,图3.2.1中的 。以后框图外引脚对应的变量名不再标出,但使用时按照以上规定。但要注意这只是教材的规定,并不是标准,其它的参考书或器件手册中的标法可能会五花八门。因此,使用器件时,大家学会使用器件的方法是最重要的,这样面对不断出现的新器件才不会束手无策。通过大量的使用集成器件,大家会发现使用中小规模的集成器件只要了解以下几点即可:

l   在逻辑符号图或原理图中,器件的输入信号一般在图框的左面或上面,输出在右面;

l  当输入信号端有小圆圈(一般是控制输入端),表示该端为低电平有效,当输出信号端有小圆圈,表示器件工作时该端输出低电平有效;

l   多控制端芯片只有当所有控制端同时有效时,才可以实现芯片的逻辑功能;

l   如果资料中给出了器件的功能表,要学会看对应的功能表,器件功能以功能表为准;

l   资料也是经常会有出错的情况,遇到问题可以通过实验来最后验证。

 2  计数器

计数器的功能是累计输入脉冲个数。它是数字系统中使用最为广泛的时序逻辑部件。计数器的种类非常繁多,但为了降低集成电路的价格,所以计数器也是批量生产了通用的十六进制(二进制)和十进制计数器。但有时会用到其它进制计数,比如,数字钟的2460进制等,对于其它进制计数器可以通过教材中介绍方法使用反馈的形式实现。比如,现有一块十六进制计数器74LS161,其功能如表3.2.1,逻辑符号如图图3.2.3。使用74LS161的清0端( )作为反馈清0,实现十进制计数的原理如图3.2.4所示。

3  LEDLight Emitting Diode)显示器(七段数码管)

LED显示器在许多的数字系统中作为显示输出设备,使用非常广泛。它的结构是由发光二极管构成如图3.2.5所示的abcdefg七段,并由此得名,实际上每个LED还有一个发光段dp,一般用于表示小数点,所以也有少数的资料将LED称为八段数码管。

LED内部的所有发光二极管有共阴极接法和共阳极接法两种,即将LED内部所有二极管阴极或阳极接在一起并通过com引脚引出,并将每一发光段的另一端分别引出到对应的引脚,LED的引脚排列一般如图3.2.5所示,使用时以具体型号的LED资料为依据。通过点亮不同的LED字段,可显示数字0,1,┅,9和A,b,C,d,E,F等不同的字符及自定义一些段发光代表简单符号。

3.2.6LED的使用举例,图中的LED为共阳极接法,因此,com端接5V电压,其它引脚端通过限流电阻接到锁存器74LS373的输出,当各段输入端为逻辑“1”,对应的LED不亮;各段输入端为逻辑“0”时,对应LED才发亮。使用时要根据LED正常发光需要的电流参数估算限流电阻取值。电阻取值越小,电流大,LED会更亮,但要注意长时间过热使用烧坏LED

LED多数情况用于显示十进制数字,要将0~9的数字用7段显示,必须将数字转换为LED对应七段码的信息,比如,要显示“0”,就是让abcdef段发光,显示“1”,让bc段发光,等等如表3.2.1所示。然后根据LED是共阴极还是共阳极接法确定LED各输入端应接逻辑1还是逻辑0,如果是共阳接法,要显示“0时,abcdef段就要输入逻辑0,共阴极接法则恰巧相反。也就是说,对于共阴极和共阳极两种不同的接法,显示同一个字符时,对应的显示段码是不同的,互为反码。表3.2.2列出了这两种接法下的字形段码关系表。表中的段码数字是以LED的8段与二进制字节数以下列对应关系为前提得到的:

比如为了显示“0”,对应共阴极应该使D7D6D5D4D3D2D1D0 = 00111111B,即3FH;对共阳极应该使D7D6D5D4D3D2D1D= 11000000B,即C0H。如表3.2.2所示,从表中可以看出,对于同一个显示字符,共阴极和共阳极的七段码互为反码。

将待显示内容“翻译”为LED段码的过程,可以由软件查表方法实现译码,这在学习微型计算机有关课程时会使用。也可以采用专用芯片,比如,带驱动的LED七段译码器74LS47及74LS48、74LS49等,依靠硬件实现译码。

3.2.2  7段LED显示器字符段码表

显示字符

共阴极段码

共阳极段码

显示字符

共阴极段码

共阳极段码

0

3FH

C0H

C

39H

C6H

1

06H

F9H

d

5EH

A1H

2

5BH

A4H

E

79H

86H

3

4FH

B0H

F

71H

8EH

4

66H

99H

·

80H

7FH

5

6DH

92H

P

73H

82H

6

7DH

82H

U

3EH

C1H

7

07H

F8H

T

31H

CEH

8

7FH

80H

Y

6EH

91H

9

6FH

90H

8.

FFH

00H

A

77H

88H

“灭”

00H

FFH

b

7CH

83H

自定义

 4.七段译码器

七段译码器也称为BCD—七段显示译码器,顾名思义,它是将输入的BCD码翻译成LED显示该BCD的七段信息输出。七段译码器有输出低电平有效和高电平有效的多种型号。当选用的LED是共阳极接法时,应使用低电平输出有效的七段译码器,如74467447等;当选用的LED是共阴极接法时,应使用高电平输出有效的七段译码器,如74487449OC输出)等。

七段译码器驱动LED的原理如图3.2.7所示,图中的“?”是表示LED和七段译码器之间一般还要接限流电阻或其它匹配电路,或者驱动译码器是OC输出,需要接上拉电阻。七段译码器内部一般包含了LED的驱动电路,驱动共阳极LED的译码器(输出低电平对应段亮)驱动电流一般较大(灌电流),如果该电流与LED器件的正常工作电流近似,那么可以直接驱动LED,如果驱动电流大于LED正常电流许多,那么两者之间要加限流电阻,根据LED的参数估算限流电阻的大小;如果七段译码器驱动能力不够大,特别是驱动共阴极LED时,可以在两者之间加适当的上拉电阻,比如7448驱动共阴极的BS201时,要LED有正常显示亮度就要加上拉电阻[2]

LED也有多种型号,如BS211BS212BS213为共阳型;BS201 BS202 BS203为共阴型。每种型号的LED厂家手册都提供了详细功能及参数介绍(可以通过资料或网络查找),比如,七段共阴磷砷化镓显示器BS201主要参数:

1)消耗功率  PM150mW

2)最大工作电流 IFM100mA

3)正常工作电流 IF40mA

4)正向压降  VF 1.8V

5)发红色光

6)BS201燃亮电压为5v

共阴极BS202LEDPM300mWIFM200 mAIF60mAVF 1.8VVR5V,发红光。

实验中采用七段共阳极数码管(TFK433)和74LS47七段驱动器,查找它们的详细资料,分析两者之间应如何连接?画出连线图。 

5.  多个LED的动态扫描显示

在许多实际的系统中,经常需要多个LED显示系统的信息,比如,数字钟实验要显示时、分和秒信息,就必须要6个LED,对这些LED的控制也可以和上面一位LED显示器一样,采用6个七段译码器驱动每一个LED,并使所有LED的公共端始终接有效信号,即共阴极LED公共端接地,共阳极LED公共端接电源。这种LED显示方式称为静态显示方式。采用静态方式,LED亮度高,但这是以复杂硬件驱动电路作为代价的,硬件成本高。

因此,在实际使用时,特别是有微处理器的系统中,如果用多位的LED显示,一般采取动态扫描方式、分时循环显示,即多个发光管轮流交替点亮。这种方式的依据是利用人眼的滞留现象,只要在1秒内一个发光管亮24次以上,每次点亮时间维持2ms以上,则人眼感觉不到闪烁,宏观上仍可看到多位LED同时显示的效果。动态显示可以简化硬件、降低成本、减小功耗。图3.2.8是一个6位LED动态显示电路,段驱动器输出LED字符7段代码信息,位驱动器输出6个LED的位选信号,即分时使Q0 ~ Q5轮流有效,使得LED0~LED5轮流显示。

3.2.1  BCD码与LED相应发光段对照表

3.2.6 LED显示举例


 

3.2.8 多位LED动态显示电路

三、实验内容和步骤

 

计数脉冲产生电路

 

74LS161

构成十进制计数器

 

74LS47

译码驱动

 

LED显示器

4BCD

7位段码

3.2.11 实验原理框图

1Hz方波

1.验证74LS138的逻辑功能

如图3.2.9使74LS138的所有控制输入信号E3 都分别有效,由逻辑开关提供数字输入信号,接上74LS138的电源和地线,给一组输入数据测量一次8个输出的逻辑电平,或者使用ET-3200A学习机上的逻辑显示器LED监视输入变化时,输出的状态,列数据记录表,记录实验数据。

然后,使图3.2.9中的任意一个控制输入端无效,比如,将E3端改为接地,然后再改变A0A1A2数字输入端,观察8个输出端是否有变化?

 2.  熟悉计数器、七段译码器和LED显示器逻辑功能

按图3.2.4连线实现一位十进制计数器,由七段共阳极数码管(TFK433)显示计数结果,其引脚排列同图3.2.5。数码管由BCD—七段显示译码器(74LS47)驱动,其引脚排列如图3.2.10所示,TFK43374LS47之间按实验前准备分析的方式连接。一位十进制计数器的电路原理图如图3.2.11所示,搭接电路并实验。ET-3200A学习机上的1Hz信号可以作为计数输入,或者用555构成1Hz的信号作为输入计数器输入。

3.2.9  74LS138实验

 

 

 

 

 

 

2.  验证人眼的滞留现象

首先,将ET-3200A学习机上的1Hz时钟信号接到逻辑显示器的L4端,观察L4的显示效果;然后,将1KHz时钟信号接到逻辑显示器的L4端,观察L4的显示效果;最后将100KHz时钟信号接到逻辑显示器的L4端,观察L4的显示效果。

记录观察的到现象,分析原因。

四、报告要求

1.  按照实验顺序,分析各部分实验内容与理论分析是否一致。附上原始记录的数据表格;并回答各部分实验内容中提出的问题;

2.  如果实验中遇到问题或故障,给出解决方法。没能及时解决的,分析原因。

其他实验手段

1.  MAX+PLUSⅡ下用VHDL实现74LS138功能,并仿真功能是否正确。以下提供了VHDL的译码器代码。

library  IEEE;

use  IEEE.std_logic_1164.all;

entity  decoder3_8  is

        port

           (  A2, A1, A0, E3, E2, E1:  IN   STD_LOGIC;

                  Y                :  OUT  STD_LOGIC_VECTOR(7 DOWNTO 0) );

end  decoder3-8;

ARCHITECTURE rt1 OF decoder3_8 IS

SIGNAL  indate:  STD_LOGIC_VECTOR(2 DOWNTO 0);

BEGIN

indate <= A2 & A1 & A0;

PROCESS(INDATE, E3, E2, E1)

BEGIN

         IF (E3=‘1‘ AND E2=’0’ AND E1=’0’) THEN

                  CASE  indate IS

                           WHEN  "000" => Y <= "11111110";

                           WHEN  "001" => Y <= "11111101";

                           WHEN  "010" => Y <= "11111011";

                           WHEN  "011" => Y <= "11110111";

                           WHEN  "100" => Y <= "11101111";

                           WHEN  "101" => Y <= "11011111";

                           WHEN  "110" => Y <= "10111111";

                           WHEN  "111" => Y <= "01111111";

                           WHEN OTHERS => Y <= "XXXXXXXX";

                  END CASE;

         ELSE

                  Y <= "11111111";

         END IF;

        END  PROCESS;

END  rt1;

2.  VHDL实现计数功能和七段译码功能。

3.  用原理图方法实现74LS138的功能。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多