收藏 分销(赏)

单片机原理、接口技术及应用教材全套课件教学教程整本书电子教案全书教案.ppt

上传人:w****g 文档编号:7491098 上传时间:2025-01-06 格式:PPT 页数:564 大小:7.16MB
下载 相关 举报
单片机原理、接口技术及应用教材全套课件教学教程整本书电子教案全书教案.ppt_第1页
第1页 / 共564页
单片机原理、接口技术及应用教材全套课件教学教程整本书电子教案全书教案.ppt_第2页
第2页 / 共564页
单片机原理、接口技术及应用教材全套课件教学教程整本书电子教案全书教案.ppt_第3页
第3页 / 共564页
单片机原理、接口技术及应用教材全套课件教学教程整本书电子教案全书教案.ppt_第4页
第4页 / 共564页
单片机原理、接口技术及应用教材全套课件教学教程整本书电子教案全书教案.ppt_第5页
第5页 / 共564页
点击查看更多>>
资源描述

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四

2、级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机原理、接口技术及应用,有关本课程学习的几点建议,本课程的先期课程是数字电路与微机原理,这方面知识掌握得不够好的请自己补上,本课程是一门实践性、应用性很强的学科,仅仅听懂还不够,重在培养动手能力,硬件,/,软件同样重要、不可偏废,硬件是骨架,软件是灵魂,预习、听课、复习、作业、实验环环都重要,用科学的方法学习,单片机技术的应用遍布国民经济与人民生活的各个领域,1,微型计算机基础知识,电子计算机是一种能

3、对信息进行加工处理的机器,它具有记忆、判断和运算能力,能模仿人类的思维活动,代替人的部分脑力劳动,并能对生产过程实现某种控制等等。它是,20,世纪发展最快的技术之一,自,1946,年世界上第一台数字计算,ENIAC(Electronic Numerical Integrator And Computer),在美国的宾夕法尼亚大学问世以来,至今的,60,多年里得到了迅猛的发展和普及,可谓一日千里。,1946,年,2,月,15,日,,第一台电子数字计算机,(ENIAC),问世,这标志着计算机时代的到来。,ENIAC,是电子管计算机,时钟频率仅有,100 KHz,,但能在,1,秒钟的时间内完成,50

4、00,次加法运算。,与现代的计算机相比,有许多不足,但,它的问世开创了计算机科学技术的新纪元,,对人类的生产和生活方式产生了巨大的影响。,按计算机元器件构成的演变来划分计算机的发展阶段,则到目前为止计算机已经历了以下四个发展阶段:,第一代电子管计算机,(1946-1957),第二代晶体管计算机,(1958-1964),第三代集成电路计算机,(1965-1971),第四代大规模集成电路计算机,(1972-,现在,),计算机目前正朝着第五、第六代计算机发展。所谓第五代计算机是把信息采集、存储、处理、通信同人工智能结合在一起的智能计算机系统。它能进行数值计算或处理一般的信息,主要能面向知识处理,具有

5、形式化推理、联想、学习和解释的能力,能够帮助人们进行判断、决策、开拓未知领域和获得新的知识。人机之间可以直接通过自然语言(声音、文字)或图形图象交换信息。,第六代计算机即生物计算机,它体积小,功效高,在,1,平方毫米的面积上可容数亿个电路,比目前的电子计算机提高了上百倍,能使生物本身固有的自我修复机能得到发挥,这样即使芯片出了故障也能自我修复,可靠性很高。,1.1,微型计算机概述,1.1.1,微型计算机的基本概念,微处理器,(,Microprocessor,),简称,MPU,,是一个由算术逻辑运算单元、控制器单元、寄存器组及内部系统总线等单元组成的大规模集成电路芯片。,微处理器,加上同样采用大

6、规模集成电路制成的用于存储程序和数据的,存储器,以及与输入输出设备相连接的,输入输出接口电路,就构成了,微型计算机,(,Microcomputer,)。,以微型计算机为主体,配上输入,/,输出设备、外存储设备、电源机箱以及基本系统软件就可组成,微型计算机系统。,图,1,1,微型计算机基本组成框图,1.1.2,微型计算机的发展概况,通常,微型计算机的发展是以微处理器的发展为表征的。以其字长和功能来分,微处理器的发展经历了如下几个阶段:,第一阶段(,1971,年,1973,年)是,4,位和,8,位低档微处理器,时代,通常称为第一代。,第二阶段(,1974,年,1977,年)是,8,位中高档微处理器

