单片机技术及应用第一章单片机基础知识_第1页
单片机技术及应用第一章单片机基础知识_第2页
单片机技术及应用第一章单片机基础知识_第3页
单片机技术及应用第一章单片机基础知识_第4页
单片机技术及应用第一章单片机基础知识_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机技术及应用第一章单片机基础知识第第1 1章章 单片机基础知识单片机基础知识1.1 单片微型计算机单片微型计算机 单片微型计算机是制作在一块集成电路芯片单片微型计算机是制作在一块集成电路芯片上的计算机,简称单片机。它包括中央处理器上的计算机,简称单片机。它包括中央处理器(CPU),用),用RAM构成的数据存储器,用构成的数据存储器,用ROM构成的程序存储器,定时构成的程序存储器,定时/计数器,各种输入计数器,各种输入/输输出(出(I/O)接口和时钟电路。)接口和时钟电路。 1.1.1 单片机最小系统单片机最小系统 单片机最小系统单片机最小系统,或者称为最小应用系统或者称为最小应用系统,是指

2、用是指用最少的元件组成的单片机可以工作的系统。最少的元件组成的单片机可以工作的系统。 对一般的对一般的51系列单片机来说系列单片机来说,由单片机、晶振电由单片机、晶振电路和复位电路路和复位电路,便组成了一个最小系统便组成了一个最小系统.但是一般但是一般我们在设计中总是喜欢把按键输入、显示输出等我们在设计中总是喜欢把按键输入、显示输出等加到上述电路中加到上述电路中,成为最小系统。成为最小系统。 1.1.2 1.1.2 单片机的基本知识单片机的基本知识 1. 1. 单片机单片机1. 单片机是微型计算机中的一种,是把微单片机是微型计算机中的一种,是把微型计算机中的微处理器、存储器、型计算机中的微处理

3、器、存储器、I/O接口、定接口、定时器时器/计数器、串行接口、中断系统等电路集成计数器、串行接口、中断系统等电路集成在一块集成电路芯片上形成的微型计算机。因在一块集成电路芯片上形成的微型计算机。因而被称为单片微型计算机,简称为单片机。而被称为单片微型计算机,简称为单片机。 2 2单片机和单片机系统单片机和单片机系统 单片机只是一个芯片,而单片机系统则是在单片机只是一个芯片,而单片机系统则是在单片机芯片的基础上扩展其他电路或芯片构成的单片机芯片的基础上扩展其他电路或芯片构成的具有一定应用功能的计算机系统。具有一定应用功能的计算机系统。 通常所说的单片机系统都是为实现某一控制通常所说的单片机系统都

4、是为实现某一控制应用需要由用户设计的,是一个围绕单片机芯片应用需要由用户设计的,是一个围绕单片机芯片而组建的计算机应用系统。在单片机系统中,单而组建的计算机应用系统。在单片机系统中,单片机处于核心地位,是构成单片机系统的硬件和片机处于核心地位,是构成单片机系统的硬件和软件基础软件基础。 3 3单片机应用系统和单片机开发系统单片机应用系统和单片机开发系统 单片机应用系统是为控制应用而设计的,该单片机应用系统是为控制应用而设计的,该系统与控制对象结合在一起使用,是单片机开发系统与控制对象结合在一起使用,是单片机开发应用的成果。但由于软硬件资源所限,单片机系应用的成果。但由于软硬件资源所限,单片机系

5、统本身不能实现自我开发,要进行系统开发设计,统本身不能实现自我开发,要进行系统开发设计,必须使用专门的单片机开发系统。必须使用专门的单片机开发系统。 4 4 单片机的程序设计语言和软件单片机的程序设计语言和软件 单片机程序设计语言和软件,主要是指在开发系统单片机程序设计语言和软件,主要是指在开发系统中使用的语言和软件。在单片机开发系统中使用机器语言、中使用的语言和软件。在单片机开发系统中使用机器语言、汇编语言和高级语言,而在单片机应用系统中只使用机器汇编语言和高级语言,而在单片机应用系统中只使用机器语言。语言。 机器语言是用二进制代码表示的单片机指令,用机机器语言是用二进制代码表示的单片机指令

