第一节 数字电路概述
电子电路中,被传递和处理的信号可以分为两大类:一类是模拟信号,另一类是数字信号。信号在时间上和数值上都是连续变化的,称为模拟信号。例如温度、压力、速度等,如图1-1(a)所示。处理模拟信号的电子电路称为模拟电路。信号在时间上和数值上都是离散的、不连续的,称为数字信号。如信号的有和无、电位的高和低、电路的通和断等,如图1-1(b)所示。处理数字信号的电子电路称为数字电路。
图1-1 模拟信号和数字信号
一、数字电路的特点
为了更好地掌握数字电路的工作特点,不妨将模拟电路与数字电路做一比较。首先在研究问题的关注点上有所不同,在模拟电路中关注的是怎样不失真地放大模拟信号;而数字电路中关注的是电路的输入与输出之间的逻辑关系,即电路的逻辑功能。其次在分析方法上也有不同,模拟电路中分析的方法是利用图解法和微变等效电路法,对电路进行静态和动态分析;而数字电路中分析的方法是利用逻辑代数,主要用真值表、逻辑函数表达式、时序图等来描述电路的逻辑功能。第三是两者所用的电路单元不同,模拟电路中的基本单元是放大器,且晶体管一般处在放大状态;而数字电路中的基本单元是逻辑门电路、触发器及其他逻辑部件,晶体管一般工作在开关状态。
数字电路具有如下特点:
①数字信号是一种二值信号。数字信号常用0和1表示两种对立的逻辑状态,如表示信号的有或无、电位的高或低等。凡具有两个稳定状态的元器件都可用在数字电路的基本单元电路,它们都能产生0和1的二值信号。
②数字电路结构简单、稳定可靠、易于集成。数字电路由最基本的单元电路组成,在这些基本单元中,对元件参数要求不高,允许有一定的误差,只要能区分0和1两种状态就可以了,因此数字电路具有较高的稳定性和可靠性,这对实现数字电路集成化很有利。数字电路中元件处于开关状态,功耗比较小,集成电路的集成度越高,体积越小、质量越小,相应的功耗会越小。
③数字电路抗干扰能力强、精度高、保密性好。由于数字信号在传送时采用二值信号,只涉及信号的有或无,外界干扰仅影响信号的幅度,不影响信号正常传送,因而抗干扰能力强。数字电路中采用二进制,故电路具有算术运算和逻辑判断能力,还可以用增加数字的位数来提高电路精度。数字信号能长期存储,使大量的信息资源得以保存,还可加密处理,使可贵的资源不易被盗窃。
由于数字电路具有上述特点,故发展十分迅速。在数字通信、数字控制技术、数字测量、数字仪表、电子计算机及家用电器等各个技术领域中都有广泛的应用。随着数字集成电路的迅速发展,更凸显出数字电路的主导地位。
二、数制与码制
数制是计数制的简称。选取一定的进位规则,用多位数码来表示某个数的值,这就是所谓的数制。
1.常用数制
日常生活中常会遇到计数的问题,同一个数可以用不同的数制来表示,人们习惯于使用十进制,而在数字电路中常采用二进制和十六进制,下面介绍最常用的十进制、二进制、十六进制。
(1)十进制
十进制是人们常用的计数体制。在十进制数中,每一位有0~9十个数码,超过9的数必须用多位数表示,这十个数码按不同的组合就可表示一个数,低位与高位间采用“逢十进一”的计数规则,故称为十进制。例如326.58这个十进制数可写成:
326.58=3×102+2×101+6×100+5×10-1+8×10-2
显然,任意一个十进制数N,都可展开为
式中,(N)10用下标10表示十进制数,也可以用D表示;ki为第i位的系数,它可以是0~9十个数码中的任何一个;10i为第i位的权,计数的基数为10;n为整数部分的位数,m为小数部分的位数,则i包含从n-1到0的所有正整数和从-1到-m的所有负整数。
(2)二进制
二进制是数字电路中应用最广泛的一种数制。在二进制数中,每一位数仅有0与1两个可能的数码,所以计数基数为2,低位向高位进位采用“逢二进一”的计数规则,故称为二进制。例如1011.01这个二进制数可写成:
(1011.01)2=1×23+0×22+1×21+1×20+0×2-1+1×2-2
和十进制相仿,任意一个二进制数N,都可展开为
式中,(N)2用下标2表示二进制数,也可以用B表示;ki为第i位的系数,只取0或1中的一个数码,2i为第i位的权;n为整数部分的位数,m为小数部分的位数。
由于二进制数中,仅有0与1两个“对立”的数码,这很容易与电路中的两种对立状态所对应,如三极管的饱和与截止、信号的有与无、电位的高与低等,都可以用0与1两个数码来表示。二进制运算规则简单、操作方便,这些特点使二进制在数字电路中的应用十分方便。
(3)十六进制
在十六进制中,每一位数有16个不同的数码,分别用0~9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)表示,所以计数基数为16,低位向高位进位采用“逢十六进一”的计数规则,故称为十六进制。例如4AC.6F这个十六进制数可写成:
(4AC.6F)16=4×162+10×161+12×160+6×16-1+15×16-2
和十进制相仿,任意一个十六进制数N,都可展开为
式中,(N)16用下标16表示十六进制数,也可以用H表示;ki为第i位的系数,可取0~F中的任一个数码;16i为第i位的权。
目前,在微型计算机中较为普遍的采用8位、16位和32位二进制并行运算。在编写程序时如用二进制数来表示,显得非常麻烦和冗长,若用十六进制数来表示,则非常简洁方便。如8位、16位和32位的二进制数可以用2位、4位和8位的十六进制数来表示,因此在编写程序时都用十六进制。
2.数制转换
(1)二-十进制数转换
将二进制数转换为等值的十进制数称为二-十进制数转换。转换时可按式(1-2)展开,然后把所有各项的值按十进制数相加,即采用按权展开相加法,就可得到相应的十进制数。
【例1-1】 将二进制数1011.01转换为十进制数。
解:(1011.01)2=1×23+0×22+1×21+1×20+0×2-1+1×2-2
=8+0+2+1+0+0.25
=(11.25)10
(2)十-二进制数转换
将十进制数转换为等值的二进制数称为十-二进制数转换。十进制数转换为二进制数时,应按整数和小数两部分进行。整数部分可采用连续除2取余数法,直到商等于零为止,各次所得的余数为二进制数由低位到高位的数字;小数部分可采用连续乘2取整数法,先取出的整数为二进制数的最高位小数,后取出的整数依次为二进制数的次低位小数。最后,将所得的二进制整数和小数合并,就可得到相应的二进制数。
【例1-2】 将十进制数147.815转换为二进制数。
解:
故(147.815)10=(10010011.1101)2。
(3)二-十六进制数转换
将二进制数转换为等值的十六进制数称为二-十六进制数转换。由于4位二进制数恰好有16个状态,把这4位二进制数看成一个整体时,它的进位输出正好是逢十六进一,所以只要从低位到高位按每4位二进制数划为一组,并代之以等值的十六进制数,即可得到相应的十六进制数。
【例1-3】 将二进制数(01011110.10110010)2转换为十六进制数。
解:
故(01011110.10110010)2=(5E.B2)16。
反之,如将十六进制数转换为等值的二进制数,则可将十六进制数的每一位用等值的4位二进制数代替即可,这里不再赘述。
3.码制
在数字系统中,可用多位二进制数码来表示数量的大小,也可以用它来表示某种特定意义的信息。对于后者,这些数码已失去了数值的含义,只表示某种特定的信息,例如,各种文字、符号等,这样的多位二进制数码称为代码。例如,在运动会上,为了便于识别运动员,通常给每位运动员编上一个号码,这些号码仅代表不同的运动员,已失去了数量大小的含义。
为了便于记忆和处理,在编制代码时需要遵循一定的规则。选取一定的编码规则用一组代码来表示某种特定的信息,这就是所谓的码制。码制是编码制的简称。
例如在用4位二进制数码来表示1位十进制数的0~9这10个状态时,就有许多不同的码制。常将这些代码称为二-十进制代码,简称BCD(binary coded decimal)代码。它既有二进制数的形式,又有十进制数的特点。由于4位二进制数码能表示16个不同的状态,而十进制数中的0~9十个数码仅需其中的10个状态,其他的6个状态均为禁用码。究竟选用哪10个状态,它的编码规则有很多种。常见的BCD代码见表1-1。
表1-1 常见的BCD代码
续上表
(1)8421码
8421码是BCD代码中最常见的一种,在数字系统中应用最多。在用4位二进制数码组成一个代码来表示1位十进制数码时,由于代码中从左到右每一位的1分别表示8、4、2、1,因此将这种代码称为8421码。每一位的1代表的十进制数称为这一位的权。8421码中每一位的权是固定不变的,它为恒权代码。在8421码中,将代码中每一位的1代表的十进制数加起来,所得的和就是它所代表的十进制数码。例如,表1-1中8421码的代码为0110时,所对应的十进制数为6,而代码0111对应的是7。反之,在编写程序时也可将一个十进制数用8421码来表示。
【例1-4】 将一个十进制数568.37用8421码表示。
解:十进制数 5 6 8. 3 7
8421码 0101 0110 1000 0011 0111
即(568.37)10=(010101101000.00110111)8421。
由于1位十进制数需要用4位二进制数表示,那么n位十进制数就需要n个4位二进制数表示。在二-十进制数中,每组4位二进制数的位与位之间是二进制关系,而组与组之间是十进制关系。
(2)2421码
2421码也用4位二进制代码来表示1位十进制数,它也是恒权代码。它的特点是0和9、1和8、2和7、3和6、4和5的代码互为反码,这为二-十进制运算带了方便。
(3)5211码
5211码也是恒权代码。它的每一位的权正好与8421码的十进制计数器4个触发器输出脉冲的分频比相对应,这种对应关系在某些数字系统中很有用。
(4)余3码
余3码不是恒权代码,即它的代码中的位无固定权值。它的编码规则与8421码不同,如果把每一个余3码看作4位二进制数,则它的数值要比它所表示的十进制数码多3,故称为余3码。它的特点和2421码相仿,即0和9、1和8、2和7、3和6、4和5的余3码互为反码,这对于求取对10的补码非常方便。另外,如果将两个余3码相加,所得的和将比十进制数和所对应的二进制数多6,因此,用余3码做十进制加法运算时,若两数之和为10,正好等于二进制的16,于是便从高位自动产生进位信号。
(5)余3循环码
余3循环码是一种变权代码,代码中每一位的1并不代表固定的数值。它的特点是相邻两个代码间仅有一位的状态不同。因此,按这种编码接成计数器时,每次状态转换中仅有一个触发器翻转,译码时可避免竞争-冒险现象。