7、时,代,通常称为第二代。,第三阶段(,1978,1984,年)是,16,微处理器时代,通常称,为第三代。,第四阶段(,1985,1992,年)是,32,位微处理器时代,又称,为第四代。,第五阶段(,1993,年以后)是,64,位奔腾(,Pentium,)系列微,处理器时代,通常称为第五代。,1.1.3,微型计算机的分类,(,1,)按处理器位数分类,微处理器的位数是由运算器并行处理的二进制位数所决定的。处理器的位数越高,其性能就越强。,4,位机,8,位机,16,位机,32,位机,64,位机,(,2,)按结构分类,单片微型计算机,(,Single Chip Microcomputer,),将微处理

8、器、存储器、输入输出接口电路集成在一块芯片上,称为单片微型计算机或单片机。它具有体积小、可靠性高、成本低等特点,广泛应用于仪器、仪表、家电、工业控制等领域。,单板微型计算机,(,Single Board Microcomputer,),将组成微型计算机的各功能部件都做在同一块印刷电路板上,称为单板微型计算机或单板机。它具有结构紧凑、使用简单、成本地等特点,常用于工业控制和教学实验等领域。,个人计算机,(,Personal Computer,,简称,PC,机),它是一种将一块主机母板(内含微处理器、内存储器、,I/O,接口等芯片)、若干,I/O,接口卡、外部存储器、电源等部件组装在一个机箱内,并

9、配备显示器、键盘、打印机等基本外部设备所组成的计算机系统。,PC,机具有功能强、配置灵活、软件丰富等特点,既可用于科学计算和数据处理,也可作为专用机,用于实时控制和管理等。它是一种使用最为普及的微型计算机。,1.2,常用的数制及编码,1.2.1,常用的数制,(,1,)十进制数,十进制数中有,0,9,十个数字符号,任何一个数的大小都可以用这十个数字符号的组合来表示。对于十进制数,D,可用权展开式表示为,其中,D,i,是,D,的第,i,位数码,是,0,9,等十个数码中的一个,基数为,10,,,10,i,称为十进制的权。,【,例,1,1】,十进制数,12.86,可按权展开为,对于十进制数,12.86

10、,也可写为,12.86D,或,(12.86),D,。,(,2,)二进制数,在二进制数中只有,0,和,1,两个数码。对于二进制数,B,可用权展开式表示为,其中,B,i,可取,0,或,1,。基数为,2,,,2,i,称为二进制的权。二进制数的加减运算中遵循,逢二进一、借一为二,的规则。,【,例,1,2】,二进制数,101.01,可按权展开为,对于二进制数,101.01,也可写为,101.01B,或,(101.01),B,。,(,3,)十六进制数,在十六进制数中,采用,0,9,、,A,F,等十六个数码,其中,A,F,相应的十进制数为,10,15,。对于,16,进制数,H,可表示为,其中,H,i,是,H

11、,的第,i,位数码,是,0,F,等,16,个数码中的一个,基数为,16,,,16,i,称为十六进制的权。,十六进制的加减运算中遵循,逢十六进一、借一为十六,的规则。,【,例,1,3】,十六进制数,2BA.7E,可按权展开为,同样对于十六进制数,(2BA.7E),16,也可写为,2BA.7EH,或,(2BA.7E),H,。,二进制数与十六进制数之间存在有一种特殊关系,即,2,4,16,,也就是说一位十六进制数恰好可用四位二进制数表示,且它们之间的关系是唯一的。所以,在计算机应用中,虽然机器只能识别二进制数,但在数字的表达上更广泛地采用十六进制数。,十 进 制,二 进 制,八 进 制,十 六 进

12、制,0,0,0,0,1,1,1,1,2,10,2,2,3,11,3,3,4,100,4,4,5,101,5,5,6,110,6,6,7,111,7,7,8,1000,10,8,9,1001,11,9,10,1010,12,A,11,1011,13,B,12,1100,14,C,13,1101,15,D,14,1110,16,E,15,1111,17,F,16,10000,20,10,表,1-2,几种进位制的数码对照,1.2.2,数制之间的转换,(,1,)二进制、十六进制数转换为十进制数,二进制、十六进制数转换成十进制数时,只要将二进制数、或十六进制数按相应的权表达式展开,再按十进制运算规则求和

