1.1 数字电子电路的基础知识
在观察自然界中各种各样的物理量时不难发现,尽管各种信号的性质各异,但就其变化规律的特点而言,无外乎是连续变化和离散变化两大类,即所谓的模拟信号和数字信号。
1.1.1 数字信号和模拟信号
数字信号是指在时间上和幅度上都是断续变化而非连续变化的,也就是说这类信号只是在某些特定时间内出现,如图1.1.1(a)所示。例如自动点钞机,每通过一张钞票便给控制电路一个信号,使之计1;而没有钞票通过时给控制电路的信号为0,所以不计数。由此可见钞票的张数这个信号无论在时间上还是在数量上都是不连续的,因此它是一个数字信号。
图1.1.1 模拟信号和数字信号
模拟信号指在时间上和幅度上都是连续变化的,如图1.1.1(b)所示。如蓄电池在充电的过程中,其正、负极两端的电压信号就属于模拟信号,因为在任何情况下,蓄电池两端的电压不能够突变,所以其两端的电压信号无论在时间上还是在数量上都是连续变化的。而且,这个电压信号在连续变化过程中的任何一个取值都有具体的物理意义,即表示一个相应的电压值。
1.1.2 数字电路的基本概念
在电路输入到输出过程中,传递、加工和处理数字信号的电子电路叫作数字电路,传递、加工和处理模拟信号的电子电路称为模拟电路。与模拟电路相比,数字电路具有以下显著的优点。
(1)结构简单,便于集成化、系列化生产,成本低廉,使用方便。
(2)抗干扰性强,可靠性高,精度高。
(3)处理功能强,不仅能实现数值运算,还可以实现逻辑运算和判断。
(4)可编程数字电路可容易地实现各种算法,具有很大的灵活性。
(5)数字信号更易于存储、加密、压缩、传输和再现。
在数字电路中,通常将高电位称为高电平,低电位称为低电平。在实际数字电路中,高电平通常为+3.5V左右,低电平通常为+0.3V左右。由于数字电路采用二进制数来进行信息的传输和处理,为了便于分析,在数字电路中分别用1和0来表示高电平和低电平。这种高电平对应逻辑1态、低电平对应逻辑0态的逻辑关系称为正逻辑关系。也可用高电平对应逻辑0态,低电平对应逻辑1态,这种关系称为负逻辑关系。本书中所采用的都是正逻辑关系。
在分析模拟电路的过程中,我们通常需要求解出电路输出信号与输入信号之间的关系。通常情况下这两者之间的关系可以用一个普通的数学表达式来描述。而数字电路输出信号与输入信号之间的关系是一种逻辑关系,所以在分析数字电路时,是以逻辑代数作为主要工具,利用真值表、逻辑表达式、波形图、卡诺图等表示方法来表示电路输入与输出之间的逻辑关系。
1.1.3 数制和码制
一、数制
数制其实就是计数的规律。在日常生活中,人们习惯于采用十进制数。在数字电路中一般采用二进制数,但二进制数有时表示起来不太方便,位数太多,所以有时也采用八进制数和十六进制数。当然,对于任何一个数,可以用不同的进位制来表示。
1.十进制数
十进制全称为十进位计数制,是人们日常工作、生活中最熟悉、最常用的计数制。例如一个十进制数213610,下标10表示此数为十进制数,也即该数制的基数为10。
数位加权系数: 103 102 101 10 0
数值的数: 2 1 3 6
数值的值: 2000 100 30 6
即
213610= 2×10 3+ 1×10 2+ 3×10 1+ 6×10 0
十进制也常用D来表示,如十进制数305也可表示为(305)D。
2.二进制数
二进制数的位置记数法表示形式为10112,下标2表示此数为二进制数,也即该数制的基数为2。
数位加权系数: 2 3 2 2 21 20
数值的数: 1 0 1 1
即
10112= 1×2 3+0×2 2+1×2 1+1×2 0
二进制也常用B来表示,如二进制数1011也可表示为(1011)B。
3.八进制数
任一八进制数如168可以成:
168= 1×81+ 6×80
八进制也常用O来表示,如八进制数567表示为(567)O。
4.十六进制数
十六进制数的计数规律为逢十六进一,其中数值取0,1,……,8,9,A,B,C,D,E, F十六个数码或字母之一。例如一个十六进制数7E6B可以写成:
7E6B16= 7×163+ E×162+ 6×161+ B×160
十六进制也常用H来表示,如十六进制数A13也可表示为(A13)H。
二、不同数制之间的相互转换
1.二进制数转换为十进制数
将二进制数转换成等值的十进制数时,可将二进制数写成多项式的形式,按权展开相加即可。例如,将二进制数1011转换成十进制数:
(1011)B= 1×23+0×22+1×21+1×20= 8+2+1 = (11)D
2.十进制数转换成二进制数
十进制数转换成二进制数时,采用基数除法,即用二进制数的基数2去除十进制整数,第一次所得余数为二进制数的最低位,把得到的商再除以基数2,所得余数为二进制数的次低位,依此类推,继续上面的过程,直至商为零时,所得到的余数为二进制数的最高位,故此法叫除二取余法。
【例1.2.1】 将(14)D转换成二进制数:
余数
14÷2=7……0 最低位
7÷2=3……1
3÷2=1……1
1÷2=0……1 最高位
得: (14)D= (1110)B
3.各种数制之间的相互转换
【例1.2.2】 完成八进制数对其他进制数的转换(317)O=( )H=( )B=( )D。
步骤一:八进制数转换成二进制数(方法:将八进制数每个数位上的数分别用三位二进制代码表示):
步骤二:二进制数转换成十六进制数(方法:将步骤一中转换完成的二进制数从最低位往最高位四位四位地数,不够四位的填0补充,然后将每四位二进制数分别用一位十六进制数码表示):
步骤三:用二进制数、八进制数或十六进数制完成对十进制数的转换:
所以:;
【例1.2.3】 完成十六进制数对其他进制数的转换(A36) H=(______)O=(______)B=(______)D。
步骤一:十六进制数转换成二进制数(方法:将十六进制数每个数位上的数分别用四位二进制代码表示):
步骤二:二进制数转换成八进制数(方法:将步骤一中转换完成的二进制数从最低位往最高位三位三位地数,不够三位的填0补充,然后将每三位二进制数分别用一位八进制数码表示)
( 101 000 110 110 )B=( 5066 )O
步骤三:用二进制数、八进制数或十六进制数完成对十进制数的转换
(A36) H=10×162+3×161+6×160=( 2614)D
所以:(A36) H=( 5066 )O=( 101000110110 )B=( 2614 )D;
三、码制
数字电路中处理的信息除了数值信息外,还有文字、符号以及一些特定的操作(例如表示确认的回车操作)等。为了处理这些信息,也必须将这些信息用二进制数码来表示。为了便于记忆和查找,这些用来表示数、字母和符号的二进制数也必须遵循一定的规则,这个规则就是码制。这些特定的二进制数码称为这些信息的代码,这些代码的编制过程称为编码。
1.码制的类型
现在常用的编码类型有BCD码,可自动纠错校正的可靠性编码(如奇偶检验码)以及字符代码(如美国标准信息交换码 ASCII:计算机将输入的信息符号,按一定的规则翻译成由“0”和“1”组成的二进制编码,再对二进制编码进行处理,最后将处理结果还原成我们可以识别的符号,输出相应的信息。目前,计算机内部普遍使用的信息编码是ASCII码。标准ASCII码由7位二进制数组成,用来表示26个英文大小写字母以及一些特殊符号)。
2.十进制数的二进制编码
数字电子计算机,除了将十进制数转换成二进制数参加运算外,还可以直接将十进制数以二进制数的形式进行输入和运算。这样可以减少计算机的计算次数,提高计算机的运行速度。其方法是将十进制的10个数字符号分别用4位二进制代码来表示,这种编码称为二-十进制编码,也称BCD(Binary Coded Decimals)码。BCD码有很多种形式,常用的有8421码、2421码、5421码、余3码、格雷(Gray)码等,如表1.1.1所示。
表1.1.1 常用BCD码
(1)8421码
BCD码可以分为有权码和无权码。所谓有权码,即4位二进制代码中每一位数都有固定数值的权。有权码中用得最多的是842l BCD码,该码共有4位,其位权值从高位到低位分别为8、4、2、l,故称8421码,它属于恒权码。每个代码的各位数值之和就是它表示的十进制数。842l码与十进制数之间的关系是4位二进制代码表示1位十进制数。如
(8)D=(1000)8421BCD (69)D=(01101001)8421BCD
(2)2421码与5421码
2421码也是一种有权码,也属于恒权码。该码从高位到低位的权值分别是2、4、2、1,也是4位二进制代码表示1位十进制数。对于5421码,从高位到低位的权值分别是5、4、2、1。
(3)余3码
余3码组成的4位二进制数,正好比它代表的十进制数多3,故称余3码。两个余3码相加时,其和要比对应的十进制数之和多6。余3码不能由各位二进制数的权值来决定某代码的十进制数,故属于无权码。
(4)格雷码
格雷码(Gray Code)的特点是:相邻两个代码之间仅有一位不同,其余各位均相同。计数电路按格雷码计数时,每次状态更新仅有一位代码变化,减少了出错的可能性。格雷码属于无权码。
1.1.4 算术运算和逻辑运算
在数字电路中,1位二进制数码的0和1不仅可以表示数量的大小,还可以表示两种不同的逻辑状态。比如,可以用1和0分别表示一件事情的真与伪、是和非、有与无、好和坏,或者表示电路的通和断、电灯的亮和暗等。这种只有两种对立逻辑状态的逻辑关系称为二值逻辑。
当两个二进制数码表示两个数量大小时,它们之间可以进行数值运算,这种运算称为算术运算。二进制算术运算的规则和十进制基本相同,唯一的区别在于二进制是逢二进一而不是十进制数的逢十进一。
例如,两个二进制数1001和0101的算术运算有
当两个二进制数码表示不同的逻辑状态时,它们之间可以按照指定的某种因果关系进行所谓的逻辑运算。这种逻辑运算和算术运算有本质上的不同。下一节将重点介绍逻辑代数中的三种基本逻辑运算。