6、,用机器语言构成的程序称之为目标程序。汇编语言是用符号表器语言构成的程序称之为目标程序。汇编语言是用符号表示的指令,汇编语言是对机器语言的改进,是单片机最常示的指令,汇编语言是对机器语言的改进,是单片机最常用的程序设计语言。虽然机器语言和汇编语言都是高效的用的程序设计语言。虽然机器语言和汇编语言都是高效的计算机语言,但它们都是面向机器的低级语言,不便记忆计算机语言,但它们都是面向机器的低级语言,不便记忆和使用,且与单片机硬件关系密切,这就要求程序设计人和使用,且与单片机硬件关系密切,这就要求程序设计人员必须精通单片机的硬件系统和指令系统。员必须精通单片机的硬件系统和指令系统。 单片机也开始尝试

7、使用高级语言,其中编译型语言单片机也开始尝试使用高级语言,其中编译型语言有有Pl、M5l、C-5l、C、MBASIC-51等,解释型的有等,解释型的有MBASIC和和MBASIC-52等。等。1.1.3 单片机的发展概况单片机的发展概况 目前国际市场上目前国际市场上8位、位、16位单片机系列已有位单片机系列已有很多,但是,在国内使用较多的系列是很多,但是,在国内使用较多的系列是Intel公司公司的产品,其中又以的产品,其中又以MCS-51系列单片机应用尤为系列单片机应用尤为广泛,二十几年经久不衰,而且还在更进一步发广泛,二十几年经久不衰,而且还在更进一步发展完善,价格越来越低,性能越来越好。单

8、片机展完善,价格越来越低,性能越来越好。单片机技术正以惊人的速度向前发展,就市场上已出现技术正以惊人的速度向前发展,就市场上已出现的单片机而言,其技术革新与进步主要表现在以的单片机而言,其技术革新与进步主要表现在以下几个方面:下几个方面:1. CPU1. CPU的发展的发展2. 2. 片内存储器的发展片内存储器的发展(1 1)片内存储器的发展)片内存储器的发展(2 2)片内)片内EPROMEPROM开始开始E2PROME2PROM化化(3 3) 闪速存储器闪速存储器(4 4) 串行存储器串行存储器(5 5) 片内程序的保密措施片内程序的保密措施3 3 片内输入输出接口功能片内输入输出接口功能单

9、片机在工艺上的提高单片机在工艺上的提高4.4. 5. 5. 片内固化应用软件和系统软件片内固化应用软件和系统软件1.1.4 单片机主要品种简介单片机主要品种简介 1. 41. 4位单片机位单片机 高档高档8位单片机的巨大产量挤占了部分位单片机的巨大产量挤占了部分4位机的市场。位机的市场。为了保住自己的领地,为了保住自己的领地,4位机的结构和功能也发生了很大位机的结构和功能也发生了很大的改进。其一是增强片内的改进。其一是增强片内I/O功能,把应用系统所需的功能,把应用系统所需的LED、LCD、VFD(FIP)显示器驱动电路都集成在单片)显示器驱动电路都集成在单片机芯片内,使其成为机芯片内,使其成

10、为“单片单片”控制器。目前控制器。目前8位单片机和位单片机和16位单片机还很少做到这点。其二是提高指令执行速度,位单片机还很少做到这点。其二是提高指令执行速度,新型的新型的4位单片机采用位单片机采用1.5m COMS工艺,其指令执行速工艺,其指令执行速度小于度小于1s。其三是增大片内。其三是增大片内ROM、RAM,有的,有的ROM已已达到达到32KB,RAM已达到已达到1K4位。其四是低压低功耗,位。其四是低压低功耗,有的在下也能正常工作,有的甚至在有的在下也能正常工作,有的甚至在A级电流时也能正级电流时也能正常工作。其实有的常工作。其实有的4位单片机性能已不低于位单片机性能已不低于8位单片机

11、。位单片机。 2. 82. 8位单片机位单片机 8位单片机年产量目前已达到十亿片,约占当位单片机年产量目前已达到十亿片,约占当年单片机产量的年单片机产量的70%。主流机型是。主流机型是Intel公司的公司的8051及其系列产品和派生产品。风靡全球的及其系列产品和派生产品。风靡全球的IC卡,卡,大多采用此单片机构造。大多采用此单片机构造。Motorola公司的公司的6800(6502)派系也是很有名气的。其中)派系也是很有名气的。其中MC68HC11是功能很强的是功能很强的8位单片机,具备位单片机,具备16位机的位机的I/O功能。功能。而而MC68HC05则具有则具有4位单片机的价格,是位单片机