13、,即可得到它们对应的十进制数。,【,例,1,4】,将二进制数,1101100.111,转换成十进制数。,解:(,1101100.111,),2,12,6,12,5,12,3,12,2,12,-,1,12,-,2,12,-,3,64,32,8,4,0.5,0.25,0.125,(,108.875,),10,【,例,1,5】,将十六进制数,19BC.8,转换成十进制数。,解:(,19BC.8,),16,116,3,916,2,B16,1,C16,0,816,-,1,4096,2304,176,12,0.5,(,6588.5,),10,(,2,)十进制数转换为二进制、十六进制数,十进制数整数和小数部

14、分应分别进行转换。,整数部分,的转换采用的是,除,2,取余法,,直到商为,0,,余数按倒序排列,称为“,倒序法,”。,小数部分,的转换采用,乘,2,取整法,,直到小数部分为,0,,整数按顺序排列,称为“,顺序法,”。,【,例,1,6】,将十进制数,61.125,转换为二进制数。,解:,整数部分 小数部分,61/2=30,余数,1(,最低位,)0.1252,0.25,整数,0(,最高位,),30/2=15,余数,0 0.252,0.5,整数,0,15/2=7,余数,1 0.52,1.0,整数,1(,最低位,),7/2=3,余数,1,3/2=1,余数,1,1/2=0,余数,1(,最高位,),即,(

15、61.125),10,=(111101.001),2,【,例,1,7】,将十进制数,61.125,转换为十六进制数。,解:整数部分 小数部分,61/16=3,余数,D(,最低位,)0.12516,2.0,整数,2(,最高位,),3/16=0,余数,3(,最高位,),即,(61.125),10,=(3D.2),16,也可将十进制数先转换为二进制数,再转换为十六进制数;或先将十进制数转换为十六进制数,再转换为二进制数。,(,3,)二进制数转换成十六进制数,二进制数转换成十六进制数的转换原则是“,四位合成一位,”,即,从小数点开始向左右两边以每四位为一组,,不足四位时补,0,,然后每组改成等值的一位

16、十六进制数即可。,【,例,1,8】,将(,1011111101.1001101,),2,转换成十六进制数。,解:,001011111101.10011010,2 F D.9 A,即(,1011111101.1001101,),2,(,2FD.9A,),16,(,4,)十六进制数转换成二进制数,十六进制数转换成二进制数的转换原则是“,一位分成四位,”,即把,1,位十六进制数转换成对应的,4,位二进制数,然后按顺序连接即可。,【,例,1,9】,将(,FB6.DA3,),16,转换为二进制数。,解:,F B 6.D A 3,111110110110.110110100011,即,(,FB6.DA3,

17、),16,(,111110110110.110110100011,),2,1.2.3,微型计算机常用的编码,计算机不仅要处理数制计算问题,还要处理大量非数值问题。由于,在计算机中数是用二进制数表示的,计算机只能识别二进制数码。,因此,不论是十进制数,还是英文字母、汉字以及其它信息,(如语言、符号、声音等)必须先转换成二进制代码,才能让计算机接受。,这种把信息编成二进制代码的方法,称为计算机的编码,。,通常计算机编码分为数值编码和字符编码。,(,1,),BCD,码(十进制数的二进制编码),BCD,(,Binary Coded Decimal,)码是指每位十进制数用,4,位二进制数码表示,使其既具

18、有二进制数的形式又具有十进制数的特点。值得注意的是,四位二进制数有,16,种状态,但,BCD,码只选用,10,种状态来表示,0,9,这,10,个数码,其余六个是多于的,应该放弃不用。常用的,BCD,码有,8421,码、,2421,码和余,3,码等,其中最常用的为,8421,码,。,BCD,编码自然简单、书写方便。,例如十进制数,86,的,BCD,编码形式为,10000110B,,即,86H,。,【,例,1,10】,写出十进数,976.93D,对应的,8421BCD,码。,解:,976.93D=1001 0111 0110.1001 0011BCD,【,例,1,11】,写出,8421BCD,码,

19、101001.0110011BCD,对应的十进制数。,解:,101001.0110011BCD,0010 1001.0110 0110BCD,=29.66D,计算机的存储单元通常以字节(,8,位二进制)为最小单位,很多操作也是以字节为单位进行的,在一个字节中如何存放,BCD,码有两种方式。一种方式是,在一个字节中存放两个,BCD,码,,这种方式称为,压缩,BCD,码,表示法。在采用压缩,BCD,码表示十进制数时,一个字节就表示两位十进制数。例如,10000110B,表示十进制数,86,。另一种方式是,一个字节存放一个,BCD,码,,即字节的高,4,位为,0,,低,4,位为十进制数字的,BCD,

