单片机入门第2章

上传人:亦明 文档编号:141883529 上传时间:2020-08-13 格式:DOC 页数:26 大小:239.32KB
返回 下载 相关 举报
单片机入门第2章_第1页
第1页 / 共26页
单片机入门第2章_第2页
第2页 / 共26页
单片机入门第2章_第3页
第3页 / 共26页
单片机入门第2章_第4页
第4页 / 共26页
单片机入门第2章_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《单片机入门第2章》由会员分享,可在线阅读,更多相关《单片机入门第2章(26页珍藏版)》请在金锄头文库上搜索。

1、单片机入门第2章 1/148第二章微型计算机基础知识本章学习目标掌握微型计算机中的数制及其编码了解布尔代数和逻辑设计的基础知识掌握基本逻辑门电路了解微型计算机的常用技术术语和技术8:45:052/1481微型机中的数制及其编码 一、数与数制进位计数制,简称数制,是人们利用符号来计数的方法。 十进制由于人在最初计数的时候是用十个手指协助的缘故,习惯上采用的计数制是十进制的。 8:45:053/148二进制在计算机中是用晶体管的可靠截止和可靠饱和这样两个状态下的输出电平11和00来表示数字的,所以,计算机中所采用的计数制是二进制。 也就是说,计算机和人打交道的时候用十进制,用十进制输入数据和输出显

2、示数据;另一方面在计算机内部进行数据的计算和处理时用二进制。 8:45:054/148二进制的运算规则二进制数的基数为22,只有 00、11两个数码,并遵循相加时逢二进 一、相减时借一当二的规则。 计算机中的带符号数也是用二进制表示的,其正负号有相应的编码方法。 8:45:055/148十进制与二进制转换在计算机中的解决方法是,和人进行数据的交流(也称为人机交互)时,利用接口技术作转换。 例如,我们用键盘输入数据时,都用使用十进制数,即,输入电路使用的键盘是十进制数,输入接口电路将十进制数转换为二进制数后送到机器内部;8:45:056/148 二、不同数制之间的转换 11、十进制数转换为二进制

3、数十进制数转换为二进制数的方法整数部分转换方法反复除以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高位4512xx5121100

4、1取整数低位高位整数部分转换示意图小数部分转换示意图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或者表示为

5、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

6、 H。 8:45:0512/148十六进制数转换为二进制数十六进制数据转换为二进制数据的时候,把每一位十六进制数据直接写成四位二进制数的形式就可以了。 例如64H=01100100B B8:45:0513/14844位二进制数和一位十六进制数具有一一对应的关系,如表22-11所示。 十六进制二进制十六进制二进制00000810001000191001xx0A101030011B101140100C110050101D110160110E111070111F1111表表2-14位二进制数和一位十六进制数的对应关系8:45:0514/148十六进制数据和十进制数据之间的转换通过二进制转换;将十进制

7、数反复除以十六取余数来完成十进制数转换为十六进制数;将十六进制数的每位上的数字与其权值相乘,然后加在一起就是对应的十进制数,此时的n+11位十六进制数的权值分别为16n n、16n n- 11、?、 1622、 1611、16008:45:0515/148 三、数制数据的编码及其运算在计算机中,采用数字化方式来表示数据,数据有无符号数和带符号数之分。 无符号数用整个机器字长的全部二进制位均表示数值位,无符号位;带符号数用最高位表示该数的符号位,不表示数值位。 带符号数根据其编码的不同又有原码、补码和反码三种形式。 8:45:0516/ 14811、原码表示法由于计算机中只能有 00、11两种数

8、,所以,不仅一个数的数值部分在计算机中用 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机器数和真值把一个数在机器内的二进制表示形式称为机器数。 把

9、这个数本身称为该机器数的真值。 上边的“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位二进制

10、原码的表示范围为-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原码的优点是直观易懂,机器数和真值间的转换很容易,用原码实现乘、除运算的规则简单。 缺点是加、减运算规则较复杂。

11、8:45:0523/148原码计算存在的问题直接用一位 00、11码表示数的正、负,在运算时可能会带来一些新的问题这是因为计算机的运算器毕竟是一个大型数字电子器件,而有符号数和无符号数的表示形式并没有任何区别,都是用二进制数据 00、11表示,所以,CPU在进行运算时,并不知道参与运算的数是有符号数还是无符号数,在进行有符号数的运算时,就会将符号也当作是数进行了运算,因而有时会出现错误的结果。 8:45:0524/148两个正数相加时,符号位也同时相加若两个数之和不超出其所能表示的最大值127时,符号位也相加000000,即和仍然为正数,没有影响运算的正确性。 若两个数之和超出了其所能表示的最

12、大值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

13、,但是,最高位即符号位为11,表示和是负数,显然是错了。 产生错误的原因是相加的和应该是+148,超出了88位有符号正数所能表示的最大值+127,数值在运算产生的进位影响到了符号位。 对于有符号数,这种数值运算侵入到符号位造成结果错误的情况,称为溢出。 00110111+01011101100101008:45:0527/148一个正数与一个负数相加,和的符号位不应是两符号位直接运算的值001111,而应由两数的大小决定。 即和的符号位是由两数中绝对值大的一个数所决定。 两个负数相加时,由于111110,符号位只剩下00,因此和的符号也不应是由两符号位直接运算的结果所决定。 8:45:0528

14、/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),551

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号