12、的价格,是4位单位单片机的强劲竞争者。片机的强劲竞争者。Z80派系的单片机相对小一派系的单片机相对小一些,但些,但NEC公司的公司的PD78K系列的单片机功能较系列的单片机功能较强,被誉为新一代的强,被誉为新一代的8位单片机。位单片机。 3. 163. 16位单片机位单片机 16位单片机目前产量只占整个单片机市场的位单片机目前产量只占整个单片机市场的5%。16位单片机的性能都较高,有乘除指令、快位单片机的性能都较高,有乘除指令、快速速I/O功能。有的还有功能。有的还有DMA传送,可支持传送,可支持C或者或者FORTH语言等等。其主要机型是语言等等。其主要机型是Intel 的的8096。美国国家

13、半导体公司的。美国国家半导体公司的HPC单片机性能单片机性能价格比较高,已占价格比较高,已占CMOS工艺工艺16位单片机销售量位单片机销售量的首位。日本的首位。日本Hitachi公司的公司的H8/500单片机的性能单片机的性能目前最高,其指令执行速度为目前最高,其指令执行速度为200ns,片内,片内FPROM/ROM达达62K字节,片内字节,片内RAM为为2K字节,字节,A/D为为10位,转换时间为位,转换时间为13.8 s ,还有,还有DMA功功能。能。 4. 324. 32位单片机位单片机 32位单片机更多地称作位单片机更多地称作32位嵌入式控制器。位嵌入式控制器。它主要应用于机器人、光盘

14、、激光打印机等的控它主要应用于机器人、光盘、激光打印机等的控制器。这些控制器的地址线为制器。这些控制器的地址线为2432位,寻址能位,寻址能力为力为16400MB,并且都有很高的指令执行速度,并且都有很高的指令执行速度和快速运算能力。例如,和快速运算能力。例如,Intel公司的公司的80960KB在在20MHz时钟下,其指令速度为,在它内部还有时钟下,其指令速度为,在它内部还有IEEE754标准的标准的80位浮点运算部件,在位浮点运算部件,在25MHz时钟下,可以达到这些控制器都能直接支持高级时钟下,可以达到这些控制器都能直接支持高级语言和实时多任务处理。语言和实时多任务处理。 1.1.5 单

15、片机的应用单片机的应用 单片机是在一块芯片上集成了一台微型计算单片机是在一块芯片上集成了一台微型计算机所需的机所需的CPU、存储器、输入、存储器、输入/输出部件和时钟电输出部件和时钟电路等。因此它具有体积小,使用灵活、成本低、路等。因此它具有体积小,使用灵活、成本低、易于产品化、抗干扰能力强,可在各种恶劣环境易于产品化、抗干扰能力强,可在各种恶劣环境下可靠地工作等特点。特别是它应用面广,控制下可靠地工作等特点。特别是它应用面广,控制能力强,使它在工业控制、智能仪表、外设控制、能力强,使它在工业控制、智能仪表、外设控制、家用电器、机器人、军事装置等方面得到了广泛家用电器、机器人、军事装置等方面得

16、到了广泛的应用。的应用。 单片机主要可用于以下几方面:单片机主要可用于以下几方面: 1. 1. 测控系统中的应用测控系统中的应用 控制系统特别是工业控制系统的工作环境恶控制系统特别是工业控制系统的工作环境恶劣,各种干扰也强,而且往往要求实时控制,故劣,各种干扰也强,而且往往要求实时控制,故要求控制系统工作稳定、可靠、抗干扰能力强。要求控制系统工作稳定、可靠、抗干扰能力强。单片机是最适宜用于控制领域。例如炉子恒温控单片机是最适宜用于控制领域。例如炉子恒温控制、电镀生产线自动控制等。制、电镀生产线自动控制等。 2. 2. 智能仪表中的应用智能仪表中的应用 用单片机制作的测量、控制仪表,能使仪表用单

