第1章 数字控制电路的数制与码制
1.1 数字电路基础知识
数字电路是处理数字信号并能完成数值运算的电路。在电子计算机、电动机、通信设备、自动控制、雷达、家用电器、日用电子小产品、汽车电子等许多领域得到了广泛的应用。
1.1.1 数字电路特点及组成
电信号通常分为模拟信号和数字信号两类,模拟信号是连续变化的,而数字信号是断续变化(即离散)的。处理加工数字信号的电路称为数字电路。
1.数字电路的特点
数字信号目前常取二值信息,它用两个有一定数值范围的高、低电平来表示,也可用两个不同状态的逻辑符号如“1”或“H”和“0”或“L”来表示。典型的数字信号波形是具有一定幅度的矩形波,当它作用在某些电子电路上时,其半导体器件就会在截止与导通(或饱和)状态下工作,这和模拟信号作用于电路时器件工作在线性放大状态相比有根本的不同。
2.数字电路的组成
数字电路组成的一般方框图如图1-1所示,其数据输入与输出的信号及控制与操作的变量都是数字信号。
图1-1 数字电路组成的一般方框图
图1-1中含有对数字信号进行传送、逻辑运算、控制、计数、寄存、显示及信号的产生、整形、变换等不同功能的数字部件。
在数字电路中,电压或电流通常只有两个状态:高电平或低电平,有电流或无电流。数字信号通常是以时间上或空间上的0、1符号序列来表示。数字电路输入与输出的0、1符号序列间的逻辑关系就是数字电路的逻辑功能。因此,数字电路也可以认为是实现各种逻辑关系的电路。
数字电路通常由逻辑门、触发器、计数器及寄存器等逻辑部件构成,可以用来对数字信号进行传送、逻辑运算、控制、计数、寄存、显示及信号的产生、整形、变换等。
1.1.2 数字电路的优点
数字电路的优点很多,归纳起来主要有以下3个方面。
① 数字电路结构简单,器件容易制造、便于集成并实施系列化生产,且成本低廉,使用方便。
② 由数字电路组成的数字系统,工作稳定可靠、精度高、信息容量大、运算速度快。
③ 数字电路不仅能完成数值运算,还可以进行逻辑运算与判断,在控制系统中是不可缺少的,因此又把数字电路称做“数字逻辑电路”。
1.1.3 数字电路的类型
数字电路根据分类方式的不同,通常有以下两种分类方法。
1.按所用器件分类
数字电路按电路所用器件分类,可分为双极型(如DTL、TTL、ECL、IIL、HTL)和单极型(如NMOS、PMOS、CMOS)电路。
2.按逻辑功能分类
数字电路按其逻辑功能分类,可分为组合逻辑电路和时序电路两大类。
1.2 数字电路的计数体制
计数体制即计数的方法。在生产实践中,人们习惯各种计数方法,如二进制、十进制、十六进制等,但平时最常用的是十进制数,而在数字电路中经常使用的是二进制数和十六进制数。
1.2.1 十进位计数制
十进位计数制即十进制,是人们最熟悉的一种进位计数制。十进位计数制是目前国际上通用的计数制。
1.十进位计数制的数码
十进位计数制简称十进制,采用10个数字符号,即0,1,2,3,…,9。这些数字符号称为数码(或数字)。
2.十进制数的计数原则
十进制数的计数原则是:逢10进1,借1当10。
例如,十进制数3743.3由5位数字组成,小数点左边有4位,右边有1位。这个数实际上是由以下多项式缩写而成的,即
3743.3=3×103+7×102+4×101+3×100+3×10-1
依此类推,任何一个n位整数、m位小数的十进制数N10均可记为
N10=(an-1×10n-1+an-2×10n-2+…+a1×101+a0×100+a-1×10-1+…+a-m×10-m
其值为
式中ai——十进制数中第i位的值,它可以是0~9中的任何一个;
10i——第i位的权(也称为位权),10为进位的基数,也就是基本计数符号的个数;
n,m——为正整数,n代表整数位数,m代表小数位数;
N10——下标10表示十进制,也可以用D表示。
1.2.2 二进位计数制
在现代数字系统中,应用较多的是二进位计数制,简称二进制数。
1.二进位计数制的数码
在二进制计数中,每个数字只能有两个不同的取值,即“0”和“1”。任何一个二进制数均由这两个数码来表示。
2.二进制数的计数原则
二进制数的计数原则是:逢2进1,借1当2。
一个二进制数也可以用类似十进制数按权展开的方法展开。例如,(1110.11)2可以写成
1110.112=1×23+1×22+1×21+0×20+1×2-1+1×2-2
依此类推,任何一个n位整数、m位小数的二进制数N2均可记为
N2=bn-1×2n-1+bn-2×2n-2+…+b1×21+b0×20+b-1×2-1+…+b-m×2-m
其值为
式中bi——二进制数中第i位的值,可以是0或1;
2i——第i位的权(也称为位权),2为进位的基数;
n,m——均为正整数,n代表整数位数,m代表小数位数;
N2——下标2表示二进制数,也可以用B表示。
3.二进制数运算规则
在二进制数中仅有0、1两个数码,相应的运算规则也比较简单。表1-1所示为二进制数的运算规则。
表1-1 二进制数的运算规则
1.2.3 常用进位计数制之间的对应关系
一个数从一种进位计数制表示法转换成另一种进位计数制表示法,称为数制转换。
二进制数、八进制数、十六进制数及十进制数是现代数字系统中常用的4种数制。这几种进位计数制之间的对应关系如表1-2所示。
表1-2 常用进位计数制之间的对应关系
1.2.4 二进制数转换为十进制数
二进制数转换为十进制数的方法,是将二进制数按权展开,然后将所有各项的数值按十进制数相加即得。
例1-1 把二进制数101101.01B转换成十进制数ND。
解:
按权展开后计算得
101101.01B=1×25+0×24+1×23+1×22+0×21+1×20+0×2-1+1×2-2=45.25D
1.2.5 十进制数转换为二进制数
十进制数转换为二进制数时,需要将十进制数的整数部分和小数部分分别进行转换,最后再将转换结果相加即可得到完整的转换结果。
1.整数部分的转换
整数部分的转换采用除以2取余法,也就是将十进制整数逐次除以2,并依次记下余数,一直除到商为零时结束,就得到等值的二进制数。
例1-2 将47D转换成等值的二进制数。
解:
由此可得47D=101111B。
2.小数部分的转换
小数部分的转换采用乘以2取整法,也就是将十进制数的小数逐次乘以2(每次只将小数部分乘以2)并依次记下整数,然后把全部整数按次序排列起来,即可得到等值的二进制数。
例1-3 将0.39D转换为等值的二进制数小数。
解:
按照乘以2取整法进行转换,即
0.39×2=0.78 整数部分 0
(取出整数部分0,小数部分继续乘以2)
0.78×2=1.56 整数部分 1
(取出整数部分1,小数部分继续乘以2)
0.56×2=1.12 整数部分 1
(取出整数部分1,小数部分继续乘以2)
0.12×2=0.24 整数部分 0
(取出整数部分0,小数部分继续乘以2)
…… ……
由此即得0.39D=0.0110B,误差≤2-3。如果精度要求较高,如10位,则上述乘以2的过程一直继续下去,直到达到所需10位数为止。
3.需要说明的问题
对于一个既有整数部分又有小数部分的十进制数转换成二进制数时,则要将其整数部分采用除以2取余法转换成二进制数的整数,将其小数部分采用乘以2取整法转换成二进制数的小数,然后将二进制数的整数部分和小数部分合并即可得到等值的二进制数。
二进制数转换为十进制数时,可以完整地进行转换;但十进制数转换为二进制数时,有时不能完全转换,只能达到一定的精度。
例1-4 将47.39D转换为等值的二进制数。
解:
47.39D包含整数部分和小数部分,分别采用除以2取余法和乘以2取整法对整数和小数部分进行转换。根据上面的转换结果,可以得到
47.39D=47+0.39=101111+0.0110=101111.011B
1.3 数字电路的码制
数码除了可以表示量的大小之外,有时还可以用来表示不同的事物,也就是不同的数码可以表示不同的事物。当用数码为代号来表示不同的事物时,称其为代码。不同的代码都有一定的规则,通常将这些规则称为码制。
人们较熟悉的是十进制代码,而数字系统中是以二进制代码为处理对象的,进而就产生了一种利用四位二进制数表示一位十进制数的计数方式,将这种表示十进制数的四位二进制代码称为二-十进制代码(Binary Coded Decimal),简称为BCD码。常见的BCD码有以下3种。
1.数字电路的8421码
8421码是最基本最常用的BCD码,是一种有权码或加权码。其权值由高到低分别为8(23),4(22),2(21),1(20)。假设8421码为a3a2a1a0,则一位十进制数ND可表示为
ND=8a3+4a2+2a1+1a0
必须说明的是在8421码中不允许出现1010~1111六种编码,因为在十进制数中没有单个的数字符号与它们对应。
任何一个十进制数要写成8421码,只要把该十进制数的各位数字分别转换成对应的8421码即可。
表1-3所示为各种有权、无权码与十进制数的对应关系。
表1-3 各种有权、无权码与十进制数之间的对应关系
例1-5 将25.65D用8421码表示。
解:
根据上述转换规律可得到
十进制数 2 5 6 5
(查表1-3中为2)(查表1-3中为5)(查表1-3中为6)(查表1-3中为5)
8421码 0010 0101 0110 0101
转换结果为25.65D=00100101.011001018421。
2.数字电路的2421码
2421码(埃肯码)是另一种形式的有权码,也是用四位二进制代码来表示一位十进制数的,各位的权值由高到低分别为2,4,2,1。如果用a3,a2,a1,a0分别代表2421码的四位二进制代码,则一位十进制数ND可表示为
ND=2a3+4a2+2a1+1a0
2421码与十进制数的对应关系如表1-3所示。
2421码是一种对9的自补代码,即2421码表示的数只要自身按位取反,就能得到该数对9自补的2421码。例如,3的2421码是0011,3对9自补是9-3=6,而6的2421码是1100,0011和1100之间是自身按位取反,故二者互为反补。
例1-6 用2421码对4326D进行编码。
解:
根据2421码与十进制码之间的对应关系[见表1-3中2421(B)码]可以看出
十进制数 4 3 2 6
2421码 0111 0101 0010 1100
由此可得4326D=0111010100101100)2421。
除了上述的8421码和2421码以外,有权码还有5211码、5421码、7421码、5311码等。这些有权码与十进制数之间的对应关系如表1-3所示。
3.数字电路的余3码
余3码也是用四位二进制代码来表示的一个十进制数字,比8421码多出0011,故称其为余3码。
余3码也是一种对9的自补代码,但各位没有固定的权值,故是一种无权码。余3码与十进制数之间的对应关系如表1-3所示。
余3码不允许出现0000、0001、0010、1101、1110、1111六种代码。
例1-7 用余3码对6981D进行编码。
解:根据余3码与十进制码之间的对应关系(见表1-3所列)可得到
十进制数 6 9 8 1
余3码 1001 1100 1011 00111
故可得6981D=1001110010110011余3码。
以上介绍的二-十进制编码是用四位二进制编码组成的。由于四位二进制编码有16个状态来表示十进制数,还多余6个状态需要去掉,去掉哪6个有多种方案,于是就形成了多种二-十进制编码(包含有权码和无权码),这些去掉的码称为伪码。
另外,为了减少数码在传输过程中可能发生的错误,还有格雷码、奇偶校验码、海明码等可靠性编码。