20、码,该方式称为,非压缩,BCD,码,表示法。例如对于十进制数,86,的非压缩,BCD,码表示为,00001000 00000110B,(,2,),ASCII,码,ASCII,(,American Standard Code for Information Interchange,)码是美国国家信息交换标准代码。这种编码是字符编码,利用,7,位二进制数字“,0”,和“,1”,的组合码,对应着,128,个符号。,0,31,及,127(,共,33,个,),是控制字符或通讯专用字符(其余为可显示字符),它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响;,32,126(,共,95

21、,个,),是字符,(32sp,是空格,有些教材将其归入控制字符),其中,48,57,为,0,到,9,十个阿拉伯数字,,65,90,为,26,个大写英文字母,,,97,122,号为,26,个小写英文字母,其余为一些标点符号、运算符号等。,(,3,)国标码,“国家标准信息交换用汉字编码”(,GB2312,-80,标准),简称国标码。国标码是指,1980,年中国制定的用于不同的具有汉字处理功能的计算机系统间交换汉字信息时使用的编码。国标码是二字节码,用两个七位二进制数编码表示一个汉字。目前国标码收入,6763,个汉字,其中一级汉字(最常用),3755,个,二级汉字,3008,个,另外还包括,682,

22、个西文字符、图符。顺便一提的是,在我国的,台湾地区采用,的是另一套不同标准码(,BIG5,码,),因此,两岸的汉字系统及各种文件不能直接相互使用。,1.3,无符号二进制数的算术运算和逻辑运算,1.3.1,二进制的算术运算,(,1,)二进制加法,二进制加法运算规则如下:,0,0=0 0,1=1,1,0=1,1,1=0,(产生进位),【,例,1,12】,计算,10100110B+10110100B,解:,1 0 1 0 0 1 1 0B,+,),1 0 1 1 0 1 0 0B,1 0 1 0 1 1 0 1 0B,即,10100110B+10110100B,101011010B,(,2,)二进制

23、减法,二进制数的减法规则如下:,0,0,0 0,1,1,(产生借位),1,0,1 1,1,0,【,例,1,13】,计算,10100110B,00110100B,解:,1 0 1 0 0 1 1 0B,),0 0 1 1 0 1 0 0B,0 1 1 1 0 0 1 0B,即,10100110B,00110100B,01110010B,(,3,)二进制乘法,二进制乘法规则如下:,00,0,01,0,10,0,11,1,【,例,1,14】,计算,1101B1001B,解法,1,:,1 1 0 1,),1 0 0 1,1 1 0 1,0 0 0 0,0 0 0 0,1 1 0 1,1 1 1 0 1

24、 0 1,即,1101B1001B,1110101B,对二进制数而言,,每左移一位相当于乘以,2,,左移,n,位就相当于乘以,2,n,。,(,4,)二进制除法,二进制数除法的计算方法,与十进制数除法类似,也由减法、上商等操作分步完成。,【,例,1,15】,计算,1110101B,1001B,即,1110101B,1001B,1101B,对二进制数而言,,每右移一位相当于除以,2,,右移,n,位就相当于除以,2,n,。,1.3.2,无符号数的表示范围,(,1,)无符号二进制数的表示范围,一个,n,位无符号二进制数的表示范围为,0,2,n,1,。例如一个,8,位二进制数的表示范围为,0,2,8,1

25、,,即,00H,0FFH,(,0,255,)。如果运算结果超出二进制数的表示范围,则会产生溢出,运算结果也不准确。,【,例,1,16】,计算,11000101B,10101001B,解:,1 1 0 0 0 1 0 1B,+,),1 0 1 0 1 0 0 1B,1 0 1 1 0 1 1 1 0B,即,11000101B,10101001B,101101110B,由上式可知,上面两个,8,位二进制数相加的结果为,9,位二进制数,超出了,8,位数的表示范围。若仅取,8,位字长,则结果为,01101110B,,显然是错误的,这种情况就称为,溢出,。,事实上,,11000101B,197D,,,1