17、片机制作的测量、控制仪表,能使仪表向数字化、智能化、多功能化、柔性化发展,并向数字化、智能化、多功能化、柔性化发展,并使监测、处理、控制等功能一体化,使仪表重量使监测、处理、控制等功能一体化,使仪表重量大大减轻,便于携带和使用,同时降低了成本,大大减轻,便于携带和使用,同时降低了成本,提高了性能价格比。如数字式提高了性能价格比。如数字式RLC测量仪、智能测量仪、智能转速表、计时器等。转速表、计时器等。 3. 3.智能产品智能产品 单片机与传统的机械产品结合,使传单片机与传统的机械产品结合,使传统机械产品结构简化、控制智能化,构成统机械产品结构简化、控制智能化,构成新型的机、电、仪一体化产品。如

18、数控车新型的机、电、仪一体化产品。如数控车床、智能电动玩具、各种家用电器和通信床、智能电动玩具、各种家用电器和通信设备等。设备等。 4. 4. 在智能计算机外设中的应用在智能计算机外设中的应用 在计算机应用系统中,除通用外部设备(键在计算机应用系统中,除通用外部设备(键盘、显示器、打印机)外,还有许多用于外部通盘、显示器、打印机)外,还有许多用于外部通信、数据采集、多路分配管理、驱动控制等接口。信、数据采集、多路分配管理、驱动控制等接口。如果这些外部设备和接口全部由主机管理,势必如果这些外部设备和接口全部由主机管理,势必造成主机负担过重、运行速度降低,并且不能提造成主机负担过重、运行速度降低,

19、并且不能提高对各种接口的管理水平。如果采用单片机专门高对各种接口的管理水平。如果采用单片机专门对接口进行控制和管理,则主机和单片机就能并对接口进行控制和管理,则主机和单片机就能并行工作,这不仅大大提高系统的运算速度,而且行工作,这不仅大大提高系统的运算速度,而且单片机还可对接口信息进行预处理,以减少主机单片机还可对接口信息进行预处理,以减少主机和接口间的通信密度、提高接口控制管理的水平。和接口间的通信密度、提高接口控制管理的水平。如绘图仪控制器,磁带机、打印机的控制器等等如绘图仪控制器,磁带机、打印机的控制器等等。 计算机中数和字符的表示计算机中数和字符的表示一、计算机中数和字符的存放一、计算

20、机中数和字符的存放 数据存放于存储器或寄存器中。数据存放于存储器或寄存器中。 数据按字长一般分为:数据按字长一般分为: 8位(字节位(字节BYTE,简写为,简写为B) 16位(字位(字WORD) 32位(双字位(双字DWORD) 64位、位、128位、位、256位位概述概述二、数制及其转换二、数制及其转换 1、数制、数制十进制(十进制(Decimal)后缀加)后缀加“D” 例如:例如:25D或或25(后缀可略)(后缀可略)二进制(二进制(Binary)后缀加)后缀加“B” 例如:例如:11010001B八进制(八进制(Octonary)后缀加)后缀加“O”或或“Q” 例如:例如:76Q十六进制

21、(十六进制(Hexadecimal)后缀加)后缀加“H” 例如:例如:0F6H(字符开头的数前需加(字符开头的数前需加“0”)2、数制之间的转换、数制之间的转换任意进制转换为十进制任意进制转换为十进制 例例如:如:10101101B=27+25+23+22+20=179 4F.8H=4*161+15*160+8*16-1 例如:例如:6E3.C2H=0110 1110 0011.1100 0010B加法运算:加法运算:11010011 + 10001100 1 01011111 进位进位 减法运算减法运算 :01110011 -11010010 1 10100001 借位借位三、二进制数的运算

22、三、二进制数的运算 1、二进制数的算术运算、二进制数的算术运算特点:特点:按一定字长进行,运算结果超过字长则产生按一定字长进行,运算结果超过字长则产生进位、借位或自动丢失。进位、借位或自动丢失。1)逻辑乘(与)逻辑乘(与)AND 11010001AND 11100011 110000012)逻辑加(或)逻辑加(或)OR 11010001 OR 11100011 11110011 2、二进制数的逻辑运算、二进制数的逻辑运算特点:特点:按位进行,无进位或借位按位进行,无进位或借位 4)逻辑异或)逻辑异或XOR 11010001 XOR 11100101 001101003)逻辑反(非)逻辑反(非)

