单片机程序中的各种数字.ppt_第1页
单片机程序中的各种数字.ppt_第2页
单片机程序中的各种数字.ppt_第3页
单片机程序中的各种数字.ppt_第4页
单片机程序中的各种数字.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

第2章 程序中的各种数字,程序中的各种数字,用单片机对目标设备进行控制是我们学习单片机的目的。 一个单片机控制系统除必要的硬件支撑外,还需要软件支持。 那么软件是什么呢?如果抽象地回答:软件就是指挥控制系统协调工作的程序。 我们将要介绍的单片机是数字计算机的范畴,它只能识别数字,所以我们的软件基础的学习还是从数字、数制以及如何存放着手。,任意一个十进制数N都可以表示成按权展开的多项式:,其中, di是09共10个数字中的任意一个, m是小数点右边的位数, n是小数点左边的位数, i是数位的序数。例如, 543.21可表示为: 543.21=5102+4101+3100+210-1+110-2,任意一个十六进制数N可以表示成按权展开的多项式:,其中, di是0F共16个数字中的任意一个, m是小数点右边的位数, n是小数点左边的位数, i是数位的序数。例如, 54E.21H可表示为: 54E.21H=5162+4161+14160+216-1+116-2,任意一个二进制数N都可以表示成按权展开的多项式:,其中, di是0、1两个数字中的任意一个, m是小数点右边的位数, n是小数点左边的位数, i是数位的序数。例如, 101.01B可表示为: 101.01B =122+021+120+02-1+12-2,一般而言, 对于用 R 进制表示的数 N , 可以按权展开为,式中, ai 是 0、1、 、 (R-1)中的任一个, m、 n是正整数, R是基数。在 R 进制中, 每个数字所表示的值是该数字与它相应的权Ri的乘积, 计数原则是“逢 R进一”。,数制及其数制之间的转换,计算机只识别二进制,十六进制书写起来比二进制方便,日常生活中人们习惯用十进制,二进制数与十六进制数,二进制与十六进制数有什么关系?,四位二进制数刚好是一位十六进制数 。 同一个数,用二进制表示需要8位,但用十六进制表示只需要2位。 计算机使用二进制,我们书写时采用十六进制。 这叫“各取所需” 。,实际上: n 位二进制数可以表示 2n种组合。 1位能表示21种组合(0、1,在计算机中称作位) 4位能表示24=16种组合(0 15的整数即1位16进制数)。 0000B=0(H) 0001B=1(H) 0010B=2(H) 0011B=3(H) 0100B=4(H) 0101B=5(H) 0110B=6(H) 0111B=7(H) 1000B=8(H) 1001B=9(H) 1010B=A(H) 1011B=B(H) 1100B=C(H) 1101B=D(H) 1110B=E(H) 1111B=F(H) 4位二进制( 1位16进制数)在计算机中称作半字节,数制之间的转换,十进制数转换成非十进制数,整数部分采用除基数取余法,直至商为0,先得到的余数为低位,后得到的余数为高位。,小数部分采用乘基数取整法,直至乘积为整数或达到控制精度 。,除基取余法,乘基取整法,整数部分,小数部分,对于R进制 基=R,将(168)10转换成二、 十六进制数。,将0.625D转换成二进制和十六进制: 二进制:乘2取整 0.6252=1.251,0.252=0.500,0.52=11 0.625D=0.101B 十六进制:乘16取整 0.625X16=10A 0.625D=0.AH,表2.1 十进制与二进制数、十六进制数对应关系,二进制数与十六进制数转换,将二进制数转换成十六进制数可按四位一组进行分组,每一组对应十六进制的相应数码,组合即得转换结果。分组时如果位数不够(即:位数不是4的倍数),整数部分在最左边补0,小数部分在最右边补0,分组法,4位二进制组成1位十六进制,例如:把二进制数1011010.101B转换成十六进制数。 解:将1011010.101B按4位分组成0101 1010.1010 查表得: 5 A A 所以: 1011010.101B=5A.AH,将十六进制数转换成二进制数,只需将其每一位对应转换成二进制数四位即可。,展开法,1位十六进制展开成4位二进制,例如: 将十六进制数8E.38H转换成二进制数。 解: 展开十六进制数 8 E . 3 8 H 查表: 1000 1110 . 0011 1000H 所以: 8E.38H=10001110.00111B,1、将十进制数128D转换成二进制数。 2、将十进制数142D转换成十六进制数。 3、将十进制数112.25D转换成二进制数。 4、直接将11001010B写成十六进制数。 5、直接将68H写成二进制数。 6、直接将65.8H写成二进制数。,思考题,1、128D=10000000B 2、142D=8EH 3、112.25D=1110000.01B 4、11001010B=CAH 5、68H=1101000B 6、65.8H=1100101.1B,答案,机器数,什么是机器数?,数在计算机中的二进制表示形式称为机器数,机器数的特征:将数的符号也数字化(原码)。一般用最高有效位表示数的符号,“0”代表正数,“1”代表负数。 机器数的表示还与存储位数有关。字节(8位二进制数)、字(十六位二进制数)、双字(32位二进制数)有区别。 例如: -110101B: 以字节存放表示为:10110101 以字存放表示为: 1000000000110101 以双字存放表示为: 10000000000000000000000000110101 “1”为符号位,正数的原码=反码=补码。或者说正数没有反码和补码,例如: -110101B的原码以字节存放表示为:10110101 -110101B的反码以字节存放表示为:11001010 -110101B的补码以字节存放表示为:11001011 在教科书中为了便于理解,常将数用中括号括起来,在尾部加注下标原、反、补来明确码制。 【】原 、【】反 、【】补,如: -110101B的原码为: 【 -110101B 】原= 10110101 -110101B的反码为: 【 -110101B 】反 = 11001010 -110101B的补码为: 【 -110101B 】补 = 11001011 值得注意的是: 由于+0原=00000000B, 而-0原=10000000B, 所以数 值 0的原码不唯一。 8位二进制原码能表示的范围是:1111111101111111 即:十进制的 -127+127。,n位原码表示的数的范围是:(2n-11),( 2n-11 ) 8位原码表示的数的范围是:-(7),(7) 即:十进制的-127,127 16位原码表示的数的范围是:-(15),( 15 ) 即:十进制的-32767,32767 对于正数而言: 【】原= 【】反= 【】补=真值 对于负数而言: 【】原 【】反【】补真值 已知负数真值可直接写出原码,其方法是最高位写“1”,其余位不变 已知负数原码求反码的方法是:符号位不变,数值位对应“0”变“1”、“1”变“0”。 已知负数原码求补码的方法是:符号位不变,数值位对应“0”变“1”、“1”变“0”后末位加1。,例如:求-56的原码、反码、补码。 解:1、将十进制的-56转换成二进制数 即:56D=111000B -56D=-111000B 2、将真值写成原码后求反码和补码 【- 111000B 】原10111000 以字节表示 【- 111000B 】反11000111 以字节表示 【- 111000B 】补11001000,表2.2 8位二进制数的原码、反码和补码对照表,例如:求-273的原码、反码、补码。 解:1、将273转换成二进制数 即:-273D=-100010001B 注意:在计算机中数的存放是 以字节为单位,每字节8位。数的 有效位为9位,必须占用两个字节 (实际上如果一个数的有效位为N, 只要15N8,这个数存放在计算 机中必须占用两个字节)。 本例N=9,所以原码、反码、补码必须占用16位(即两 个字节) 2、将-100010001B用原码表示后求反码和补码 【 -100010001B 】原=1000000100010001 【 -100010001B 】反= 1111111011101110 【 -100010001B 】补= 1111111011101111,1、如果一个二进制负数的有效位N=6,那么它的原码在计算机中应该占用几个字节。 2、如果一个二进制负数的有效位N=14,那么它的原码在计算机中应该占用几个字节。 。 3、如果一个二进制负数的有效位N=20,那么它的原码在计算机中应该占用几个字节。 4、求139的原码、反码、补码。 5、求-139的原码、反码、补码。 6、求-1139的原码、反码、补码。,思考题,无符号数,什么是无符号数?,正整数在计算机中被称作无符号数,在某些情况下,要处理的数据全是正整数,此时保留符号位毫无意义。如将符号位也作为数据位处理,可形成无符号数,同时扩大数据范围。 例如:10011001B,表示无符号整数是127+124+123+1,即153 表示有符号整数是(124+123+1),即25 n位无符号整数的范围为02n1,8位(一个字节)无符号整数范围为0255,16位(两个字节)无符号整数范围为065535。 在计算机中,用无符号数常用来表示存储空间的地址。,BCD码,什么是BCD码?,使用4位二进制数来表示一位十进制数,常称为二进制编码的十进制数,4位二进制数能表示16种状态,可用其中任意10种状态表示十进制数字09,由此形成8421码 、2421码、余3码等多种BCD码,最常用的是8421码。 所谓8421码是由二进制数的权来描述的。 例如:4位二进制数 8421码编码方法见表1-3,8421是指用于编码的4位二进制各位的权。,8421BCD编码表,字符数据编码,什么是字符数据编码?,我们知道计算机只能识别二进制数,不能识别字符,所以字符进入计算机前必须进行二进制编码。这种编码成为字符数据编码。 目前广泛应用的是美国信息交换标准代码(American Standard Code Information Interchange)。简称ASCII码。,ASCII码采用1个字节的低7位进行编码,能完成27=128个字符的编码,以十六进制书写。 例如:字符“A”的ASCII码:1000001B 书写成41H 字符“=”的ASCII码:0111101B 书写成3DH 字符“”的ASCII码:1000000B 书写成40H 常用ASCII码见下表:,内存中的数据,数据在计算机内部以何种方式存放,依赖于程序执行情况,可用二进制(原码、反码、补码)、BCD码、ASCII码。 例如:2006,二进制存储为: 0000011111010110 B 2字节,压缩BCD码存储为: 0010000000000110 B 2字节,非压缩BCD码储为: 00000010000000000000000000000110B 4字节,ASCII码存储为: 00110010001100000011000000110110B 4字节,1个字节存放两位BCD码,1个字节存放一位BCD码,存储器,存储器是计算机的记忆单元,以8位二进制为一个基本单元,如果我们把8位二进制数 10110011B存入一个存储单元,把16位二进制数1111000010110011B存入存储器,需要占用2个存储单元。,0号单元 称作地址0,1号单元 称作地址1,0号单元中的”10110011”称作该单元中的内容或数据,1号单元中的”11110000”称作该单元中的内容或数据,不难看出用一位二进制数给存储单元编地址,可以对两个单元编址即0号和1号,把32位二进制数11110000101100111111000010110011B存入存储器,需要占用4个存储单元。,不难看出对4个存储单元进行编号需要用2位二进制数.即00、01、10、11。 这些编号在计算机中有一个专有名词地址。,通常单片机的内存最多可以达到65536个存储单元(简称64K),所以内存编号(地址)对应65536个。 如果用二进制数进行编码那就是:0000000000000000 B1111111111111111 B,如果用十六进制数进行编码那就是: 0000 HFFFF H。,在同样大小的内存中采用十六进制数编址比采用二进制数编址要简洁得多,这也就是我们为什么要使用十六进制的关键所在。,小结,我们通过这章的学习,数据在单片机中的各种不同存放方式,认识了有符号数、无符号数、BCD码、ASCII码以及内存编址。为我们下一

温馨提示

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

最新文档

评论

0/150

提交评论