单片微型计算机c第23讲(机械)

上传人:今*** 文档编号:110226525 上传时间:2019-10-29 格式:PPT 页数:53 大小:3.35MB
返回 下载 相关 举报
单片微型计算机c第23讲(机械)_第1页
第1页 / 共53页
单片微型计算机c第23讲(机械)_第2页
第2页 / 共53页
单片微型计算机c第23讲(机械)_第3页
第3页 / 共53页
单片微型计算机c第23讲(机械)_第4页
第4页 / 共53页
单片微型计算机c第23讲(机械)_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《单片微型计算机c第23讲(机械)》由会员分享,可在线阅读,更多相关《单片微型计算机c第23讲(机械)(53页珍藏版)》请在金锄头文库上搜索。

1、,Microcontrollers Principle and Applications,单片机原理及应用,C,上节内容回顾,单片机的概念 微型计算机的组成及简要工作原理 MCS51单片机简介,第二章 数制,2.1 数制,数制:各种进位计数制,如十进制表示方法中,遵循“逢十进一”的原则。 常见的数制包含: 十进制 二进制 八进制 十六进制,2.1.1 十进制,十进制为日常生活中常用的数制,具有特点: 包含10个有序的符号09。 基数R为10,即“逢十进一”的进位原则。 其英文名称为Decimal System,简称D。 例如十进制数2187.74可表示为: (2187.74)D,= 2103+

2、1102+8101+7100+710-1+410-2,其中:103、102、101、100、10-1、10-2为不同位置的权。 任意十进制数都可展开为按权展开式:,2.1.2 二进制,二进制为计算机中采用的数制,具有特点: 仅包含2个符号0和1。 基数R为2,即“逢二进一”的进位原则。 按权展开的表达式为 其英文名称为Binary system ,简称B。,【例1】(1101)B =123+122+021+120=(13)D,【例2】(0.101)B = ?,二进制的运算规则,二进制的运算规则较为简单,1 1 0 0 1,+ 1 0 1,1 1 1 1 0,1 1 0 0 1,- 1 0 1,

3、1 0 1 0 0,1 1 0 0 1, 1 0 1,1 1 0 0 1,0 0 0 0 0,1 1 0 0 1,1 1 1 1 1 0 1,1 1 0 0 1,1 0 1,1,1 0 1,1,0,1,1 0 1,0,0 1,二进制运算举例,【例】二进制数A=11001, B=101, 则A+B、A-B、AB、AB,【优点】 运算简单、物理实现容易、存储和传送方便、可靠。 【缺点】数的位数太长且字符单调,使得书写、记忆和阅读不 方便。,二进制优缺点,为了克服二进制的缺点,在进行指令书写、程序输入和输出等工作时,通常采用八进制数和十六进制数作为二进制数的缩写。 【八进制,Octal System

4、】由8个字符07构成,逢八进一。 【十六进制,Hexadecimal System】由十个字符09与AF六个字母构成,逢十六进一。,2.2 数制间的转换,数制,二进制(Binary) 八进制(Octal) 十进制(Decimal) 十六进制(Hex),需要解决的问题: 各进制之间如何相互转换?,十数制与其它数制的转换,十进制(D.X),二进制 八进制 (n) 十六进制,整数部分模n取余逆序法,小数部分乘n取整正序法,数与位权 相乘累加,其它进制到十进制的转换,采用的方法:将非十进制数采用按权展开式进行相加即可得到转换结果。,【例2】(136.2)O= (?)D,【例3】(BD2.3C)H =(

5、?)D,【例1】(10111.11)B= (?) D,解:(10111.11)B = 124+122+121+120+12-1+12-2 =(23.75)D,解:(136.2)O= 182+381+680+28-1=(94.25)D,二数制到十数制的转换,举例 将(12.625)10转换成二进制数。,12,2,6, 0,2,3, 0,2,1, 1,2,0, 1,(12)10=(1100)2,0.6252=1.25, 1,0.252=0.5, 0,0. 52=1.0, 1,(0.625)10=(0.101)2,(12.625)10=(1100.101)2,练习:将十进制数11.75转换成二进制数

6、,其他方法,【观察拼凑法】 对于绝对值较小的数据,通过判断其值的范围,确定组成其值的权位。,求248的二进制数据 248=255-7=(1111,1111)2-(0000,0111)2=(1111,1000)2 求72的二进制数据 72=64+8=(1001000)2,心得: 熟练掌握2i(010)的值。 细心,做完后反算进行验算。,二进制到八、十六进制的转换,以小数点为中心,向左向右取3或4位转换,举例 将(10101110.11000010)2转换成八进制和十六进制数。,10 101 110 .110 000 10,二八进制,6,5,2,0,6,0,0,4,10101110.1100 00

7、10,二十六进制,E,A,B,2,C, 【练习】将十进制数65535转换为十六进制数。,2.3 有符号二进制数的表示方法,如:纯小数-0.0110可表示成1.0110,计算机只识别“0”和“1”,数据的符号位怎么表示? 1表示负号,0表示正号。 自然界中一个数据在计算机中的表示形式称为“机器数”,而数据本身称之为“真值”。,真值与机器数概念,在计算机中表示的带符号的二进制数称为“机器数”。 机器数是将符号“数字化”的数据表示方式。 机器数主要有三种表示方式:原码、补码和反码。 将带“+”或“-”符号的数称为“真值”。 通常为正负号(+,-)后紧跟绝对值表示,如+3,-9,在进行运算时,原码的符