23、NOT NOT 11010011=00101100四、关于模(四、关于模(MOD)的概念)的概念 简单地说,模是能表示的最大数再加简单地说,模是能表示的最大数再加1。 例如,例如,8位寄存器能表示的最大数是位寄存器能表示的最大数是 11111111B=255 其模为其模为28=256(MOD 28) 计算机中的运算都是在一定模值下进行的,计算机中的运算都是在一定模值下进行的, 例:例: 200+85=29(MOD 28) 9+4=1(MOD 12) 计算机中数和字符的表示计算机中数和字符的表示 当当n=8时,可表示的无符号数的范围为时,可表示的无符号数的范围为0255,当,当n=16时,可表示

24、的无符号数的范围为时,可表示的无符号数的范围为 065535。 在计算机中最常用的无符号整数是表示地址的数在计算机中最常用的无符号整数是表示地址的数 无符号数的表示无符号数的表示 机器字长的所有位都参与表示数值。机器字长的所有位都参与表示数值。 若计算机的字长为若计算机的字长为n位,则位,则n位无符号数可表示的数位无符号数可表示的数X的范围是的范围是 0X2 1n 计算机中数和字符的表示计算机中数和字符的表示1机器数与真值机器数与真值 计算机中的数是用二进制表示的,数的符号也是用计算机中的数是用二进制表示的,数的符号也是用二进制表示的。通常一个数的最高位为符号位,为二进制表示的。通常一个数的最

25、高位为符号位,为0 0表表示正数,为示正数,为1 1表示负数。若字长为表示负数。若字长为8 8位的计算机,则位的计算机,则D D7 7为为符号位,符号位,D D6 6D D0 0为数值位。为数值位。 D7 D6 D5 D4 D3 D2 D1 D0符号位符号位 数值位数值位 有符号数的表示有符号数的表示 这种符号数码化的数称为这种符号数码化的数称为机器数机器数。机器数所代表。机器数所代表的实际数值称为的实际数值称为真值真值。 若计算机的字长为若计算机的字长为n n位,则位,则n n位有符号数可表示的数位有符号数可表示的数X X的范围是的范围是-2-2 X + X +(2 211) 当当n=8时,

26、可表示的有符号数的范围为时,可表示的有符号数的范围为-128127,当当n=16时,可表示的有符号数的范围为时,可表示的有符号数的范围为-3276832767。 机器数可以用不同的码制来表示,常用的有机器数可以用不同的码制来表示,常用的有原码原码和和补码补码表示法。表示法。2原码表示法原码表示法 最高位为符号位,最高位为符号位, 0 0表示正数,表示正数,1 1表示负数,其余表示负数,其余各位为数值位,这种表示法称为各位为数值位,这种表示法称为原码表示法原码表示法。 例例: 若若X= X= 97 97 则则XX原原 = =0 01100001B1100001B 若若X= X= 97 97 则则

27、XX原原 = =1 11100001B1100001B 原码表示数原码表示数0 0有两种表示形式:有两种表示形式: 00原原 =00000000B=00000000B 00原原 =10000000B=10000000B注意:注意:n位原码可表示位原码可表示的数的数X的范围是:的范围是:2n-1+1X2n-1-13反码表示法反码表示法 反码表示法反码表示法中,中,正数正数的的反反码和原码相同;码和原码相同;负数负数的的反反 码可由其原码除符号位,保持不变外,其余各位按位取码可由其原码除符号位,保持不变外,其余各位按位取反,即反,即0变变1、1变变0 。 例:若例:若X= 45, X反反=0010

28、1101B X=-45, X反反=11010010B 4. 补码表示法补码表示法 补码表示法补码表示法中,中,正数正数的补码和原码相同;的补码和原码相同;负数负数的的补码可由其原码除符号位,保持不变外,其余各位按位补码可由其原码除符号位,保持不变外,其余各位按位取反,再在最末位加取反,再在最末位加1 1而形成。而形成。 例:假设机器字长为例:假设机器字长为8 8位,则位,则 XX原原=01100001B =01100001B 则则 9797补补=01100001B =01100001B X X原原=11100001B =11100001B 则则 9797补补=10011111B=1001111

29、1B 10011110B+1 10011110B+1补码具有以下特点:补码具有以下特点: 00补补=00补补=00000000B=00000000B n n位二进制补码所能表示的数值范围为:位二进制补码所能表示的数值范围为:2 2n-1n-1X X2 2n-1n-11 1 若若n=8n=8,则,则8 8位二进制补码所能表示的数值范围为位二进制补码所能表示的数值范围为128128127127。对于一个用补码表示的负数,如果将对于一个用补码表示的负数,如果将XX补补再求一次补,即将再求一次补,即将XX补补除符号位外取反并在最末位加除符号位外取反并在最末位加1 1就可得到就可得到 XX原原。用下式表

