单片机入门第2章_第1页
单片机入门第2章_第2页
单片机入门第2章_第3页
单片机入门第2章_第4页
单片机入门第2章_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机入门第2章 1/148第二章微型计算机基础知识本章学习目标掌握微型计算机中的数制及其编码了解布尔代数和逻辑设计的基础知识掌握基本逻辑门电路了解微型计算机的常用技术术语和技术8:45:052/1481微型机中的数制及其编码 一、数与数制进位计数制,简称数制,是人们利用符号来计数的方法。 十进制由于人在最初计数的时候是用十个手指协助的缘故,习惯上采用的计数制是十进制的。 8:45:053/148二进制在计算机中是用晶体管的可靠截止和可靠饱和这样两个状态下的输出电平11和00来表示数字的,所以,计算机中所采用的计数制是二进制。 也就是说,计算机和人打交道的时候用十进制,用十进制输入数据和输出显示数据;另一方面在计算机内部进行数据的计算和处理时用二进制。 8:45:054/148二进制的运算规则二进制数的基数为22,只有 00、11两个数码,并遵循相加时逢二进 一、相减时借一当二的规则。 计算机中的带符号数也是用二进制表示的,其正负号有相应的编码方法。 8:45:055/148十进制与二进制转换在计算机中的解决方法是,和人进行数据的交流(也称为人机交互)时,利用接口技术作转换。 例如,我们用键盘输入数据时,都用使用十进制数,即,输入电路使用的键盘是十进制数,输入接口电路将十进制数转换为二进制数后送到机器内部;8:45:056/148 二、不同数制之间的转换 11、十进制数转换为二进制数十进制数转换为二进制数的方法整数部分转换方法反复除以22取余数,直到商为00为止。 最后将所有余数倒序排列,得到数就是转换结果。 小数部分转换方法乘以22取整,直到满足精度要求为止。 8:45:057/148例11将十进制数100转换为二进制数余数2低位222222高位10005002512160301101 (100)10= (01100100)2或者表示为100D=01100100B8:45:058/148例22将十进制数45.613转换成二进制数45.613=(101101.100111)2或45.613D=101101.100111B余数2低位22222高位4512xx51211001取整数低位高位整数部分转换示意图小数部分转换示意图0.6132=1.22610.2262=0.45200.4522=0.90400.9042=1.80810.8082=1.61610.6162=1.23218:45:059/ 14822、二进制数转换为十进制数转换方法将二进制数的每位上的数字与其权值相乘,然后加在一起就是对应的十进制数。 例如,一个88位的二进制数的各位的权值依次是 2277、 2266、 2255、?、2200。 若一个88位二进制数据是10110110B B时,765432101202121202121202182?即, (10110110)2= (182)10或者表示为10110110B=182D8:45:0510/ 14833、十六进制数优点当二进制数的位数较多时,读写都不方便。 这时,使用十六进制表示数据的方法就简明一些。 十六进制数表示共有十六个字符,分别使用数字0099和大写英文字母A A、B B、C C、D D、E E、F F表示。 为表明是十六进制数,需要在数字的后面加上字母H H(Hexadecimal)以示区别。 8:45:0511/148二进制数转换为十六进制数原理因为四位二进制数的模是16,所以二进制整数转换为16进制时,只要从最低位开始,每四位一组(不足四位时高位补00)转换成一位十六进制数据就可以了。 例如10110110B=B66H H。 8:45:0512/148十六进制数转换为二进制数十六进制数据转换为二进制数据的时候,把每一位十六进制数据直接写成四位二进制数的形式就可以了。 例如64H=01100100B B8:45:0513/14844位二进制数和一位十六进制数具有一一对应的关系,如表22-11所示。 十六进制二进制十六进制二进制00000810001000191001xx0A101030011B101140100C110050101D110160110E111070111F1111表表2-14位二进制数和一位十六进制数的对应关系8:45:0514/148十六进制数据和十进制数据之间的转换通过二进制转换;将十进制数反复除以十六取余数来完成十进制数转换为十六进制数;将十六进制数的每位上的数字与其权值相乘,然后加在一起就是对应的十进制数,此时的n+11位十六进制数的权值分别为16n n、16n n- 11、?、 1622、 1611、16008:45:0515/148 三、数制数据的编码及其运算在计算机中,采用数字化方式来表示数据,数据有无符号数和带符号数之分。 无符号数用整个机器字长的全部二进制位均表示数值位,无符号位;带符号数用最高位表示该数的符号位,不表示数值位。 带符号数根据其编码的不同又有原码、补码和反码三种形式。 8:45:0516/ 14811、原码表示法由于计算机中只能有 00、11两种数,所以,不仅一个数的数值部分在计算机中用 00、11编码的形式表示,正、负号也只能用 00、11编码表示。 一般用数的最高位(Most SignificantBit,MSB)表示数的正负符号。 原码表示法:一个数连同它的符号在机器中使用 00、11进行编码。 8:45:0517/148例如,若用55位二进制数表示数据时,最高位表示符号,00表示正数,11表示负数,余下的四位表示数据MSB=00表示正数,如1011B B表示为001011B B;MSB=11表示负数,如1011B B表示为111011B B。 8:45:0518/148机器数和真值把一个数在机器内的二进制表示形式称为机器数。 把这个数本身称为该机器数的真值。 上边的“01011B”和“11011B”就是两个机器数。 它们的真值分别为1011B B和1011B B。 8:45:0519/148若真值为纯小数,其原码形式为X XS SX X11X X22?X X n n,其中X XS S表示符号位。 例如,若X X00.0110,则X原X X00.0110;若X X-00.0110,则X原11.0110若真值为纯整数,其原码形式为X XS SX X n nX X n n-11?X X22X X11,其中X XS S表示符号位。 8:45:0520/14888位二进制原码的表示范围为-127-00+00+12716位二进制原码的表示范围为-32767-00+00+32767原码表示中,真值00有两种不同的表示形式00原00000,00原100008:45:0521/148无符号数没有符号位的数,称为无符号数。 无符号数的最大值比有符号数要大一倍。 如字长为88位时,能表示的无符号数的最大值为11111111B B,即255,而88位有符号数的最大值是01111111B B,即+127。 8:45:0522/14888位二进制无符号数的表示范围为0025516位二进制无符号数的表示范围为0065535原码的优点是直观易懂,机器数和真值间的转换很容易,用原码实现乘、除运算的规则简单。 缺点是加、减运算规则较复杂。 8:45:0523/148原码计算存在的问题直接用一位 00、11码表示数的正、负,在运算时可能会带来一些新的问题这是因为计算机的运算器毕竟是一个大型数字电子器件,而有符号数和无符号数的表示形式并没有任何区别,都是用二进制数据 00、11表示,所以,CPU在进行运算时,并不知道参与运算的数是有符号数还是无符号数,在进行有符号数的运算时,就会将符号也当作是数进行了运算,因而有时会出现错误的结果。 8:45:0524/148两个正数相加时,符号位也同时相加若两个数之和不超出其所能表示的最大值127时,符号位也相加000000,即和仍然为正数,没有影响运算的正确性。 若两个数之和超出了其所能表示的最大值127时,就会产生数字位向符号位的进位,两个符号位相加000000,再加上低位进上来的11,00+11=11,符号位为11,作为有符号数,表示两个正数相加的和为负数,显然是不对的。 8:45:0525/148例11,两个有符号正数01010111B B(87D D)和00010110B B(22D D)相加。 其和为1101101B B,即十进制的109,符号位为00,表示和为正数,结果正确。 01010111+00010110011011018:45:0526/148例22,两个有符号正数00110111B B(55D D)和01011101B B(93D D)相加。 其和应为正数148,但是,最高位即符号位为11,表示和是负数,显然是错了。 产生错误的原因是相加的和应该是+148,超出了88位有符号正数所能表示的最大值+127,数值在运算产生的进位影响到了符号位。 对于有符号数,这种数值运算侵入到符号位造成结果错误的情况,称为溢出。 00110111+01011101100101008:45:0527/148一个正数与一个负数相加,和的符号位不应是两符号位直接运算的值001111,而应由两数的大小决定。 即和的符号位是由两数中绝对值大的一个数所决定。 两个负数相加时,由于111110,符号位只剩下00,因此和的符号也不应是由两符号位直接运算的结果所决定。 8:45:0528/148因为所有的运算都是在算术逻辑单元ALU中进行,即使是减法运算,也是用相加的办法来解决,为了解决机器内有符号数的符号位参加运算的问题,引入了反码和补码两种机器数的形式。 8:45:0529/ 14822、反码表示法对正数来说,其反码和原码的形式是相同的。 即原反。 对负数来说,反码为其原码的数值部分的各位变反, 00、11互为反码在反码表示中,真值00也有两种不同的表示形式00反00000B B00反11111B B8:45:0530/148真值、原码、反码的不同表示原反反1101B01101B01101B1101B11101B10010B8:45:0531/148反码运算要注意以下三个问题符号位要与数值位一样参加运算。 符号位运算后如有进位产生,则把这个进位送回到最低位去相加,这叫循环进位。 反码运算具有性质X反Y反XY反8:45:0532/ 14833、补码表示法同余的概念两整数A A和B B除以同一正整数M M,所得余数相同,则称A A和B B对M M同余,即A A和B B在以M M为模时是相等的,可写成A AB B(mod M M)例如对钟表来说,其模MM12,故44点和16点、55点和17点?均是同余的,可写作4416(mod12),5517(mod12)8:45:0533/148指针式钟表的校准若钟表快了两个小时,本应是33点时,显示却是55点,将其校准的方法有两个一个方法是往回拨两个小时,另一个方法是往前拨10个小时,结果是一样的。 往回拨两小时就是55减22到33点,往前拨10小时就是55加上10,也是拨到33点,这是因为,钟表是按照12小时循环计数的,一旦加到大于12小时时,就会将12舍弃,计为00点,55加上的10中的77使指针回到00点,再从00点再加33小时就到了33点。 8:45:0534/148这种按照周期循环的数的周期叫做模,这里的模就是12,数一旦大于或等于其模,就会被自动舍弃。 所以,55+10-12=33,在这里,55-22可以看作是55+10-12=55+(10-12),10就可以看作是-22的补码。 也就是说,以12为模时,22和10同余。 同余的两个数具有互补关系,22与10对模12互补,即22的补码是10。 8:45:0535/148类似的例子也适合数字式钟表,只不过数字式钟表的小时有时是24小时制的,那样,其模就是24了。 当然,分钟的模是60等等。 调整数字式钟表也可以只使用加的方法,如果钟表慢了,加上数字;如果钟表快了,也是相加,直到溢出后从00继续计数,所加的总数就是加上的补码。 8:45:0536/148可见,只要确定了“模”,就可找到一个与负数等价的正数(该正数是负数的补码)来代替此负数,这个正数可用模加上负数本身求得,这样就可把减法运算用加法实现了。 8:45:0537/148补码的概念知道模的大小,求某个负数的补码时,只要将该负数加上其模,就得到它的补码。 如以“10”为模,“-77”的补码为(77)+1033(mod10)这时“33”就是“-77”的补码。 8:45:0538/148某一正数加上一个负数时,实际上是做一次减法。 在引入补码概念之后。 可以将该正数加上这个负数的补码,最高位向上产生的进位会自然丢失,所以得到的结果同样是正确的。 例如,当模为10时时,7(-7)7(-7+10)=7+3=10=10-10=0(mod10)又如,7+(-4)=7+(-4+10)=7+6=13=13-10=3(mod10)8:45:0539/148以22n n为模的补码在计算机中,带符号的数用二进制补码表示。 存放数据的存储器的位数都是确定的。 如果每个存数单元的字长为n n位,那么它的模就是22n n。 22n n是一个n nl l位的二进制数100?00B B(11后面有n n个00),由于机器只能表示n n位数,因此数22n n在机器中仅能以n n个00来表示,而该数最高位的数字11就被自动舍弃了。 由此可见,如果以22n n为模,则22n n和00在机器中的表示形式是完全一样的。 8:45:0540/148如果将n n位字长的二进制数的最高位留做符号位,则数字只剩下n n-11位,下标从n n-22到00,数字X X的补码(以22n n为模)的表示形式为当X X为正数时,即X X+Xn n-22X Xn n-33?X X11X X00时,X补=22n n+X=00X Xn n-22X Xn n-33?X X11X X00(mod22n n)=X原8:45:0541/148当当X为负数时,即即X-Xn-2Xn-3X1X0时,8:45:0542/148例如,n=88时,2288=100000000B B,则1010111B B的补码为1010111B补100000000B B1010111B B10101001B B或1010111B补1010111B反1110101000B B1110101001B B8:45:0543/148?对正数来说,其补码和原码的形式是相同的原补;?对负数来说,补码为其反码(数值部分各位变反)加。 例如原反补正数0001101B B00001101B B00001101B B00001101B B负数0001101B B10001101B B11110010B B11110011B B8:45:0544/148这种利用求反加11求负数补码的方法,在逻辑电路中利用非门电路和加法计数器的功能实现起来是很容易的。 这是因为二进制数有反码,每位数非00即11,00与11互为反码,利用反相电路很容易实现;而十进制数有0099共10个数字,相互之间没有反码的关系,所以十进制数虽然有补码,但是无法用求反加11的方法实现求补码的运算。 8:45:0545/148不论是正数,还是负数,反码与补码具有下列相似的性质反反原补补原8:45:0546/148【例22-11】+13和-13的原码、反码、补码以及反码的反码和补码的补码如下X X原反补反反补补正数0001101B B00001101B B00001101B B00001101B B00001101B B00001101B B负数0001101B B10001101B B11110010B B11110011B B10001101B B10001101B B8:45:0547/14888位二进制数的原码、反码、补码的表示如表22-22所示。 无符号数有符号数十进制数二进制数真值原码反码补码1271012812925501111111B00000001B00000000B10000000B10000001B11111111B+127+1+0-0-1-127-12801111111B00000001B00000000B10000000B10000001B11111111B不能表示01111111B00000001B00000000B11111111B11111110B10000000B不能表示01111111B00000001B00000000B00000000B11111111B10000001B10000000B表表2-28位二进制数的原码、反码、补码的表示8:45:0548/148由表22-22可见,字长为88位时,原码、反码的表示数的范围为127127,而补码表示的数为127128。 下面对两个特殊的数的补码作进一步说明00的补码因为+00补00000000B B,00的原码为10000000B B,经求反加11,得00000000B B,所以,-00补00000000B B。 即,对补码来说,不分正 00、负00,都是00。 8:45:0549/148-128的补码根据补码的定义,128补=2288(128)=2288(128)=2288(127)-11=256-128=100000000B B-1111111B B=100000001B B-11=10000000B B8:45:0550/148数值数据的运算采用补码进行加减运算时要注意以下几个问题溢出补码运算时,其符号位要与数值部分一样参加运算,但但结果不能超出其所能表示的数的范围,否则会出现溢出错误。 无符号数的加减运算结果超出数的范围的情况叫做产生做进位或借位,计算机中有专门记录运算时产生的进位或借位的标志,只要适当处理这些标志,例如将进位加到更高位上或者将借位从更高位上减去就不会出错,所所以在多字节数的加减运算时,必须考虑进位和借位的处理。 8:45:0551/148采用了补码以后,符号运算后如有进位出现,则把这个进位舍去不要,不影响运算结果,运算后的符号就是结果的符号。 补码运算的性质补补补补补补补以上运算性质,与数的位数n无关。 8:45:0552/148下面以二进制数的补码运算为例,说明有符号数的运算性质【例22-22】已知+0101101B B0000001B B求?解补=00101101补=11111111补=100101100进位舍去不要补补0101100B=X补+Y补8:45:0553/148【例22-33】已知0001101B B0000001B B求?解补=11110011补=11111111补=111110010进位舍去不要所以,补补0001110B B8:45:0554/148【例22-44】已知+11128求?解补00000001补10000000补10000001所以,补补11111111B B1278:45:0555/148加法器就能完成所有的算术运算加法算减法因为减去一个正数的减法运算可以看作是加上一个负数的加法运算,所以在计算机中,利用反码加一的方法求得补码之后,就把减一个正数的运算转变为加上一个负数的运算,进而变为加上该负数的补码的加法运算。 加法算乘法可以采用移位相加的方法完成。 加法算除法采用移位相减的方法完成,这样只用加法器就能完成所有的算术运算。 8:45:0556/148三种编码小结对正数而言,上述三种码都等于真值本身。 最高位都表示符号位,补码和反码的符号位可与数值位一样看待,和数值位一起参加运算;但原码的符号位必须与数值位分开处理。 原码和反码的真值00各有两种不同的表示方式,而补码的真值00表示是唯一的。 8:45:0557/ 14844、十进制数的编码常用的十进制数编码有BCD码(Binary-Coded Decimal)余33码格雷码等8:45:0558/148BCD码是二进制编码形式的十进制数,即用44位二进制数表示一位十进制数,这种编码形式可以有多种,其中最自然、最常用的一种形式为88-44-22-11码,即这44位二进制数的权值,从左向右依次分别为88,44,22,11。 8:45:0559/148非压缩BCD当用一个字节的88位二进制数表示十进制数时,若每个字节的高四位为00,只用其低四位表示一位十进制数,则称为非压缩的BCD码,表示格式如图所示。 它所表示的数的范围是00-99。 D7D6D5D4D3D2D1D00000个位图2-3非压缩BCD码的表示格式8:45:0560/148D7D6D5D4D3D2D1D0十位个位图2-4压缩BCD码的表示格式压缩BCD若将8位用于表示两位十进制数,则称为压缩的BCD码码,表示格式如图所示。 它所表示的数的范围是0-99。 8:45:0561/148例如,若用44个字节表示十进制数4321用非压缩的D BCD码表示时是000000100,00000011,00000010,00000001;用十六进制数据表示,则是04H H、03H H、02H H、01H H;用压缩的D BCD码表示时,为101000011,00100001;用十六进制数据表示,则是43H H、21H H。 8:45:0562/148尽管在8421码中0099等10个数码的表示形式与用二进制表示的形式一样,但这是两个完全不同的概念,不能混淆。 如如,十进制数939可表示为( (00111001)8421或100111B B,两者是完全不同的。 8:45:0563/148 四、非数值数据的编码计算机不仅能够对数值数据进行处理,还能够对文本和其它非数值数据信息进行处理。 非数值数据是指不能进行算术运算的数据,是指字符、字符串、图形符号和汉字、语音与图像的信息等多种数据。 这些信息在传送时,并不是直接传送和处理其原值,而是先按照某种规则进行一定的处理,以便使之具有通用的传送格式。 经过这种处理的数值信息,称为编码。 8:45:0564/ 14811、ASCII编码在处理文本文件时,每个字符都是由其相应的标准字模构成的,文本文件本身并不包括这些字模,而只是使用其编码来表示每个字符。 例如,使用区位编码的中文时,44位十进制区位码可以表示一万个不同的字符。 国际上通用的标准字符编码为ASCII码(American StandardCode forInformation Interchange,ASCII),即美国标准信息交换码。 8:45:0565/148ASCII码共定义了256个代码(从00-255)从从00-232位为控制字符(ASCII controlcharacters)从33-127位为可打印字符(ASCII printablecharacters)从00-127是标准的ASCII编码从128-255是扩展的ASCII编码8:45:0566/148标准ASCII码26个小写英文字母和26个大写英文字母、10个数字码(0099)以及25个特殊字符,如,等共计87个字符。 这87个字符可用77位二进制编码来表示。 8:45:0567/148为了能与主流计算机相兼容,各国也都采用这种字符编码进行上述字符和数字的传输。 目前,几乎所有小型计算机和微型计算机都采用ASCII码。 例如,标准键盘与主机之间,显示器与主机之间的数据传输等,都是采用的这种ASCII编码。 8:45:0568/148附录A A为ASCII码字符表,它用88位二进制数表示字符代码。 其基本代码占77位,第88位可用作奇偶校验,通过对奇偶校验位设置“11”或“00”状态,保持88位字节中的“11”的个数总是奇数(称为奇校验)或偶数(称为偶校验),一般用于字符或数字的串行传送时检测传送过程中是否出错。 8:45:0569/ 14822、汉字编码汉字输入编码汉字信息处理系统一般包括编码、输入、存储、输出和传输。 编码是关键。 不解决这个问题,汉字就不能进入计算机。 汉字输入编码是用计算机标准键盘上按键的不同排列组合来对汉字进行编码。 8:45:0570/148一个好的输入编码法应满足编码短,击键次数少。 重码少,可盲打。 好学好记。 8:45:0571/148常用的输入编码有数字、字音、字形和音形编码等。 数字编码用数字串代表一个汉字的输入,如电报码、区位码等。 最大优点是无重码,但难记。 字音编码以汉语拼音作为编码基础。 简单易学,但重码很高,常用的有搜狗拼音、全拼、双拼、微软拼音和智能ABC输入法等。 字形编码法将汉字的字形信息分解归类而给出的编码。 具有重码少的优点。 常用的有五笔字型码、表形码、郑码等。 音形编码法音形编码吸取了音码和形码的优点,使编码规则简化,重码少。 常用的有全息码等。 8:45:0572/148汉字国标码汉字国标码即国标码,是在不同汉字信息处理系统间进行汉字交换时所使用的编码。 国标码以国家标准局颁布的GB2312-80规定的汉字交换码作为标准汉字编码。 共收录7445个。 8:45:0573/148在字符集中,汉字和字符符号分在94个区,每区区94位位。 每个汉字及字符用两个字节表示,前一个字节为区码,后一个字节为位码,各用两位位16进制数字表示。 这就是所谓的汉字区位码。 汉字区位码并不等于汉字国标码,两者间的关系可用以下公式表示国标码区位码(化成16进制)2020H8:45:0574/148汉字机内码汉字机内码简称汉字内码,是在计算机外设和信息系统内部存储、处理、传输汉字用的代码,是汉字在设备或信息处理系统内部最基本的表达形式。 在西文计算机中,无交换码和内码之分,一般以ASCII码作为内码。 英文字符的机内码是77位ASCII码,最高位为00(即D D7700)。 8:45:0575/148汉字内码用两个字节表示。 为了区分汉字字符与英文字符,将汉字国标码的每个字节的最高位置11,作为汉字机内码。 如,“啊”的国标码为0011000000100001(3021H H),机内码为1011000010100001(B B00A A11H H),即,汉字机内码汉字国标码8080H H8:45:0576/148汉字字形码一般情况下,汉字用点阵方式表示其外形,这个点阵称为汉字字模,也称为汉字字形码。 不管汉字的笔划多少,都可在同样的方块中书写,从而把方块分割为许多小方块,组成一个点阵,每个小方块就是点阵中的一个点,即二进制的一个位。 每个点由00和11表示“白”和“黑”两种颜色。 用这样的点阵就可输出汉字。 8:45:0577/148数字编码字音编码字形编码交换码(国标码)汉字内码字形码显示汉字打印汉字图2-3各种代码间的逻辑关系不同的输入编码输入到计算机中,都统一使用国标码。 各种代码间的逻辑关系如图22-33所示。 8:45:0578/148【例22-55】汉字“春”的区位码为20-26,计算其国标码和机内码。 区位码第11字节第22字节十进制2026十六进制14H H11AH20H H20H H国标码34H H33AH80H H80H H机内码B B44H HBAH8:45:0579/148汉字编码的发展汉字编码的发展经历了下面几个阶段GB2312-80是国家标准局1980年颁布的,其中只包含6763个 一、二级常用汉字。 已不能满足各方面应用的需要。 “通用多八位编码字符集”国际标准(ISO/IEC10646)简称UCS,是国际标准化组织1993年公布的。 它确定了20902个中日韩统一汉字。 8:45:0580/148与通我国标准化管理机构发布了与ISO/IEC10646一致的国家标准GB-13000。 2000年3月月,信息产业部和质量监督局共同颁布了GB18030-2000信息技术信息交换用汉字编码字符集基本集的扩充(简称GBK)这一强制性国家标准,字共收录汉字27000多个,彻底解决了偏、生汉字的输入问题。 8:45:0581/148统一代码统一代码(Unicode)是一种全新的编码方法,此法有足够的能力来表示全世界多达6800种语言中任意一种语言里使用的所有符号。 其基本方法是,用一个16位的数来表示Unicode中的每个符号,即允许表示65536个不同的字符或符号。 这种符号集被称为基本多语言平面(BMP)。 8:45:0582/148在计算机中用扩展ASCII码、Unicode UCS-22和UCS-44方法表示一个符号之间的差异如图所示。 Unicode(UCS-22)的表示方法Unicode(UCS-44)的表示方法展扩展ASCII字符的表示方法法70150310图图2-4计算机中表示符号的三种方法8:45:0583/148 一、布尔代数布尔代数是英国数学家乔治布尔(George Boole)发明的,布尔也是数理逻辑的创始人。 近几十年来,布尔代数在自动化技术、电子计算机的逻辑设计等工程技术领域中有重要的应用。 2布尔代数和常见逻辑电路8:45:0584/148布尔代数以命题为对象,包含三种基本逻辑操作(与,或,非)的完整的代数学,它可以对命题进行运算。 基本的运算符有+,和。 二元运算+称为布尔加法,布尔和,布尔并,布尔合取等;二元运算称为布尔乘法,布尔积,布尔交,布尔合取等;一元运算称为布尔补,也称为布尔否定或者布尔代数的余运算,有时也使用上横线“”表示。 8:45:0585/148运算的基本依据是下面的基本公式和规则交换律A AB BB BA A ABBA结合律A A(BC)(AB)C CA(BC)(AB)C分配律A A(BC)(AB)(AC)A(BC)ABAC8:45:0586/148吸收律第二吸收律反演律(又称摩根定律)包含律重叠律8:45:0587/148互补律A AA A11AA0000-11律00A AA A11AA A00A0011A A11这里,值得一提的是反演律即摩根定律,它常用于复杂逻辑函数的化简操作中。 8:45:0588/148 二、基本逻辑运算和逻辑门电路逻辑运算主要包括与、或、非、异或等。 逻辑变量只有两个逻辑00和逻辑11。 逻辑运算只是按位进行运算,没有进位和借位问题,逻辑变量也没有符号问题。 8:45:0589/ 14811、基本逻辑运算和逻辑门电路逻辑与(AND)逻辑与也叫逻辑乘,逻辑与的运算结果叫逻辑积。 运算规则逻辑与运算的规则是按位相与,当两位逻辑变量都为逻辑11时,逻辑积才为11,否则逻辑积为00。 逻辑与的运算符号是“”或者“”。 表示逻辑与运算的圆点也可以省略。 8:45:0590/148若用Y Y表示逻辑积,A A和B B分别表示两个逻辑变量时,其表达式为两个逻辑变量A A、B B及其逻辑积Y Y的关系的真值表如表22-33所示。 例如B A Y?A BY=AB000010100111110101100011010100010100和逻辑与运算对应的逻辑电路是“与门”。 表2-3逻辑与的真值表8:45:0591/148逻辑或(OR)逻辑或也叫逻辑加,逻辑或运算的结果叫逻辑和。 运算的规则也是按位运算,两位逻辑变量中只要有任何一个为逻辑11时,逻辑或的结果就为11,否则逻辑或的结果为00。 逻辑或的运算符号是“+”或者“”。 8:45:0592/148A BY=A+B000011101111表2-4逻辑或的真值表若用Y Y表示逻辑和,A A和B B分别表示两个逻辑变量时,其表达式为两个逻辑变量AA、B B及其逻辑和Y Y的关系的真值表如表22-44所示。 例如,B AY?100101100011010110110111和逻辑或运算对应的逻辑电路是“或门”8:45:0593/148逻辑非(NOT)逻辑非也叫逻辑反运算规则将一个变量按位求反的运算。 表达式为对于任一位逻辑数据,逻辑非运算的真值表如表22-55所示。 AY?表2-5逻辑非的真值表8:45:0594/148例如,若A=01100011,则,Y=A=10011100和逻辑非对应的逻辑电路是“非门”。 上述逻辑运算中,“非”运算的级别最高;“与”运算次之;“或”运算最低。 A8:45:0595/ 14822、组合逻辑电路与非门或非门异或门运算规则是异则或,即,两变量不同时运算结果为11,否则为00。 它是进行两逻辑变量不相等的逻辑测试。 B AY?B AY?B A B AB AY?8:45:0596/148逻辑异或的真值表如表22-66所示。 例如,设A=10110110,B=00110101即Y=A?B B=10000011ABY=A?B000011101110表2-6逻辑或的真值表101101100011010110000011+8:45:0597/148同或门三态门在各种数字电路中,有些电路引脚的输出状态除了高、低电平即 11、00之外,还有第三种状态,即高阻状态,这种状态叫做浮空,也叫做高阻、挂起等。 具有高阻态输出的门电路称为三态门,常用于构成总线接收器和发送器。 YAB=ABAB8:45:0598/148高阻状态是门电路输出端的上拉和下拉的两个晶体管在控制端的作用下都处于截止状态,而截止状态所呈现的阻抗很高的情况。 当输出端在使能端的控制作用下呈高阻状态时,输出端不输出任何逻辑电平,就像是开路一样。 但是输出端在电路中所呈现的状态取决于与该端连接的其他芯片送出的信号。 8:45:0599/148每一条线上不能同时有两个信号同时是输出状态,所以当几个芯片的输出端连在一起的时候,如果其中一个是输出状态时,其他芯片的输出端不能同时也是输出状态,就是说,此时其他芯片既不能输出11,也不能输出00,就像是断开电路一样,这种输出端不输出逻辑电平的状态就是高阻状态,一般用符号Z Z来表示。 8:45:05100/148 三、常用组合逻辑电路 11、锁存器锁存,就是把信号暂存以维持某种电平状态。 74LS373是具有三态缓冲输出的88D D锁存器,当地址线和数据线复用的时候,在单片机应用系统中常被用作地址锁存器。 8:45:05101/14874LS3373的内部逻辑电路图如图22-66所示8:45:05102/14874LS373引脚图如图22-66所示。 D D00D77为数据输入端OC为输出允许控制端(三态,低电平有效);G G为锁存允许端(也称为LE端);Q Q00Q77为输出端。 图图2-674LS373引脚图V8Q8D7Q7D6Q6D5D5QG GND4Q4D3D3Q2Q2D1D1QOC12345678910111213141516171819208:45:05103/148当使能端有效(G G端变为高电平)的时候,输出端的信号跟随输入信号变化,当使能端变为低电平时,输出端的信号不再随输入端的信号变化,我们把这种性能称之为锁存。 就像是锁门一样,门一旦被锁,人不能通过,在这里是数据不能通过。 当使能端有效时,相当于开锁了,输出端的数据能够随输入端的变化而变化,或者说是数据能够从输入端通过锁存器到达输出端。 8:45:05104/148当被锁存的信号是地址时,叫做地址锁存。 被锁存的信号是数据时,叫做数据锁存。 有时候也可以使用88D D触发器74LS273做地址锁存,74LS3273与与74LS3373的差别是,74LS273是上升边沿触发,而74LS373是高电平使能,且控制端可以控制其具有第三态输出高阻输出。 二者的真值表分别如表22-88和表22-99所示。 8:45:05105/148CLR CLKD QL XX L HH H HL L H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论