8、号位不参与运算,而补码和反码的符号位参与运算。,原码表示法,【原码, true form】机器数的最高位为符号位,0表示正数,1 表示负数,数值以绝对值的形式紧跟其后。,原码表示法,【举例】 给定X=+1011001,求X的原码。 解:X为正数,故X原=01011001 给定Y=-1100101,求Y的原码。 解:Y为负数,故Y原=11100101,0的原码是多少呢?,+0原=0000,-0原=1000,0的原码有两种形式,原码表示法,【原码加减法步骤】 两数相加若同号,则直接相加; 两数相加若异号,则要进行减法; 减法时,需要比较两数绝对值大小,大数减去小数,以绝对值大的数确定符号。,设X=

9、+1001,Y=+0010,求X+Y原。 解:X原=01001, Y原=00010 则X+Y原=X原+Y原 =01001+00010=01011,设X=+1001,Y=-0010,求X+Y原。 解:X原=01001, Y原=10010 X原+Y原 =01001+10010 =11011(-11)10 因为|X|Y|, 有|X|-|Y| =1001-0010 =0111 X+Y原=00111,反码表示法,【反码 , ones complement 】机器数的最高位为符号位,0表示正数,1 表示负数。若为正数,数值以绝对值的形式紧跟其后;若为负 数,数值则以绝对值的相反数 紧跟其后。,反码表示法,

10、【举例】 给定X=+1011001,求X的反码。 解:X为正数,故X反=01011001 给定Y=-1100101,求Y的反码。 解:Y为负数,故Y反=10011010,0的反码是多少呢?,+0反=0000,-0反=1111,反码表示法,【反码加减法步骤】 两数无论同异号,可直接相加减; 两数相加时,最高位若有进位,需要在最低位+1; 两数相减时,最高位若有借位,需要在最低位-1。,设X=+1001,Y=+0010,求X+Y反。 解:X反=01001, Y反=00010 则X+Y反=X反+Y反 =01001+00010=01011,设X=+1001,Y=-0010,求X+Y反。 解:X反=01

11、001, Y反=11101 X反+Y反 =01001+11101 =100110=(+6)10 因为有进位,需要在最低位加1 X+Y反=00110+1=00111,反码表示法,【课堂练习】 设X=-1001,Y=-0010,求X+Y反。 解: X反=10110, Y反=11101 X+Y反=X反+Y反 =10110+11101 =10100-1011(-11)10 设X=+1001,Y=-0010,求X-Y反。 解: X反=01001, Y反=11101 X-Y反=X反-Y反 =01001-11101 =01011+1011(11)10,10110 +11101 = 110011 + 1 =

12、10100,01001 - 11101 = 101100 - 1 = 01011,练习,给定X=+27,Y=-56,分别用8位机器数的原码和反码表示(含1位符号位,数据位为7位,结果用十六进制数表示)。并完成X反+Y反的操作。,补码表示法,【补码, twos complement】机器数的最高位为符号位,0表示正数,1 表示负数。若为正数,数值以绝对值的形式紧跟其后;若为负 数,则在反码的基础上+1。,补码表示法,【举例】 给定X=+1011001,求X的补码。 解:X为正数,故X补=01011001 给定Y=-1100101,求Y的补码。 解:Y为负数,故Y补=10011011,0的补码是多

13、少呢?,+0补=0000,-0补=0000,补码加减法,【补码加减法步骤】 用补码表示的两数进行加法运算,结果仍为补码 ; X+Y补=X补+Y补 ; X-Y补=X补+-Y补 ; 符号位与数值位一起参与运算。,补码加减法,【举例】 给定X=-1010,Y=+0101,求X+Y。 解:X+Y补=X补+Y补 =10110+00101 =11011-0101(-5)10 给定X=-1010,Y=0101,求X-Y。 解: X-Y补=X补+-Y补 =10110+11011 =10001-1111(-15)10,原、反、补码间变换,若为正数,则有X原=X反=X补。 若为负数,则有: 符号位保持不变; 原码

14、转换成反码,数值位逐位取反; 反码转换成补码,数值位+1; 原码与补码间转换,取反+1。,101101,1 1,不同码制之间对照,2.4 几种常见的编码,在计算机中,用纯二进制序列表示自然界中的数据时,可能存在的问题: 用二进制表示一个数据,长度超出容忍的范围,例如(1026)10=(10000000010)2,不方便记忆和转换。 二进制序列在传输过程中,可能受干扰出错,能否降低出错的概率? 如何自动对出错数据进行检测和修正。,2.4.1 BCD码,BCD码:用4位二进制代码对十进制数字符号进行编码,简称为二十进制代码,或称BCD (Binary Coded Decimal)码。,常用的BCD

15、码有8421码、余3码等。,8421码,8421码:是用4位二进制码表示一位十进制字符的一种有权码,4位二进制码从高位至低位的权依次为23、22、21、20,即为8、4、2、1,故称为8421BCD码,简称8421码。,从上表可知按8421码编码的09与用4位二进制数表示的09完全一样。所以,8421码是一种人机联系时广泛使用的中间形式。,1010、1011、1100、1101、1110、1111为非法编码。,8421码,8421码与二进制数表示数据的区别 分别用8421码和二进制来表示十进制数据28,【例】 (28)10 = (11100)B=(0010 1000)8421码,新的问题出现了 8421码的加减法,BCD运算6+7=13,0110,+ 0111,1101,修正,+ 0110,1 0011,000,解决方法 余三码可以解决运算过程中的问题,当两个1位BCD相加之和小于(1001)2即(9)10时,无需修正; 相加之和大于9时,需要进行加6修正且向高位进位。,余三码,余三码:由8421码加上0

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

当前位置:首页 > 高等教育 > 大学课件

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