26、0101001B,169D,,,197,169,366,,相加结果大于,8,位无符号二进制数能够表示的最大值,255,,所以最高位的进位丢失了,该进位代表了,256,,所以最后的运算结果为,366,256,110,,即,01101110B,。,(,2,)无符号二进制数的溢出判断,设,无符号二进制数,的最高有效位,D,i,的进位(或借位)为,C,i,,则两个无符号二进制数相加(或相减)时,,若最高位产生进位(或借位),即,C,i,1,,就产生了溢出。,在例,1,16,中,两个,8,为无符号二进制数相加,最高有效位(,D,7,位)产生了进位,C,7,1,,故结果出现了溢出。,1.3.3,二进制数的

27、逻辑运算,逻辑运算是在对应的两个二进制位之间进行的,与相邻的高低位的值均无关,,即不存在进位、借位等问题。基本逻辑运算包括“与”、“或”、“非”和“异或”,4,种运算。,(,1,)逻辑与运算,逻辑与又称逻辑乘,常用“”算符表示。逻辑与运算法则为:,00,0 01,0 10,0 11,1,即,参加“与”操作的两位中只要有一位为,0,,则“与”的结果就为,0,,仅当两位均为,1,时,“与”的结果才为,1,。,【,例,1,17】,计算,11000101B,10101001B,解:,1 1 0 0 0 1 0 1B,1 0 1 0 1 0 0 1B,1 0 0 0 0 0 0 1B,即,1100010

28、1B,10101001B,10000001B,(,2,),逻辑或运算,逻辑或运算又称逻辑加,常用“,”算符表示。逻辑或运算的规则为:,0,0,0 0,1,1 1,0,1 1,1,1,即,参加“或”操作的两位中只要有一位为,1,,则“或”的结果就为,1,,仅当两位均为,0,时,“或”的结果才为,0,。,【,例,1,18】,计算,11000101B,10101001B,解:,1 1 0 0 0 1 0 1B,1 0 1 0 1 0 0 1B,1 1 1 0 1 1 0 1B,即,11000101B,10101001B,11101101B,(,3,)逻辑非运算,逻辑非运算又称逻辑取反,常采用上横线“

29、,”,运算符表示。逻辑非运算规则为:,【,例,1,19】,计算,B,解:只要对,11000101B,按位取反即可,(,4,)逻辑异或,逻辑异或又称半加,是不考虑进位的加法,常采用“,”算符表示。逻辑异或的运算规则为:,0,0,0 0,1,1 1,0,1 1,1,0,即,进行操作的两个二进制位相同时,结果为,0,;不同时,结果为,1,。,【,例,1,20】,计算,11000101B,10101001B,解:,1 1 0 0 0 1 0 1B,1 0 1 0 1 0 0 1B,0 1 1 0 1 1 0 0B,即,11000101B,10101001B,01101100B,1.4,有符号二进制数的

30、表示及运算,1.4.1,有符号数的表示方法,在计算机中数的正负号只能由“,0”,和“,1”,表示。一般规定一个有符号数的,最高位为符号位,,该位为,“,0”,表示正,,该位为,“,1”,表示负,。,【,例,1,21】,1001100B,在计算机中表示为,01001100B,1001100B,在计算机中表示为,11001100B,我们把符号数值化了的数称为,机器数,,如,01001100B,和,11001100B,就是机器数,而把原来的数值称为机器数的,真值,,如,1001100B,和,1001100B,。,机器数是计算机中数的基本形式,为了运算方便,机器数通常有原码、反码和补码三种形式。,(,

31、1,)原码,对于一个二进制数,,用最高位作为该数的符号位,且用“,0”,表示“”号,“,1”,表示“”号,其余各位数表示其数值本身,则称为原码表示法,。即在原码表示法中,不论数的正负,数值部分均保持原真值不变。,【,例,1,22】,求,+20,,,20,的原码。,解:,20,原,10100B,0 0010100B,(“”的符号位用,0,代替),20,原,10100B,1 0010100B,(“”的符号位用,1,代替),值得注意的是,在原码表示法中,真值,0,的原码可表示为两种不同的形式,即,0,和,0,。,0,原,00000000B,0,原,10000000B,即,0,的原码表示不唯一,。,原

32、码表示法的优点是简单、直观、易于理解,与真值间的转换比较方便。缺点是用计算机实现起来比较烦琐,不仅要考虑是做加法还是做减法,还要考虑数的符号和绝对值的大小,这使运算器的设计较为复杂,降低了运算器的运算速度。,(,2,),反码,对正数而言,,反码的表示方法同原码,即符号位为“,0”,,数值部分与真值相同;而,对负数而言,,反码的符号位与原码相同为“,1”,,数值部分为真值的各位按位取反。即,若,X,原,0X,n-1,X,n-2,X,0,,则,X,反,X,原,若,X,原,1X,n-1,X,n-2,X,0,,则,X,反,1,【,例,1,23】,求,+20,,,20,的反码。,解:,20,反,20,原

