您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微型计算机原理及应用(第三版)电子教案第1章
微型计算机原理及应用(第三版)新世纪计算机基础教育丛书主编谭浩强总目录第1章计算机基础知识第2章微型计算机的基本组成电路第3章微型计算机的基本工作原理第4章16位微处理器第5章86系列微型计算机的指令系统第6章微型计算机的程序设计第7章微型计算机汇编语言及汇编程序第8章输入/输出接口第9章中断控制器、计数/定时控制器及DMA控制器第10章A/D及D/A转换器第11章32位微处理器第12章PC总线及整机结构第13章MCS-51单片计算机第14章微型计算机在自动控制系统中的应用第1章计算机与信息化社会1.1数制1.2逻辑电路1.3布尔代数1.4二进制数的运算及其加法电路习题现代计算机是在微电子学高速发展与计算数学日臻完善的基础上形成的,可以说现代计算机是微电子学与计算数学相结合的产物。微电子学的基本电路元件及其逐步向大规模发展的集成电路是现代计算机的硬件基础,而计算数学的数值计算方法与数据结构则是现代计算机的软件基础。微电子学与计算数学发展至今已是内容繁多、体系纷纭,已有不少专著分别阐述。本章只是简要地阐述计算机中最基本的电路元件及最主要的数学知识。对于已学过这些知识的读者,本章将起到复习和系统化的作用。对于未曾接触过这些内容的读者,本章的内容是必要的入门知识,因为这些内容都是以下各章的基础。本章的目的是使本书能够自成系统,读者不必依赖于更多的参考书籍。1.1数制数制是人们利用符号来记数的科学方法。数制可以有很多种,但在计算机的设计与使用上常使用的则为十进制、二进制、八进制和十六进制。十万万千百十个1.1.1数制的基与权数制所使用的数码的个数称为基;数制每一位所具有的值称为权。十进制(decimalsystem)的基为“10”,即它所使用的数码为0,1,2,3,4,5,6,7,8,9,共有10个。十进制各位的权是以10为底的幂,如下面这个数:其各位的权为个、十、百、千、万、十万,即以10为底的0幂、1幂、2幂等。故有时为了简便而顺次称其各位为0权位、1权位、2权位等。二进制(binarysystem)的基为“2”,即其使用的数码为0,1,共两个。二进制各位的权是以2为底的幂,如下面这个数:11011125242322212032168421二进制十进制其各位的权为1,2,4…,即以2为底的0次幂、1次幂、2次幂等。故有时也依次称其各位为0权位、1权位、2权位等。八进制(octavesystem)的基为“8”,即其数码共有8个:0,1,2,3,4,5,6,7。八进制的权为以8为底的幂,有时也顺次称其各位为0权位、1权位、2权位等。十六进制(hexadecimalsystem)的基为“16”,即其数码共有16个:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。十六进制的权为以16为底的幂,有时也称其各位的权为0权、1权、2权等。在微型计算机中这些数制都是经常用到的,但在本书后面的内容中,二进制和十六进制更为常用,希望初学者注意。1.1.2为什么要用二进制电路通常只有两种稳态:导通与阻塞、饱和与截止、高电位与低电位等。具有两个稳态的电路称为二值电路。因此,用二值电路来计数时,只能代表两个数码:0和1。如以1代表高电位,则0代表低电位,所以,采用二进制,可以利用电路进行计数工作。而用电路来组成计算机,则有运算迅速、电路简便、成本低廉等优点。1.1.3为什么要用十六进制用十六进制既可简化书写,又便于记忆。如下列一些等值的数:1000(2)=8(16)(即8(10))1111(2)=F(16)(即15(10))110000(2)=30(16)(即48(10))1.1.4数制的转换方法由于我们习惯用十进制记数,在研究问题或讨论解题的过程时,总是用十进制来考虑和书写的。当考虑成熟后,要把问题变成计算机能够“看得懂”的形式时,就得把问题中的所有十进制数转换成二进制代码。这就需要用到“十进制数转换成二进制数的方法”。在计算机运算完毕得到二进制数的结果时,又需要用到“二进制数转换为十进制数的方法”,才能把运算结果用十进制形式显示出来。1.十进制数转换成二进制数的方法一般可用下列方法求一个十进制数的二进制代码:用2除该十进制数可得商数及余数,则此余数为二进制代码的最小有效位(LSB)的值。再用2除该商数,又可得商数和余数,则此余数为LSB左邻的二进制数代码。用同样的方法继续用2除下去,就可得到该十进制数的二进制代码。【例1.1】求13的二进制代码。其过程如下:结果为:1101。上面是十进制整数转换成二进制数的“除2取余法”。如果十进制小数要转换成二进制小数,则要采取“乘2取整法”:一个十进制的小数乘以2之后可能有进位使整数位为1(当该小数大于0.5时),也可能没有进位,其整数位仍为零(当该小数小于0.5时)。这些整数位的结果即为二进制的小数位结果。举例如下:【例1.2】求十进制数0.625的二进制数。用乘法的竖式计算,步骤如下:至此就不用再算下去了。如果小数位不是0.00,则还得继续乘下去,直至变成0.00为止。因此,一个十进制小数在转换为二进制小数时有可能无法准确地转换。如十进制数0.1转换为二进制数时为0.0001100110…。因此,只能近似地以0.00011001来表示。2.二进制数转换成十进制数的方法由二进制数各位的权乘以各位的数(0或1)再加起来就得到十进制数。【例1.3】求二进制数101011的十进制数。101011权:252423222120乘积:3208021累加:43结果:43(10)二进制小数转换为十进制时也可用同样的方法,不过二进制数小数各位的权是2-1,2-2…。【例1.4】求二进制数0.101的十进制数。0101权:202-12-22-3乘积:00.500.125累加:0.625结果:0.625(10)由此可得出两点注意事项:(1)一个二进制数可以准确地转换为十进制数,而一个带小数的十进制数不一定能够准确地用二进制数来表示。(2)带小数的十进制数在转换为二进制数时,以小数点为界,整数和小数要分别转换。此外,还有其他各种数制之间的转换,其方法和上述方法差不多,都可以从数制的定义中找到转换方法。1.2逻辑电路逻辑电路由其3种基本门电路(或称判定元素)组成。图1.1是基本门电路的名称、符号及表达式。图1.1在这3个基本门电路的基础上,还可发展成如图1.2那样更复杂的逻辑电路。其中,最后一个叫作缓冲器(buffer),为两个非门串联以达到改变输出电阻的目的。如果A点左边电路的输出电阻很高,则经过这个缓冲器之后,在Y点处的输出电阻就可以变得低许多倍,这样就能够提高带负载的能力。图1.21.3布尔代数布尔代数也称为开关代数或逻辑代数,和一般代数一样,可以写成下面的表达式:Y=f(A,B,C,D)但它有两个特点:(1)其中的变量A,B,C,D等均只有两种可能的数值:0或1。布尔代数变量的数值并无大小之意,只代表事物的两个不同性质。如用于开关,则:0代表关(断路)或低电位;1代表开(通路)或高电位。如用于逻辑推理,则:0代表错误(伪);1代表正确(真)。(2)函数f只有3种基本方式:“或”运算,“与”运算及“反”运算。下面分别讲述这3种运算的规律。1.3.1“或”运算由于A,B只有0或1的可能取值,所以其各种可能结果如下:Y=0+0=0→Y=0Y=0+1=1Y=1+0=1→Y=1Y=1+1=1上述第4个式子与一般的代数加法不符,这是因为Y也只能有两种数值:0或1。上面4个式子可归纳成两句话,两者皆伪者则结果必伪,有一为真者则结果必真。这个结论也可推广至多变量,如A,B,C,D,……,各变量全伪者则结果必伪,有一为真者则结果必真。写成表达式如下:设Y=A+B+C+D+…则Y=0+0+…+0=0→Y=0Y=1+0+…+0=1Y=0+1+…+0=1→Y=1Y=1+1+1…+1=1这意味着,在多输入的“或”门电路中,只要其中一个输入为1,则其输出必为1。或者说只有全部输入均为0时,输出才为0。或运算有时也称为“逻辑或”。当A和B为多位二进制数时,如:A=A1A2A3…AnB=B1B2B3…Bn则进行“逻辑或”运算时,各对应位分别进行“或”运算:Y=A+B=(A1+B1)(A2+B2)(A3+B3)…(An+Bn)【例1.5】设A=10101B=11011则Y=A+B=(1+1)(0+1)(1+0)(0+1)(1+1)=11111写成竖式则为10101+)1101111111注意,1“或”1等于1,是没有进位的。1.3.2“与”运算根据A和B的取值(0或1)可以写出下列各种可能的运算结果:Y=0×0=0Y=1×0=0→Y=0Y=0×1=0Y=1×1=1→Y=1这种运算结果也可归纳成两句话:二者为真者结果必真,有一为伪者结果必伪。同样,这个结论也可推广至多变量:各变量均为真者结果必真,有一为伪者结果必伪。写成表达式如下:设Y=A×B×C×D×…则Y=0×0×…×0=0Y=1×0×…×0=0→Y=0Y=0×1×…×0=0Y=1×1×1…×1=1→Y=1这意味着,在多输入“与”门电路中,只要其中一个输入为0,则输出必为0,或者说,只有全部输入均为1时,输出才为1。与运算有时也称为“逻辑与”。当A和B为多位二进制数时,如:A=A1A2A3…AnB=B1B2B3…Bn则进行“逻辑与”运算时,各对应位分别进行“与”运算:Y=A×B=(A1×B1)(A2×B2)(A3×B3)…(An×Bn)【例1.6】设A=11001010B=00001111则Y=A×B=(1×0)(1×0)(0×0)(0×0)(1×1)(0×1)(1×1)(0×1)=00001010写成竖式则为11001010×)0000111100001010由此可见,用“0”和一个数位相“与”,就是将其“抹掉”而成为“0”;用“1”和一个数位相“与”,就是将此数位“保存”下来。这种方法在计算机的程序设计中经常会用到,称为“屏蔽”。上面的B数(00001111)称为“屏蔽字”,它将A数的高4位屏蔽起来,使其都变成0了。1.3.3“反”运算如果一件事物的性质为A,则其经过“反”运算之后,其性质必与A相反,用表达式表示为:Y=A这实际上也是反相器的性质。所以在电路实现上,反相器是反运算的基本元件。反运算也称为“逻辑非”或“逻辑反”。当A为多位数时,如:A=A1A2A3…An则其“逻辑反”为:Y=A1A2A3…An【例1.7】设:A=11010000则:Y=001011111.恒等式A·0=0A·1=AA·A=AA+0=AA+1=1A+A=AA+A=1A·A=0A=A1.3.4布尔代数的基本运算规律2.运算规律与普通代数一样,布尔代数也有交换律、结合律、分配律,而且它们与普通代数的规律完全相同。(1)交换律:A·B=B·AA+B=B+A(2)结合律:(AB)C=A(BC)=ABC(A+B)+C=A+(B+C)=A+B+C(3)分配律:A(B+C)=AB+AC(A+B)(C+D)=AC+AD+BC+BD利用这些运算规律及恒等式,可以化简很多逻辑关系式。【例1.8】A+AB=A(1+B)=AA+AB=A+AB+AB=A+(A+A)B=A+B【例1.9】如果原设计继电器线路如图1.3(a),现用逻辑关系,化简线路。图1.3首先,把图1.3(a)中触点(如同开关)和灯的关系用布尔代数表示如下:Y=(A+AB)·B其中A与A是同一继电器的常开与常闭触点。一般把常开触点定为变量A,B,则相应的常闭触点为A,B。下面,用布尔代数进行简化:Y=(A+AB)·B=AB+AB·B=AB+0=AB因此可以用图1.3(b)中的电路,代替原设计的图1.3(a)的电路。电路大大简化了,但能起到同样的作用。1.3.5摩根定理在电路设计时,人们手边有时没有“与”门,而只有“或”门和“非”门;或者只有“与”门和“非”门,没有“或”门。利用摩根定理,可以解决元件互换的问题。二变量的摩根定理为:A+B=A·BA·B=A+B推广到多变量:A+B+C+…=A·B·C…A·B·C…=A+B+C+…至于多变量的摩根定理,用相同
本文标题:微型计算机原理及应用(第三版)电子教案第1章
链接地址:https://www.777doc.com/doc-70769 .html