30、。用下式表示为:示为:X X补补补补=X=X原原 -15 补补补补= 10001111 B补补补补= 11110001B补补 = 10001111 B = -15原原 注意注意:10000000补补=-128原原= 10000000 B二进制数码二进制数码 无符号数无符号数 原原 码码 反反 码码 补补 码码00000000 0 +0 +0 +0 00000001 1 +1 +1 +100000010 2 +2 +2 +2 :01111110 126 +126 +126 +12601111111 127 +127 +127 +12710000000 128 -0 -127 -128100000

31、01 129 -1 -126 -12710000010 130 -2 -125 -126 :11111110 254 -126 -1 -211111111 255 -127 -0 -15. 补码的加减运算补码的加减运算 (1)(1)补码的加法运算规则是:补码的加法运算规则是:XXYY补补= X = X 补补YY补补 该式表明,当有符号的两个数采用补码形式表示该式表明,当有符号的两个数采用补码形式表示时,进行加法运算可以把符号位和数值位一起进行运算时,进行加法运算可以把符号位和数值位一起进行运算(若符号位有进位,则丢掉),结果为两数之和的补码(若符号位有进位,则丢掉),结果为两数之和的补码形式。

32、形式。例:用补码进行下列运算:(例:用补码进行下列运算:(3333)()(1515););(3333)()(1515) 解解:(2)补码的减法运算规则是:补码的减法运算规则是: XXYY补补=X=X补补 YY补补 该式表明,求该式表明,求XXYY补补可以用可以用X X补补与与 YY补补相相加来实现加来实现 YY补补是对减数进行求负操作。是对减数进行求负操作。 一般称已知一般称已知 YY补补求得求得 YY补补的过程叫的过程叫变补变补或或求负求负。变补运算(变补运算(NEG)已知已知+X补补求求-X补补规则:全部位(含符号位)按位取反后再加规则:全部位(含符号位)按位取反后再加1例:例:已知已知+

33、15补补=00001111B则则 -15补补=11110000B+1=11110001B或:或:0- +15补补=0-00001111B=11110001B解解: 若若X=X=3333,Y=Y=1515 X X补补=00100001B Y=00100001B Y补补=00001111B =00001111B YY补补=11110001B =11110001B 00100001B X 00100001B X 补补 + 11110001B + 11110001B YY补补 自然丢失自然丢失 1 00010010B 1 00010010B 1818 补补 例例:用补码进行用补码进行X XY Y运算运

34、算若若 X=X=33 Y=33 Y=1515 则则 3333补补=11011111B =11011111B 1515补补=11110001B=11110001B 15 补补=00001111B =00001111B 11011111B 11011111B 3333 补补 + 00001111B + 00001111B 1515补补 11101110 11101110 1818补补 补码的作用补码的作用:1、引入补码后,将减法运算转化为易于实现的加法运算,且符、引入补码后,将减法运算转化为易于实现的加法运算,且符号位也当作数据相加,从而可简化运算器的结构,提高运算号位也当作数据相加,从而可简化运

35、算器的结构,提高运算速度。因此,在微型计算机中,有符号数通常都用补码表示,速度。因此,在微型计算机中,有符号数通常都用补码表示,得到的是补码表示的结果。得到的是补码表示的结果。2、当字长由、当字长由8位扩展到位扩展到16位时,对于用补码表示的数,正数的符位时,对于用补码表示的数,正数的符号扩展应该在前面补号扩展应该在前面补0,而负数的符号扩展应该在前面补,而负数的符号扩展应该在前面补1。 例:机器字长为例:机器字长为8位,位, 46补补=00101110B,46=11010010B,从,从8位扩展到位扩展到16位位 46补补=0000 0000 0010 1110B=002EH 46补补=11

36、11 1111 1101 0010B=FFD2H6. 有符号数运算时的溢出问题有符号数运算时的溢出问题 当两个有符号数进行加减运算时,如果运算结果超当两个有符号数进行加减运算时,如果运算结果超出可表示的有符号数的范围时,就会发生出可表示的有符号数的范围时,就会发生溢出溢出,使计算,使计算结果出错。显然,只有两个结果出错。显然,只有两个同符号数相加同符号数相加或两个或两个异号数异号数相减相减时,才会产生溢出。时,才会产生溢出。例:设机器字长为例:设机器字长为8位,以下运算都会发生溢出位,以下运算都会发生溢出 (88) (65) = 153 127 (88) (-65) =153 127 (83)

37、 (80) =163 128(1)无符号数的溢出)无符号数的溢出最高位的进位位最高位的进位位CFCF= CYD7 (MOD 28)或)或 CF=CYD15 (MOD 216););例如,例如,250= 11111010B + 50= 00110010B 44=1 00101100B (进位(进位CF=CYD7=1丢失)丢失)(2)带符号数的溢出)带符号数的溢出OFOF= CYD7 CYD6 (MOD 28)或)或OF= CYD15 CYD14 (MOD 216)例:例: 65补补= 01000001 15补补= 11110001 50补补=1 00110010 OF= CYD7 CYD6=1