33、,0 0010100B,(正数的反码同原码),20,反,B,1 1101011B,(符号位不变,其余按位取反),注意,在反码表示法中,同原码一样,数,0,也有两种表示形式。,0,反,00000000B,0,反,11111111B,(,3,),补码,对于,n,位二进制数,X,,补码的定义如下:,从定义不难发现,,正数的补码,与原码、反码的表示是完全相同的,,,负数的补码,表示为该数的原码除符号位外按位取反后最末位加,1,(即反码,1,),。,与原码、反码不同,,数,0,的补码表示是唯一的,。,0,补,+0,原,00000000,0,补,-0,反,+1,11111111+1,1 00000000,

34、00000000,(对,8,位字长,进位被舍掉),注意,,特殊数,10000000B,,该数在原码中表示,0,,在反码中表示,127,,在补码中定义为,128,,而对无符号数,,10000000B,128,【,例,1,24】,求,20,和,20,的补码,20,补,20,反,20,反,00010100,(正数的补码同原码),20,补,20,反,1,11101011B+1,11101100B,特别需要指出,,在计算机中凡是带符号的数一律用补码表示,且符号参加运算,其运算结果也用补码表示。,若运算结果的符号位为“,0”,,则表示结果为正数,若运算结果的符号位为“,1”,,则表示结果为负数,它们是以补

35、码形式表示的。如果想用原码表示,就要解决由补码求原码的问题。方法很简单,只要对补码再求补即可。即,X,原,X,补,补,【,例,1,25】,已知,X,补,11101100B,,求,X,。,解:,X,原,X,补,补,10010100B,X,10100B,20,1.4.2,补码的运算,两个,n,位二进制数补码的运算具有如下规则:,X,Y,补,X,补,Y,补,(mod 2,n,),即,两个,n,位二进制数之和的补码等于两数补码之和,。,当带符号两数采用补码形式表示时,进行加法运算可以把符号位和数值位一起进行运算(若符号位有进位,则丢掉),结果为两数之和的补码形式。,b)X,Y,补,X,补,Y,补,(m

36、od 2,n,),(,1.9,),即,两个,n,位二进制数之差的补码等于两数补码之差。,带符号的两个数采用补码形式表示时,进行减法运算可以把符号位和数值位一起进行运算(若符号位有借位,则丢掉)结果为两数之差的补码形式。,c)X,Y,补,X,补,Y,补,(mod 2,n,),(,1.10,),即,两个,n,位二进制数之差的补码等于第一个数的补码与第二个数负数的补码之和,。上式称为“变补相加法”。,【,例,1,26】,已知,X,81,,,Y,60,,求,X,Y,补,。,解法,1,:,X,补,01010001B,,,Y,补,00111100B,由式(,1.9,),得,X,Y,补,00010101B,

37、解法,2,:,X,补,01010001B,,,Y,补,11000100B,由式(,1.10,)得,X,Y,补,00010101B,注意,在字长为,n,位的机器中,最高位向上的进位是自然丢失的,本例就是这样的情况。,解法,1,和解法,2,的结果完全一致,再次说明了当两个符号数均用补码表示时,减法运算可以变为加法运算实现。,【,例,1,27】,已知,X,60,,,Y,81,,求,X,Y,补,。,解:,X,补,00111100B,,,Y,补,01010001B,Y,补,10101111B,由式(,1.10,)得,X,Y,补,11101011B,最高位,D,7,位,1,,表明该数为负数,将后面,7,位

38、,D,6,D,0,按位取反加,1,,得到真值为,0010101B,,即,21D,。,【,例,1,28】,已知,X,60,,,Y,81,,求,X,Y,补,。,解:,X,补,00111100B,,,Y,补,01010001B,由式(,1.8,)得,X,Y,补,10001101B,两个,8,位二进制正数相加,其结果的符号位为,1,,即和为负数,显然是错误的,原因是运算结果超出了,8,位二进制补码数的表示范围。对于一个,n,位带符号的二进制数,其原码、反码和补码都是有一定的表示范围的。,1.4.3,有符号数的表示范围,(,1,)带符号数的表示范围,8,位二进制数的表示范围,原码:,11111111B,

