数字逻辑在线教程第一章 数字逻辑基础
引言
随着科学技术的飞速发展,人类正处于一个前所未有的信息时代
。现代生活中,人们每天都要接触大量的信息,如电视、广播、印刷媒体等,尤其是互联网的出现,更是带给人类无穷无尽的海量信息。人类接受信息的途径靠的是感觉器官,信息通过感觉器官进入大脑,经过大脑的分析处理后,将人们需要的信息储存于大脑之中。
但是,对于海量信息,人类的大脑很难都予以存储,因此迫切需要寻找一个可以帮助人类分析处理并能够存储海量信息的工具。
电子技术的发展,为人类的这种愿望提供了可能性。
电子技术中的数字电路,可以帮助人类对信息数据进行分析处理
,经过处理的信息数据可以保留于数字电路构成的存储器中或可用于存储数字信号的其他介质中,如大家所熟悉的磁盘、光盘、磁带等等
。
数字系统只能用来处理离散信息,然而自然界中存在的信息,大部分是以模拟信号的形式存在的,要对这部分信息进行处理,首先需要将模拟信号转换为数字信号,并对其编码后再提交给数字系统处理
。
显然,为了满足以上这些要求,需要设计许多种类的数字电路才能实现人类的需求。数字逻辑就是这样一种用来分析和设计复杂的数字逻辑电路或数字系统的有力工具。人们普遍使用的电脑、计算器、电信系统、卫星系统等无一不采用数字系统,甚至连电视机和音响系统现在也已经步入了数字时代。
本章主要内容
首先复习介绍模拟信号的概念、周期信号的波形、电子技术中的模拟量以及周期信号的基本参数。接着引入数字信号的概念、逻辑电平的概念、二值数字的产生、数字波形、理想和实际波形以及模拟量的数字表示。对数字电路的发展和分类作了简要描述。在数制与编码部分,介绍如何用一组符号和一定的规则来表示数值的大小,建立数制的概念。我们将会学习到的数制有十进制、二进制、十六进制和八进制等。我们还将学习如何用这些符号和规则给非数字的信息编码,以便于数字系统对这些信息进行处理。
在基本逻辑运算部分讨论与、或、非三种基本的逻辑运算。
第一节 模拟信号与数字信号
一、模拟信号
模拟信号是一种不仅再时间上连续、数值上也连续的物理量,具有无穷多的数值,其数学表达是必较复杂,比如正弦函数、指数函数等。
从自然界感知的大部分物理量都是模拟性质的,如速度、压力、温度、声音、重量以及位置等都是最常见的物理量。
图1.1.1 是几种常见的模拟信号波形
正弦波:例如我们最经常接触到的声波。可能你有机会用一台示波器察看一个真实的声音波形,你将发现所看到的波形可不像这里所示范的这样清晰的正弦波,而是看起来非常杂乱的一种波形,确实如此,这只是因为真实的声音波形中包含了多种频率的正弦波。另一个例子由发条驱动的钟摆,将钟摆的运动轨迹延时间轴展开,得到的连续波形正好就是一个正弦波形。
调幅波:自从发明收音机以来,普通百姓就开始与调幅波打交道了,这种波形是以一种频率很高的正弦波作为载波,在此基础上叠加一个频率较低的信号波就形成了入图所示得波形。
阻尼振荡波:凡是自然界中可以看到的振荡运动,都可以观察到这种波形,比如弹簧的自由振动、钟摆的自由运动(不同于由发条驱动得钟摆运动)等,如果说这些还有人工的痕迹,那么水波的涟漪则是在自然不过的了。
指数衰减波:许多发光物质都具有这种波形,也就是荧光寿命。我们平时使用的日光灯就是一个例子,当我们将一个点亮的日光灯的电源切断时,可以观察到日光灯不是一下子就熄灭,而是有一个短暂的熄灭过程,也就是通常所说的日光灯的余辉。
在电子技术中通常采用一些传感器将这些信号转换为电流、电压或电阻等电学量。这些同样是模拟量,因为如果采用一台示波器来测量这些电学量的波形的话,将观察到与图1.1.2图示波形一样的波形。
实际使用中电流和电压常用图形来表示。
下面我们看到的就是一个幅值为0~5V、周期为100ms的电压波形:
图1.1.2 周期性电压波形
图中电压的幅值按照正弦波形周期性地变化,图中显示了两个完整的波形,起始相位为零,如果想确定其中值的个数是不可能的,其值的个数有无穷多个。
正如我们在模拟电路中所学习的,周期性模拟信号的基本参数之一是频率,也可以用周期表示。通常频率用f表示,单位为赫兹(Hz)
;周期用T表示,单位为秒(s)。二者之间的关系是互为倒数,即有。图1.1.2中已知电压波形的周期T=100ms,则频率为10Hz,该电压的幅值介于0~5V之间,值的个数为无穷大。
典型的模拟信号包括工频信号、射频信号、视频信号等。我国和欧洲的工频信号的频率为50Hz ,美国为60Hz 。调幅波的射频信号在 530Hz~1600kHz之间。调频波的射频信号在880MHz~108MHz之间。甚高频(VHF)和超高频(UHF)视频信号在6GHz以上。
二、数字信号
电子系统中一般含有模拟和数字两种构件,通常使用的收音机等
,其中的电路结构主要是模拟电路,比如功率放大器,不过现在有许多音响系统中不仅包含模拟电路,而且已经有了数字模块,比如CD机
,其中主要的部件就是数字模块;而像电脑这样一类的电子系统,则主要就是建立在数字技术上的,但即使是所谓的纯数字系统,仍然离不开模拟电路,因为数字电路实事上可以说是模拟电路的一种特例,比如说在模拟电路中我们采用晶体管的线性工作区间,而数字电路则采用晶体管的非线性工作区间,因此说模拟电路是电子系统中必须的组成部分。
人们发现在对信号的存储、分析和传输中,数字电路更具优越性
。为了能够处理存储连续变化的模拟信号,数字电路采用二进制数首先对其进行量化处理后,再使用复杂的数字系统来实现信号的存储、分析和量化。
1.二值数字逻辑和逻辑电平
二进制数正好是利用二值数字逻辑中的0和1来表示的。二值数字逻辑是Binary Digital Logic的译称。
与模拟信号相反,数字数字信号在时间上和数值上均是离散的,而离散信号的值只有真或假,是与不是,因此可以使用二进制数中的0和1来表示。需要注意的是这里的0和1并非通常意义上的0和1
,也就是说并不像在十进制中0和1有大小之分,这里的0和1指的是逻辑0和逻辑1。
因此我们可以将其称之为二值数字逻辑或简称为数字逻辑。
二值数字的产生,是基于客观世界中存在许多可以用彼此相关又互相对立的两种状态来描述的事物,比如人的性别,不是男的就是女的,开关的开与关等,就是这样一种关系。很显然,这些都具有明显的二值特性,因此完全可以用电子器件的开关特性来表示。比如,利用晶体管的非线性特性制作成的开关二极管,工作时仅有两种状态,不是导通就是关断,也是一个二值特性,因此可以用其来表示人的性别等。
当开关器件起作用时,电路中只可能出现两种电压值,当开关器件导通时,开关后的电路中将有电流流过(比如串联于三极管发射极的负载),因而将可得到一个较高的电压值,而当开关器件关断时,开关后的电路中将没有电流流过,因而将只能得到一个较低的电压值
,从而在电路中将形成离散的电压信号,也叫数字电压,通常称之为逻辑电平。
应该注意的是逻辑电平不是一个具体的物理量,而是物理量的相对表示。比如,当使用示波器测量一个音响设备的输出时,你可观察到一个输出电压幅值连续变化的波形,但是将该输出信号量化成二值信号后,你观察到的只是一系列电压值不是5V就是0V的离散电压值,很显然我们不能因此就说该音响设备的输出就是5V。
电压/V |
二值逻辑 |
逻辑电平 |
正逻辑 |
负逻辑 |
+5 |
1 |
0 |
H(高电平) |
0 |
0 |
1 |
L(低电平) | |
表1.1.1 逻辑电平与电压值的关系
从表中可以看到,+5V的电压值可以用二值逻辑中的1或0来表示,就看你使用的是正逻辑还是负逻辑。在逻辑电平中则使用高电平来表示。事实上高电平并非就只等于+5V,可以是3V,还可以是其它任何值。
图1.1.3表示用逻辑电平描述的数字波形,其中图1.1.3a的逻辑0表示0V,逻辑1表示5V;图1.1.3b的逻辑0表示5V,逻辑1表示0V;图1.1.3c 则是一个16位长数据的图形表示。
2.数字波形
数字波形是逻辑电平对时间的图形表示。通常,我们将只有两个离散值的波形称之为脉冲波形,在这一点上脉冲波形与数字波形是一致的,只不过数字波形用逻辑电平表示,而脉冲波形用电压值表示而已。
与模拟波形的定义相同,数字波形也有周期性和非周期性之分。图1.1.4表示了这两类数字波形:
周期性数字波形同样用周期T或频率f来描述;而脉冲波形的频率常称为脉冲重复率PRR--Pulse Repetition Rate。
脉冲波形的参数:
脉冲宽度:tw表示,表示脉冲作用的时间;
占空比:q,表示脉冲宽度tw占整个周期T的百分数,常用下式来表示:
占空比是一个重要参数,其定义同样适用于数字波形。
图1.1.5表示两种数字波形及其周期、频率、脉冲宽度和占空比:
例题1.1.1设周期性数字波形的高电平持续6ms,低电平持续10ms
,求占空比q?
解:根据给定的高电平持续时间有tw= 6ms,而高电平与低电平持续时间之和即为周期T
所以有 T=6ms+10ms=16ms
到目前为止,我们所讨论的数字波形都是理想波形,然而实际的数字系统中,数字波形的升降都要经历一段时间,也就是说波形存在上升时间tr和下降时间tf 。
上升时间tr的定义是:从脉冲幅值的10%到90%所经历的时间;下降时间tf的定义刚好相反:从脉冲幅值的90%到10%所经历的时间。tr和tf的典型值约为几个纳秒(ns),视不同类型的器件和电路而异。
脉冲宽度的定义是脉冲幅值为50%时前后两个时间点所跨越的时间。非理想脉冲如图1.1.6所示:
例题1.1.2 试绘出一脉冲波形,设它的占空比为50%,脉冲宽度 tw=100ns,上升时间tr=10ns,下降时间tf=20ns。
解:根据题意,可绘出脉冲波形如下:
图1.1.7 例1.1.2的波形图
一般情况下波形的上升或下降时间均要比高电平或低电平的持续时间要小很多,画波形的目的主要是为了了解高、低电平所经历的时间。因此在理想波形中就只有高、低电平,而忽略了上升和下降时间
。本课程中所用的数字波形将采用理想波形。
当然,实际中碰到的波形,不管从示波器上来看,其上升沿和下降沿是多么的直,tr和tf都不可能为零,只是在数字电路中,只需关注逻辑电平的高低,因此在画波形时只需画出高低电平所经历的时间即可,无需画出上升沿和下降沿。
(a)
(b)
图1.1.8 用逻辑1和0表示的二值位行图
(a) 对称方波 (b) 二值数据
上图为一个二值位形图,其中1或1占用的最小时间称为位时间
,也就是1位数据所占用的时间。我们将每秒钟所传输的位数称为数据率或比特率。
例题1.1.3 某通信系统每秒中传输1.544兆位数据,求每位数据的时间。
解:根据题意,只需将1.544M倒数,即可求得每位数据的时间为:
举例来说,象图1.1.8b中看到的22位的二值位形图,如果每一位数据所占用的时间是648ns,则22位共占用14256ns,也就是14.256微秒,而其数据率就是1.544兆。
在设计数字集成电路时,有时为了分析各种信号之间的逻辑关系
,需要将多个数字波形按时间排列在一起,用来表明相互间的时间关系,我们将这样一种关系图称为时序图(Timing diagram)。
时序图中的每一个波形都被称为时间信号。时序图被广泛运用在设计数字集成电路中,在设计存储器、微处理机等数字应用电路时均须附有时序图,以便数字系统的分析、应用和设计。
图1.1.9就是一个时序图的例子:
图1.1.9 数字时序图
图中CP为时钟脉冲信号,用作系统中的时间参考信号,一般由石英晶体振荡器来产生,如图所示波形为对称方波。关于图中各个波形的具体作用,将在以后的课程加以介绍
3.模拟量的数字表示
为便于存储、分析和传输,常常需要将模拟信号转换为数字信号
。
在数字电路中用数字0、1的编码来表示一个模拟量,这里的编码所指的是数字0、1的字符串,图1.1.3和图1.1.8所示的数字波形即是这种编码的图形。这样一种编码实际上就是二进制编码。
下面通过图1.1.10的图示来了解用数字表示模拟信号的过程:
取其中A、B、C3个取样点。以B点为例,该点的模拟电压为3V,将其送入一个模数转换器后可得到以数字0、1表示的数字电压
,如图1.1.10b所示。同样地也可以得到A、C点的数字编码。
当信号的取样点数足够多时,原信号就可以被较真实地复制下来
。
当然,必要的话还可以通过数模转换器将已经数字化的信号还原成模拟信号。
第二节 数字电路
现代的数字电路由半导体工艺制成的若干数字集成器件构造而成
。逻辑门是数字逻辑电路的基本单元。存储器是用来存储二值数据的数字电路。从整体上看,数字电路可以分为组合逻辑电路和时序逻辑电路两大类。
一、数字电路的发展与分类
从前面的介绍,大家已经了解到数字电路是以二值数字逻辑为基础的,其工作信号是离散的数字信号。电路中的电子晶体管工作于开关状态,时而导通,时而截止。
数字电路的发展与模拟电路一样经历了由电子管、半导体分立器件到集成电路等几个时代。但其发展比模拟电路发展的更快。从60年代开始,数字集成器件以双极型工艺制成了小规模逻辑器件。随后发展到中规模逻辑器件;70年代末,微处理器的出现,使数字集成电路的性能产生质的飞跃。
数字集成器件所用的材料以硅材料为主,在高速电路中,也使用化合物半导体材料,例如砷化镓等。
逻辑门是数字电路中一种重要的逻辑单元电路 。TTL逻辑门电路问世较早,其工艺经过不断改进,至今仍为主要的基本逻辑器件之一
。随着CMOS工艺的发展,TTL的主导地位受到了动摇,有被CMOS器件所取代的趋势。
近年来,可编程逻辑器件PLD特别是现场可编程门阵列FPGA的飞速进步,使数字电子技术开创了新局面,不仅规模大,而且将硬件与软件相结合,使器件的功能更加完善,使用更灵活。
从集成度来说,数字电路的分类如表1.2.1所示。所谓集成度,是指每一芯片所包含的晶体管(主要指BJT和FET)的个数。
表1.2.1
分 类 |
三极管个数 |
典型集成电路 |
小规模 |
最多10个 |
逻辑门电路 |
中规模 |
10~100 |
计数器、加法器 |
大规模 |
100~1000 |
小型存储器、门阵列 |
超大规模 |
1000~106 |
大型存储器、微处理器 |
甚大规模 |
>106 |
可编程逻辑器件 |
多功能集成电路 |
第二章 |
第三章 | |
存储器也是基本数字部件之一,其集成度很高。利用存储器可以记忆或存储二值数字1和0。数字信息的存储就是将信息写入存储器
,从存储器读出信息可以恢复信息。
二、数字电路的分析方法与测试技术
1.数字电路的分析方法
数字电路主要研究对象是电路的输出与输入之间的逻辑关系,因而在数字电路中不能采用模拟电路的分析方法,例如,小信号模型分析法。由于数字电路中的器件主要工作在开关状态,因而采用的分析工具主要是逻辑代数,用功能表、真值表、逻辑表达式、波形图等来表达电路的主要功能。
随着计算技术的发展,为了分析、仿真与设计数字电路或数字系统,还可以采用硬件描述语言,使用如ABEL语言等软件,借助计算机来分析、仿真与设计数字系统。
2.数字电路的测试技术
数字电路在正确设计和安装后须经严格的测试方可使用。事实上
,在逻辑设计阶段就应该考虑到数字电路的测试。如果对电路的测试目的只是为了检查电路是否发生了故障,则称这种测试为数字电路的故障检测;对电路的逻辑功能的测试称为功能测试或静态测试;对电气特性或时间特性的测试称为动态测试;如果测试的目的不仅是为了检查电路是否有故障,而且还要确定发生故障的部位,则称这种测试为故障定位。
3.数字电路测试技术中必备的仪器
数字电压表:用来测量电路中各点的电压;
电子示波器:用来观察电路中各点的波形;
逻辑分析仪:一种专用示波器。
第三节 数制
大家都知道,在日常生活中我们经常碰到计数的问题,比如在交易的时候。由于人们经常要借助数字系统帮助人类处理日常信息,因此数字系统中同样会经常涉及到计数的问题。
那么,我们大家最熟悉的数制是哪种数制呢?对了,是十进制。十进制之所以能够成为人类日常生活中不可分割的一部分,是因为人类有一双十根手指头的手,如果人类的手指数只有六根的话,那么现在最常用的肯定是六进制。
但是数字系统与人类不同,数字系统没有十根手指头,有的只是0和1两个符号,因而在数字系统中最常用的是二进制,以及与之关系密切的八进制和十六进制。
一、十进制
好,那就让我们来看看十进制
所谓十进制就是以10为基数的计数体制,其计数规律是逢十进一
。
图1.3.1展示了十进制的位号和位权之间关系的图解。
位号 |
3 |
2 |
1 |
0 |
-1 |
-2 |
-3 |
十进制数 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
位权 |
103 |
102 |
101 |
100 |
10-1 |
10-2 |
10-3 | |
图1.3.1 十进制数的位权图
由图中我们可以看到在小数点左边的整数部分中,位号为0的最低位所对应的位权为10的0次方,而位号为3时,位权为10的3次方
,实事上,我们可以得出这样的结论,位号为n时 ,对应的位权为10的n次方;同样地,在小数点右边的情况恰好是左边的反演 ,并且多了一个负号。
例题 1.3.1 试用位权来表示十进制数4567。
解:将每个位子上的数码与该位的位权相乘后相加即可得到一个十进制数
一般地,任意十进制数可表示为:
二、二进制
二进制与十进制的区别在于数码的个数和进位规律有很大的区别
,顾名思义,二进制的计数规律为逢二进一,是以2为基数的计数体制。10这个数在二进制和十进制中所表示的意义完全不同,在十进制中就是我们通常所说的十,在二进制中,其中的一个意义可能是表示一个大小等价于十进制数2的数值。
仿照例题1.3.1,我们可以将二进制数10表示为:10=1×21+0×20
图1.3.2 二进制数的位权图
一般地,任意二进制数可表示为:
例题 1.3.2 试将二进制数(01010110)B转换为十进制数。
解:将每一位二进制数乘以位权后相加便得相应的十进制数
在数字电子技术和计算机应用中,二值数据常用数字波形来表示
。使用数字波形可以使得数据比较直观,也便于使用电子示波器进行监视。图1.3.3表示一计数器的波形。
图1.3.3 用二进制数表示0~15波形图
图中给出了四个二进制波形。看这种二进制波形图时,我们应当沿着图中虚线所示的方向来看,即使图中没有标出虚线(一般都没有标出),也要想象出虚线来。其中在每一个波形上方的数字表示了与波形对应的位的数值,最后一行则是相应的十进制数 ,其中LSB是英文Least Significant Bit的缩写,表示最低位,MSB是Most Significant Bit的缩写,表示二进制数的最高位。显然,这是一组4位的二进制数,总共有16组,最左边的二进制数为0000,最上边的波形代表二进制数的最低位,也就是通常在十进制数中我们所说的个位数,最下面的是最高位。图中最右边的二进制数为1111,对应的十进制数为15。再来看看对应于十进制数5的二进制数是多少呢?是0101,对了,读数的顺序是从下往上。
二进制数在数字系统(比如计算机之间)中的传输的方式分为串行和并行两种。
其中串行传输时二进制数是按照逐位传递的方式进行传输,根据实际情况可以从最高位或最低位开始传输,一般情况下是从最高位开始传输的。只需要一根数据线。如图1.3.4所示,要完成八位二进制数的传输,需要经历八个时钟周期。
图1.3.4 二进制数据的串行传输
(a) 两台计算机之间的串行通信 (b) 二进制数据的串行表示
典型的例子是调制解调器与计算机之间的通信就是通过串行传输来完成的。
并行传输的效率要高于串行传输,一次可以传输完整的一组二进制数。但是根据所要传输的二进制数的位数的多少,需要备足足够多的数据线。一般来说,常见的并行传输采用的数据线有8、16、32等,再多就很少见了。典型的并行传输例子是打印机与计算机之间的通信传输,见图1.3.5。
(a)
(b)
图1.3.5 并行传输数据的示意图
(a) 计算机与打印机之间的并行通信 (b) 二进制数据的并行表示
图1.3.5显示了采用并行传输模式,只需要一个时钟周期,即可完成八位二进制数的传输。
二进制的优点:
数字装置简单可靠,所用元件少;
只有两个数码0和1,因此它的每一位数都可用任何具有两个不同稳定状态的元件来表示;
基本运算规则简单,运算操作方便。
二进制的缺点:
用二进制表示一个数时,位数多;
例如:(49)D=(110001)B;
因此实际使用中多采用送入数字系统前用十进制,送入机器后再转换成二进制数,让数字系统进行运算,运算结束后再将二进制转换为十进制供人们阅读;这就引出了十-二进制之间的转换问题。
三、十-二进制之间的转换
既然一个数可以用二进制和十进制两种不同形式来表示,那么两着之间就必然有一定的转换关系。
由十进制数的一般表示式:
可以得到整数的一般表达式:
将等式两边分别除以2,可得第一个余数b0,同时上式演变为:
将等式两边再除以2,可得第二个余数b1,等式变为:
重复上述过程直到商为0,就可由所有的余数求出二进制数。
例题 1.3.3 将(25)D转换为二进制数。
解:该题的解题思想是,不断地用2分解十进制整数,并将余数按得到的顺序由低位到高位排列,即可得到对应的二进制数。
所以(18)D=(b4 b3 b2 b1 b0)B=(10010)B
例题1.3.4 将(155)D转换为二进制数解:当要将一个很大的十进制数转换成二进制数时,采用例题1.3.3的做法很费时 ,我们可以采用另外一种方法。这种方法的思想是从需要转换的十进制数找到与之最接近的2的幂次方,并从这个十进制数中减去该2的幂次方,在剩下的余数中重复这种做法,直到余数为0。然后将所得到的这些2的幂次方与二进制数中的位权相比,相同的位标记为1,其余的为0,这样就可得到与十进制数对应的二进制数。
现在我们来看看155这个十进制数,与2的各个幂次方数比较后可知,与155最近的是128,即27,155减去128后余数为27,而27最接近的是24,27减去16得到11,11减去8(23)得到3,3减去2(21)得到1,1减去1(20)得到0。由于在本次计算中得到2的最高幂次为7,因此可以得知对应的二进制数是一个八位的二进制数,写出这个二进制数的位权,并将其与得到的五个2的幂次方数对比后填入1,其余的用
0代替,最后得到的二进制数为10011011。
需要指出的是,多数计算机或数字系统中只处理4、8、16、32位的二进制数据,因此,数据的位数需配成规格化的位数,如例题1.3.3种转换结果为11001,如将它配成8位,则相应的高幂项应填以0,其值不变,即11001=00011001。
根据十进制数的一般表达式,可以得到十进制小数的表达式如下
:
将等式两边分别乘以2,可得:
比较上面两式,可以发现第一项中2的幂次已经由原来的-1变成了0,而20是整数的最低位的位权,因此可以将该项从表达式中去掉,也就是去掉了b-1。,这样也就使得剩下的数保持为纯小数。继续在表达式的两端乘以2,可得:
这样又得到了一个20项,也就是b-2也将再次被从式子中剔除,但同时也就产生了二进制小数的前两位。重复上述过程,直到 满足要求的位数时做“四舍五入”,也就完成了从十进制小数到二进制小数的转换。
例题8:将(0.706)D转换成误差ε不大于2-10二进制小数。
解:
0.706 ×2=1.412……1……b-1
0.412 ×2=0.824……0……b-2
0.824 ×2=1.648……1……b-3
0.648 ×2=1.296……1……b-4
0.296 ×2=0.592……0……b-5
0.592 ×2=1.184……1……b-6
0.184 ×2=0.368……0……b-7
0.368 ×2=0.736……0……b-8
0.736 ×2=1.472……1……b-9
最后一位小数0.472小于0.5,根据“四舍五入”原则,则有:
0.0 ×2=0……0……b-10
所以, (0.706)D=(0.101101001)B,误差ε< 2-10
四、十六进制和八进制
由于当二进制数的位数很多时书写很麻烦,因此为了减少书写一个数字的位数,在计算机的资料中经常采用十六进制或八进制数来表示二进制数。
十六进制中包含的16个数字是0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,
F,其中A~F分别对应于十进制中的10~15。参照十进制数和二进制数的一般表达式,可以得到十六进制数的一般表达式:
例:十六进制转换为十进制:
(4E6)H= 4×162+14×161+6×160
= 4×256+14×16+6×1=(1254)D
例:二进制转换为十六进制:
(0101 1001)B=(1×22+1×20)×161+(1×23+1×20)×160
= [5×161+9×160]D
= (59)H
从上面两个例子可以看出每四位二进制数对应于一位十六进制数
如:(1001 1100 1011 0100 1000)B= ( 9 C B 4 8 )H同样地,可以得到任意八进制数的表达式:
对于八进制数,可将三位二进制数分成一组,对应于一位八进制数,如: (1001 1100 1011 0100 1000)B
= (10 011 100 101 101 001 000)B
= ( 2 3 4 5 5 1 0 )O
第四节 二进制码
数字系统中的信息可分为两类,一类是数值,另一类是文字符号(包括控制符)。
代码:采用一定位数的二进制数码来表示文字符号信息。
建立这种代码与十进制数值、字母、符号的一一对应关系称为编码。
若所需编码的信息有N项,则需要用到的二进制码的位数n应满足如下关系:2n≥N
下面介绍几种常见的码。
BCD码
Binary-Coded-Decimal,二进制编码的十进制码。
这种编码仅仅使用4位二进制数来表示十进制数中的0~9十个数码
。二进制数码每位的值称为权或位权。
其中b0位的权为20=1,b1位的权为21=2,b2位的权为22=4,b3位的权为23=8,
例: 0111= 0×8 + 1×4 + 1×2 + 1×1=7
一般情况下,十进制码与二进制码之间的关系可表示为:
(N)D= b3 W3 + b2 W2 + b1 W1 + b0 W0 表1.4.1几种常见码对照表
表1.4.2 格雷码
第五节 基本逻辑运算
在分析和设计数字电路时,需要使用的一个数学工具是逻辑代数
。逻辑代数也称为布尔代数,由英国数学家G.Boole提出。逻辑代数是按一定逻辑规律进行运算的代数。和普通代数一样也是用字母表示变量。逻辑代数中变量的含义与普通代数有着本质区别。
逻辑代数中的变量通常称作逻辑变量。
逻辑变量只有两个值(二元常量),即0和1,没有中间值。
0和1并不表示数量的大小,而是表示两种对立的逻辑状态,也就是逻辑零和逻辑壹。在逻辑代数中,有与、或、非三种基本逻辑运算
。运算是一种函数关系,可以用语句、逻辑表达式描述、表格描述——真值表、图形符号描述——逻辑符号、逻辑图等。
一、与运算
图1.5.1(a)表示一个简单的与逻辑电路,电压V通过开关A和B向灯泡供电,只有A和B同时接通时,灯泡才亮。A和B中只要有一个不接通或者二者均不接通时,灯泡不亮,其真值表如图1.5.1(b)所示。
从这个电路中,可以总结出这样的逻辑关系:
只有当一件事(灯亮)的几个条件(开关A与B都接通)全部具备之后,这件事(灯亮)才发生,这种逻辑关系称为与逻辑。
用逻辑表达式来描述,则可写成:
(a) (b)
(c) (d)
图1.5.1 与逻辑运算
(a) 电路图 (b) 真值表
(c) 用0、1表示的真值表 (d) 与逻辑们电路的符号
二、或运算
图1.5.2(a)表示一个简单的或逻辑电路,电压V通过A和B向灯泡供电。只要开关A或B接通或二者均接通,则灯亮;而当A和B均不通时,则灯不亮,其真值表如图1.5.2(b)所示。由此可总结出或逻辑关系:“当一件事情的几个条件中只要有一个条件得到满足,这件事就会发生”。这种逻辑关系称为或逻辑。
用逻辑表达式来写则为:
图1.5.2 或逻辑运算
(a) 电路图 (b) 真值表
(c) 用0、1表示的真值表 (d) 或逻辑门电路的符号
三、非运算
如图1.5.3(a)所示,电压V通过一继电器触点向灯泡供电,NC为继电器A的动断(常闭)触点,当A不通电时,灯亮;而当A通电时,灯不亮。其真值表如图1.5.3(b)所示。由此可总结出第三重逻辑关系:“
一件事(灯亮)的发生是以其相反的条件为依据”。这种逻辑关系称为非逻辑。
用逻辑表达式来描述就是:
图1.5.3 非逻辑运算
(a) 电路图 (b) 真值表 (c) 用0、1表示的真值表
用非逻辑门电路实现非运算,其逻辑符号如图1.5.4所示
图1.5.4 非逻辑门电路的符号
上述与、或逻辑运算推广到多变量时:
第六节 逻辑函数与逻辑问题的描述
在讨论了与、或、非三种基本逻辑运算后,下面将从工程实际出发,提出逻辑命题,然后用真值表加以描述,从真值表可以写出逻辑函数。一般来说,一个比较复杂的逻辑电路,往往是受多种因素控制的,就是说有多个逻辑变量,输出量与输入变量之间的关系通常是用逻辑函数来描述。下面看一个简单的实例。
图1.6.1是一个控制楼梯照明灯的电路,单刀双掷开关A装在楼下
,B装在楼上,这样在楼下开灯后,可在楼上关灯;同样,也可以在楼上开灯,而在楼下关灯。因为只有当两个开关都向上扳或向下扳时,灯才亮;而一个向上扳,另一个向下扳时,灯就不亮。
上述电路的逻辑关系可用逻辑函数来描述,设L表示灯的状态,即L=1表示灯亮,L=0表示灯不亮。用A和B表示开关A和开关B的位置状态,用1表示开关向上扳,0表示开关向下扳。则L与A
、B的关系可用真值表1.6.1来表示
由真值表可知,在A、B状态的4种不同组合中,只有第一种(
A=B=0)和第四种(A=B=0)两种组合才能使灯亮(L=1
)。A、B之间是与的关系,而两种状态组合之间则是或的关系。不论变量A、B或输出L,凡取1值的用原变量表示,取0值用反变量表示。故可写出灯亮的逻辑函数
它描述了只有开关A、B都扳上或扳下时灯才亮。这就是丛逻辑问题建立逻辑函数的过程。
[此贴子已经被作者于2009-4-7 10:46:05编辑过]
4