38、1=0(无溢出,结果正确)(无溢出,结果正确) 96补补= 01100000 +65补补= 01000001 95补补=0 10100001OF= CYD7 CYD6=0 1=1(有溢出,结果错误)(有溢出,结果错误)CYD6=1CYD7=1 计算机中数和字符的表示计算机中数和字符的表示 在计算机中,数值数据有两种表示法:在计算机中,数值数据有两种表示法:定点表定点表示法示法和和浮点表示法浮点表示法。分别称为。分别称为定点数定点数和和浮点数浮点数。 1. 定点数定点数 定点数是指小数点在数中的位置是固定不变的,定点数是指小数点在数中的位置是固定不变的,常用的定点数有常用的定点数有纯小数纯小数和

39、和纯整数纯整数两种。两种。纯小数:纯小数:小数点固定在符号位之后,如小数点固定在符号位之后,如 ,此时机器,此时机器中所有数均为小数。中所有数均为小数。纯整数;纯整数;小数点固定在最低位之后,如小数点固定在最低位之后,如 ,此时机器,此时机器中所有数均为整数。中所有数均为整数。定点数和浮点数定点数和浮点数 2. 浮点数浮点数 浮点数由浮点数由阶码阶码和和尾数尾数两部分组成。对任意一个有符号的二进两部分组成。对任意一个有符号的二进制数制数N N的普遍形式可表示为的普遍形式可表示为 N= 2N= 2E EM M式中式中E E称为称为N N的阶码的阶码,是一个有符号的可变整数。设,是一个有符号的可变

40、整数。设 E Ee ej je ek k1 1ee0 0e ej j为为阶符阶符:若:若e ej j=0=0,则,则E E是正数;若是正数;若e ej j=1=1,则,则E E为负数。为负数。e ek-1k-1ee0 0是是阶值阶值。式中式中M M称为称为N N的尾数的尾数,是一个有符号的纯小数。设,是一个有符号的纯小数。设 M=mM=mj jm m1 1 m mn nm mj j为为尾符尾符:若:若m mj j=0=0,则,则M M为正数;若为正数;若m mj j=1=1,则,则M M为负数。为负数。尾数尾数M M的符号就是浮点数的符号就是浮点数N N的符号。的符号。m m1 1mmn n是

41、尾值。是尾值。例:例:科学计数法:科学计数法: 314159 =031415910+1高级语言中的格式:高级语言中的格式:+ 0314159E+ 01 尾符尾符 尾数尾数 阶符阶符 阶码阶码浮点数浮点数N在计算机内的表示形式如下所示。在计算机内的表示形式如下所示。 ek-1ek-2e0ejmjek-1ek-2e0m1m2mn一位阶符一位阶符m位阶值位阶值一位尾符一位尾符n位尾值位尾值 3规格化数与溢出规格化数与溢出 为了便于浮点数的运算,数采用规格化表示。对尾数规格化作如下定义:为了便于浮点数的运算,数采用规格化表示。对尾数规格化作如下定义: 若若mjm1,则称尾数,则称尾数M为为规格化数规格