39、01111111B,,即,127,127,反码:,10000000B,01111111B,,即,127,127,补码:,10000000B,01111111B,,即,128,127,当,8,位二进制数运算结果超出上述范围时,就会产生溢出。,16,位二进制数的表示范围,原码:,FFFFH,7FFFH,,即,32767,32767,反码:,8000H,7FFFH,,即,32767,32767,补码:,8000H,7FFFH,,即,32768,32767,当,16,位二进制数运算结果超出上述范围时,就会产生溢出。,(,2,)带符号数运算时的溢出判断,两个带符号数进行加减运算时,运算结果超出上述范围,

40、就发生了溢出错误。显然,,溢出只会在两个同符号数相加或两个异符号数相减时发生。,下述规则可用于判断运算结果是否溢出。,设最高位的进位(或借位)为,C,i,,次高位向最高位的进位(或借位)为,C,i-1,,若,C,i,C,i-1,1,则结果产生溢出。即,最高位和次高位的进位(或借位)标记一个为,1,,另一个为,0,时,说明有溢出,,否则,没有溢出。,对于两个,8,位二进制数相加减时,若,C,7,C,6,1,,则结果有溢出。,【,例,1,29】,已知,X=01111000B,,,Y=01101001B,,求,X,Y,解:,X,补,01111000B,,,Y,补,01101001B,0 1 1 1

41、1 0 0 0B,),0 1 1 0 1 0 0 1B,1 1 1 0 0 0 0 1B,由于,C7,0,,,C6,1,,,C7,C6,1,,,故有溢出。事实上,两正数相加得负数,显然结果错误。,【,例,1,30】,已知,X,60,,,Y,81,,计算,X,Y,。,解:,X,补,11000100B,,,Y,补,01010001B,Y,补,10101111B,由式(,1.10,),1 1 0 0 0 1 0 0B,),1 0 1 0 1 1 1 1B,1 0 1 1 1 0 0 1 1B,由于,C7,1,,,C6,0,,,C7,C6,1,,,故有溢出。事实上,负数减正数得正数,(最高位的进位,1

42、,自然丢失),,显然结果错误。另外,从,60,81,141,,可以看出结果超出了,8,位二进制数的表示范围,故产生溢出错误。,注意,,无符号数和带符号数的溢出的条件是不一样的,,因为它们可表示数的范围不一样。,无符号数的溢出与否,仅由最高位向前是否有进位(或借位)决定,;,而对有符号数,则由最高位和次高位两位的进位(或借位)情况共同决定。,一旦产生溢出,计算机会产生一个溢出中断,通知用户进行出错处理。,1.5,常用数据单位,(,1,)位(,bit,),在计算机中最小的数据单位是二进制的一个数位。计算机中最直接、最基本的操作就是对二进制位的操作。我们把,二进制数的每一位叫一个字位,或叫一个,bi

43、t,。,bit,是计算机中最基本的存储单元,。,(,2,),字节(,Byte,),一个,8,位的二进制数单元叫做一个字节,或称为,Byte,。,字节是计算机中最小的存储单元,。其他容量单位还有千字节(,KB,)、兆字节(,MB,)、千兆字节(,GB,)以及兆兆字节(,TB,)。,它们之间有下列换算关系:,1B,8bits,K(Kilo,,千,)1KB,1024B,2,10,B,M(Mega,,百万,兆,)1MB,1024KB,2,20,B,G(Giga,,十亿,)1GB,1024MB,2,30,B,T(Tril,,万亿,)1TB,1024GB,2,40,B,(,3,),字,CPU,通过数据总线

44、一次存取、加工和传送的数据称字,,一个字由若干个字节组成。,(,4,)字长,一个字中包括二进制数的位数叫字长,。例如,一个字由两个字节组成,则该字字长为,16,位。,较长的字长可以处理位数更多的信息,不同类型计算机的字长是不同的,,“字长”是计算机功能的一个重要标志,,“字长”越长表示功能越强。字长是由,CPU,芯片决定的,例如,,80286CPU,字长为,16,位,即一个字长为两个字节,目前主流,CPU,的字长是,64,位。,2,80C51,单片机的基本结构和工作原理,2.1 80C51,单片机的组成,(,1,)中央处理器(,CPU,),单片机中央处理器和通用微处理器基本相同,只是增设了“面

