夏路易编著的《数字电子技术基础》内容包括数制与编码、逻辑代数、逻辑门电路、组合电路、触发器、时序电路、存储器、可编程逻辑器件、Verilog语言、脉冲整形与产生、数模与模数转换器、数字外围电路与QUARTUSⅡ软件的使用,并给出数十个数字电路大型作业题。本书还介绍多种数字元器件的技术参数、数字电路逻辑设计与直接设计方法,给出大量丰富的例题与习题,目的是使读者具有分析、设计与实现数字电路的能力。 《数字电子技术基础》可作为电子信息类、电气信息类、仪器仪表类各专业的教材,也可供其他相关工科专业使用,还可作为电子工程师、电子技术爱好者的参考书。
夏路易编著的《数字电子技术基础》系统全面介绍了数字电子技术基础知识,目的是使读者具有分析、设计与实现数字电路的能力。本书可作为电子信息类、电气信息类、仪器仪表类各专业的教材,也可供其他相关工科专业使用,还可作为电子工程师、电子技术爱好者的参考书。
前言
第1章 数制转换与编码
1.1 二进制数
1.1.1 为什么使用二进制数
1.1.2 二进制数的组成、转换与算术运算
1.2 常用的编码
小结
思考题
习题
第2章 逻辑门与逻辑代数基础
2.1 逻辑描述
2.2 基本逻辑门功能概述
2.3 逻辑代数基本定律与公式
2.3.1 基本定律
2.3.2 基本公式
2.3.3 基本定理
2.4 标准逻辑函数式
2.5 代数法化简函数式
2.6 卡诺图
2.6.1 画卡诺图
2.6.2 用卡诺图化简“与一或”函数式
2.6.3 具有无关项的逻辑函数化简
2.7 逻辑电路图、函数式与真值表之间的转换
2.8 与非门和或非门
小结
思考题
习题
第3章 门电路
3.1 数字逻辑信号
3.2 CMOS门电路
3.2.1 MOS晶体管
3.2.2 基本CMOS非门
3.2.3 CMOS与非门和或非门
3.3 74HC系列门电路的电特性
3.3.1 74HC系列门电路的极限电参数
3.3.2 74HC系列门电路的推荐工作条件
第4章 组合逻辑电路
第5章 锁存器与触发器
第6章 时序电路分析与设计
第7章 存储器
第8章 可编程逻辑器件工作原理
第9章 Verilog HDL
第10章 脉冲整形与产生电路
第11章 数模与模数转换器
第12章 数字外围电路
第13章 学习使用QuartusII软件
附录
参考文献
第1章 数制转换与编码
本章介绍二进制数的基本概念、不同数制之间的转换、二进制数运算与补码,以及常用的编码。
1.1 二进制数
1.1.1 为什么使用二进制数
日常使用的十进制数中任何一位数需要10个状态才能表示,因此用电的方法表示非常困难。例如,用电压表示十进制数,需要10个电压值,常用如图1-1所示的简单分压电路实现。所以,为获得表示任何数字的电压值,单刀开关须动作多次。
同样,实现1位二进制信号简单得多,若用两个分离的电压值(又称逻辑电平)表示二进制数,例如,实现1位二进制信号,可以用如图1-2所示的开关电路实现,开关闭合时,输出电压0V表示二进制数字0;开关断开时,输出电压5V表示二进制数字1,所以实现二进制数的开关动作简单得多,因此二进制数很容易用开关电路实现。
图1-2 开关实现1位二进制数
在实际中具有开关功能的电子器件很多,如图1-3所示,继电器可以实现二进制数,二极管、晶体管等都可作为开关组成电路实现二进制数。如图1-3(a)所示,继电器在线圈输入端无电压时,线圈b无电,触点a在弹簧c的作用下断开;当线圈输入端有电压时,继电器线圈b通电,在线圈b电磁吸力的作用下,触点a闭合。因此继电器是一个电压控制的开关。
图1-3(b)是二极管作为开关的电路图,当二极管输入电压为0V时,输出被钳位在0.7V;当二极管输入电压为3V时,输出被钳位在3.7V,因此输入信号可以控制输出电平。
图1-3 用于表示二进制数的开关元器件
图1-3(c)是三极管开关电路图,当输入电压使三极管饱和时,输出电压近似为0V ;当输入电压使三极管截止时,输出电压近似为5V 。输入电压信号可以控制三极管开关的通断,控制输出电压的变化。
二进制数容易用电子元件实现,这是使用二进制数的主要原因。
1.1.2 二进制数的组成、转换与算术运算
1.有权数
十进制数是有权数,数的位置不同,数具有的权不同,例如,对于十进制数33,虽然两个数都是3,但由于位置不同,所以右边的3代表3,左边的3代表30,所以33=3×101 +3。对于有小数的十进制数,例如,123.4可以表示为1×102 +2×101+3×100 +4×10 -1 。
十进制数的权结构可以表示为:.105 104 103 102 101 10010 -1 10 -2 10 -3 .二进制数与十进制数一样也是有权数,其权结构可以表示为:
2n -1 .2524 23 22 21 20 2-1 2-2 2-3 .2 -n
二进制权重如表1-1所示。
表1-1 二进制权重
28 27 26 25 24 23 22 21 20 2 -1 2 -2 2 -3 2 -4 2 -5
256 128 64 32 16 8 4 2 1 0 .5 0 .25 0 .125 0 .0625 0.03125
1 /2 1 /4 1 /8 1/16 1/32
2.二进制数转十进制数将各位二进制数乘以相应的权后相加就可以转成十进制数。例如,将1101101转成十进制
数的过程如下:1×26 +1×25 +0×24 +1×23 +1×22 +0×21+1×20 =1×64+1×32+0×16+1×8+1×4+0×2+1×1=64+32+8+4+1=109
3.十进制整数转二进制数
常用的十进制整数转二进制数方法是重复除2法:将十进制数除以2,余数则为二进制数低位,得到的商继续除以2;得到的余数为次低位,得到的商再次除以2;不断重复该过程,直到商为0;最后得到的余数1为最高位。
例如,45(10)=101101(2),173(10)=10101101(2)。其中,MSB 表示高位,LSB 表示低位。
4.十进制小数转二进制数
常用的十进制小数转二进制数方法是重复乘2法:将小数部分乘以2,积的整数部分是最高位;积的小数部分继续乘以2,积的整数部分是次高位;积的小数部分继续乘以2,直到积的小数部分全为0;最后得到积的整数部分1是最低位。
例如,0.3125(10)=.0101(2)。
积的整数部分
0.3125×2=0.625 0 MSB 0.625×2=1.2510.25×2=0.5000.5×2=1.001LSB
5.二进制数算术运算
二进制数可以表示数值,也可以表示逻辑值。所以,两个二进制数既可以实现算术运算,也可以实现逻辑运算。二进制数的算术运算与十进制数运算规则相似,只是逢2进1,借1相当于2。
1) 加减法运算
例如,1100(2)+1010(2)=10110(2),1100(2)?1010(2)=0010(2)。
在实际应用中,使用数字电路可以实现二进制数的加减法运算。
2) 乘法运算
二进制数乘法运算过程:先将被乘数与乘数最低位形成部分积,随后将被乘数与乘数次低位形成部分积,直到所有乘数各位都与被乘数相乘形成部分积,再将所有部分积相加。
例如,1100(2)×1001(2)=1101100(2),其运算式如下:
乘法运算实际上是被乘数按照乘数中1的位置左移形成部分积后相加实现,乘数的最低位的位置为0。在本例中,由于乘数位置0为数1,则被乘数1100先左移0位,形成第一个部分积1100;然后由于乘数位置3为1,则被乘数左移三位形成部分积1100000,两个部分积相加,形成积为1101100。由上述规律可知,如果一个二进制数乘以一个2的整数幂,则可以由左移幂次实现,移出的
空位补0,例如,110×21 之积可以直接将110左移1位实现,结果为1100。3)除法运算除法运算是被除数或余数减去右移的除数。若余数大于等于0,则商为1,否则商为0。例如,110(2)÷10(2)=11(2)。首先是被除数110减去右移0位的除数,余数大于0,所以商为1;然后是余数减去右移1位
的除数,余数等于0,则商为1。由上述规律可知,如果一个二进制数除以一个2的整数幂,则可以由右移幂次实现,移出的
空位补0,例如,110÷21 之商可以直接将110右移1位实现,结果为11。6.反码与补码1)反码反码是将一个二进制数中的1变为0,0变为1。例如,二进制数1010的反码是0101。反码有时又称为1的补码,就是与该二进制数位数相等的全1二进制数(2n -1,n为二进制
数的位数)的补码,或者一个二进制数与该二进制数1的补码相加,是与该二进制数相等位数的
全1二进制数。例如,1010与0101相加等于1111(24 -1),所以0101是1010的1的补码(反码)。2)2的补码反码加1称为2的补码,相当与二进制数位数相等的全1二进制数加1(2n )的补码,或者称
为模为2n 的补码。例如,1010的反码是0101,0101+1=0110是2的补码,因为1010+0110=10000(24 )。一个二进制数的补码就是用模2n 减去这个二进制数。一个数与该数的补码之间是互补关
系,而两个数互补,则说明是相同的数(只是表示方法不同),或者说是符号相反的另外一个数。
因此在减法运算中,减一个数常用加一个数的补码代替。7.有符号数有符号数可以表示为:符号+数值。一个二进制数的最高位在有符号数中是符号位,通常用
0表示正数,1表示负数,例如,+25的8位有符号二进制数为00011001,而-25的有符号的二
进制数为10011001。有符号数也可以表示为:权重之和,即最高位等效为具有符号权重的十进制数。若是将负数的符号位按照权重考虑为负数,其他权重为正数,则二进制数的权重之和是该
数。取补运算可以改变该数的符号,例如,8位有符号数中00000100(+4)的补码为11111100,由于最高位为1,因此:-128+64+32+16+8+4=-4;11101101(-19)的补码为00010011,其权重之和为16+2+1=19。
在有符号数系统中,正数的补码是该数本身,而负数的补码为该数取反码加1。1)两个有符号数相加两个有符号数相加分为4种情况,以下举例说明。
(1)两数都是正数,如7+4=11的情况:这时,和是正二进制数。
(2)正数大于负数,如15+(-6)=9的情况:在丢掉进位后,和是正二进制数。
(3)负数大于正数,如16+(-24)=-8的情况:和是负数,因此是2的补码。
(4)两数都是负数,如-5+(-9)=-14的情况:丢掉进位后,和是2的补码。
2)两个有符号数相减两个有符号数减法运算步骤为:将减数取补码,然后被减数与减数相加,再丢掉进位,下面分
4种情况举例说明。(1)8-3=8+(-3)=5:
(2)-25-(+19) = -25+(-19)=-44:
(3)-120-(-30) = -120+30=-90:
(4)12-(-9)=12+9=21:
8.十六进制数与二进制数之间的转换1位十六进制数与十进制数、二进制数之间的关系如表1-2所示。将二进制数转换成十六进制数,只须将二进制数4位1组,按组转换成十六进制数。将十六进
制数转换成二进制数,只须将每位十六进制数转换成对应的二进制数。例如,10101110(2)=AE(16)。有时为区别十六进制数与十进制数,常在十六进制数前加0x 。例如,10011100(2)=0x9C 。
?5?
表1-2 十六进制数与十进制、二进制数之间的关系
十进制数 二进制数 十六进制数 十进制数 二进制数 十六进制数
0 0000 0 8 1000 8
1 0001 1 9 1001 9
2 0010 2 10 1010 A
3 0011 3 11 1011 B
4 0100 4 12 1100 C
5 0101 5 13 1101 D
6 0110 6 14 1110 E
7 0111 7 15 1111 F
1.2 常用的编码
1.8421码
8421码又称为BCD(Binary Coded Decimal)码,用4位二进制数表示1位十进制数,如表1-3所示。
表1-3 BCD码
十进制数 0 1 2 3 4 5 6 7 8 9
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
由于4位二进制数有16种组合,而BCD 码只用其中的10种组合,因此还有6种组合没有使用。2.余三码余三码也是一种用4位二进制数表示十进制的编码,是由8421码加3形成的一种编码,如
表1-4所示。
表1-4 余三码
十进制数 0 1 2 3 4 5 6 7 8 9
余三码 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100
3.格雷码格雷码(Gray Code)又称为循环码,该编码如表1-5所示。
表1-5 格雷码
编码顺序 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
二进制数 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
格雷码 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000
从0000开始,该编码的特点是每一位都循环变化:
(1)最右边一位的变化规律为0110011001100110;
(2)右边第二位的变化规律为0011110000111100;