42、化数;若;若mj=m1,则称尾数,则称尾数M为为非规格化数非规格化数。例如,。例如,N=2011,显然尾数,显然尾数 为非规格化数。为非规格化数。 如果尾数不是规格化数,那么要用移位手段把它变为规格化数。尾数每左移如果尾数不是规格化数,那么要用移位手段把它变为规格化数。尾数每左移一位,阶码就减一位,阶码就减1,尾数每右移一位,阶码就加,尾数每右移一位,阶码就加1,直至,直至mjm1为止。以左移操为止。以左移操作实现尾数的规格化称为作实现尾数的规格化称为左规左规,以右移实现规格化称为,以右移实现规格化称为右规右规。如上例中的。如上例中的N为为非规格化数,则将左移两位后,变成,此数已是规格化数,不

43、再左移,从阶码非规格化数,则将左移两位后,变成,此数已是规格化数,不再左移,从阶码011中减去中减去010,得,得001。所以规格化后的。所以规格化后的N应为应为2001。 存储在计算机中的数一定是规格化数存储在计算机中的数一定是规格化数。两数的运算结果也应为规格化数两数的运算结果也应为规格化数,如,如果不是,那么必须通过移位方式把它变为规格化数。果不是,那么必须通过移位方式把它变为规格化数。 当浮点数超出机器所能表示数的范围时,我们称为溢出。对当浮点数超出机器所能表示数的范围时,我们称为溢出。对规格化的浮点数,当阶码小于机器所能表示的最小数时,称为规格化的浮点数,当阶码小于机器所能表示的最小

44、数时,称为下下溢溢,此时机器将把此数作,此时机器将把此数作0处理;若阶码大于机器所能表示的最大处理;若阶码大于机器所能表示的最大范围时,称为范围时,称为上溢上溢。溢出发生时,机器就产生溢出中断,进入中。溢出发生时,机器就产生溢出中断,进入中断处理。断处理。 浮点表示法比定点表示法所表示的数的范围大,精度高,但浮点表示法比定点表示法所表示的数的范围大,精度高,但运算规则比较复杂,成本较高。早期的微型计算机采用定点表示,运算规则比较复杂,成本较高。早期的微型计算机采用定点表示,机器中数均为整数,没有处理浮点数的指令。为了弥补这方面的机器中数均为整数,没有处理浮点数的指令。为了弥补这方面的不足,专门

45、设计了相应的数值协处理器(不足,专门设计了相应的数值协处理器(8087、80287、80387等)等)来实现对浮点数的运算。来实现对浮点数的运算。80486、80586的数值协处理器已集成在的数值协处理器已集成在CPU芯片内部。芯片内部。在本教材中,若无特别说明,数据均采用纯整数在本教材中,若无特别说明,数据均采用纯整数定点表示定点表示。 计算机中数和字符的表示计算机中数和字符的表示 1. BCD码(码(Binary Coded Decimal) BCD码是以四位二进制的不同组合表示十进制数码是以四位二进制的不同组合表示十进制数十个数码的方法,又称二十个数码的方法,又称二十进制编码。十进制编码

46、。 常用的常用的BCD码为码为8421 BCD码码,即每位十进制数码,即每位十进制数码用四位二进制数来表示,四位二进制数从高到低的用四位二进制数来表示,四位二进制数从高到低的权值分别为权值分别为23、22、21、20即即 8421。 8421 BCD码如码如表所示。表所示。 计算机中的二进制编码计算机中的二进制编码表:表:8421BCD码码 十进制数十进制数 8421 BCD码码 十进制数十进制数8421BCD码码00000501011000160110200107011130011810004010091001例例: 十进制数和十进制数和BCD码相互转换。码相互转换。 将十进制数转换为将十进

47、制数转换为BCD码:码: 86.5=()()BCD 将将BCD码转换为十进制数:码转换为十进制数: ()()BCD根据在存储器中的不同存放格式,根据在存储器中的不同存放格式,BCD码又分为码又分为压缩型压缩型BCD码:码:一个字节中存放两个十进制数码一个字节中存放两个十进制数码非压缩型非压缩型BCD码码:每个字节只存放一个十进制数:每个字节只存放一个十进制数例:将十进制数例:将十进制数8762用压缩型用压缩型BCD码表示,则为:码表示,则为: 1000 0111 0110 0010在存储器中的存放格式为:在存储器中的存放格式为: 01100010 10000111高高低低非压缩型非压缩型BCD码:码: 0000 1000 ,0000 0111, 0000 0110 ,0000 0010在存储器中的存放格式为:在存储器中的存放格式为: 0000001

温馨提示

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

评论

0/150

提交评论