45、向对象”的处理功能。如位处理、查表、多种跳转、乘除法运算、状态检测、中断处理等,增强了实时性。,(,2,)存储器,目前微型计算机和单片机的存储器主要有两种结构,即哈佛(,Harvard,)结构和普林斯顿(,Princeton,)结构。所谓,哈佛结构,,是将程序存储器和数据存储器截然分开,分别寻址的结构;而,普林斯顿结构,,则是将程序和数据共用一个存储器空间的结构。,80C51,系列单片机采用前者。,图,2,1 80C51,单片机的基本组成框图,程序存储器(,ROM,),程序存储器用来存放程序和始终要保留的常数。常用的有片内掩膜,ROM,、可编程,ROM,(,PROM,)、可擦除可编程,ROM,

46、(,EPROM,)、电可擦除可编程型,ROM,(,E,2,PROM,),8031,片内没有程序存储器,8051,内部设有,4KB,的掩模,ROM,程序存储器,8751,是将,8051,片内的,ROM,换成,EPROM,89C51,则换成,4KB,的闪速,EEPROM,89S51,结构同,89C51,,,4KB,的闪速,EEPROM,可在线编程,增强型,52,、,54,、,58,系列的存储容量为普通型分别为,8KB,、,16KB,、,64KB,数据存储器(,RAM,),数据存储存放程序运行中所需要的常数和变量。,51,系列内部,RAM,容量为,128B,,,52,系列为,256B,。,(,3,)

47、,I/O,接口,并行,I/O,接口,80C51,单片机内部有,4,个,8,位,I/O,接口,不仅可灵活地用作输入或输出,而且还具有多种功能。,串行口,80C51,单片机有一个全双工的串行口,以实现单片机和其它设备间的串行通讯。该串行口还可作为同步移位器使用。,(,4,)时钟电路,80C51,单片机内部有时钟电路,但石英晶体和微调电容需外接,时钟电路为单片机产生时钟脉冲序列。,(,5,)中断,80C51,共有,5,个中断源,即外部中断,2,个,定时器,/,计数器中断,2,个,串行口中断,1,个,全部中断源分为两个优先级,优先级的高低可通过编程实现。,(,6,)定时器,/,计数器,80C51,共有

48、,2,个,16,位的定时器,/,计数器,以实现精确的定时或对外部事件的计数功能。,从以上内容可以看出,,单片机,突破了常规的按逻辑功能划分芯片,由多片构成微型计算机的设计思想,,将构成计算机的许多功能集成在一块晶体芯片上,,它已具备了计算机的基本功能,实际上已经是一个简单的微型计算机系统了。,2.2 80C51,单片机内部结构和引脚功能,2.2.1 80C51,的内部结构,80C51,单片机的内部结构如图,2,2,所示。它主要由以下几个部分组成:,1,个,8,位的,中央处理器,;,4KB,的,EPROM/,ROM,;,128B,的,RAM,;,32,条,I/O,线,;,2,个,定时器,/,计数

49、器,;,1,个具有,5,个,中断源,、,2,个优先级的中断嵌套结构;用于多处理机通讯、,I/O,口扩展或全双工,通用异步接收发器(,UART,),;,特殊功能寄存器(,SFR,),;,1,个,片内振荡器和时钟电路,。,这些部件通过内部总线连接起来,构成一个完整的微型计算机。,图,2,2 80C51,的内部结构图,2.2.2.,中央处理器(,CPU,),中央处理器是单片机内部的核心部件,它决定了单片机的主要功能特性。,中央处理器从功能上可分为运算器、控制器两部分,。,(,1,)运算器,运算器由运算逻辑单元,ALU,、累加器,ACC,(,A,)、暂存寄存器、,B,寄存器、程序状态标志寄存器,PSW

50、,以及,BCD,码运算修正电路等组成。,算术逻辑单元,ALU,算术逻辑单元,ALU,的结构如图,2,3,所示。,ALU,功能十分强大,不仅可以对,8,位变量进行逻辑“与”、“或”、“异或”、循环求补、清零等基本操作,还可以进行加、减、乘、除等基本运算,并具有数据传输、程序转移等功能。为了乘除运算的需要,设置了,B,寄存器。,图,2,3 ALU,结构,累加器,ACC,累加器,ACC,(简称累加器,A,)为一个,8,位寄存器,它是,CPU,中使用最频繁的寄存器。大部分单操作数指令的操作数取自累加器,A,,很多双操作数指令的一个操作数取自累加器,A,,加、减、乘和除等算术运算指令的运算结果都存放在累

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服