单片微机原理与应用 教学课件 ppt 作者 罗印升 2011-part_03-1

上传人:E**** 文档编号:89491691 上传时间:2019-05-25 格式:PPT 页数:95 大小:1.17MB
返回 下载 相关 举报
单片微机原理与应用 教学课件 ppt 作者 罗印升 2011-part_03-1_第1页
第1页 / 共95页
单片微机原理与应用 教学课件 ppt 作者 罗印升 2011-part_03-1_第2页
第2页 / 共95页
单片微机原理与应用 教学课件 ppt 作者 罗印升 2011-part_03-1_第3页
第3页 / 共95页
单片微机原理与应用 教学课件 ppt 作者 罗印升 2011-part_03-1_第4页
第4页 / 共95页
单片微机原理与应用 教学课件 ppt 作者 罗印升 2011-part_03-1_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《单片微机原理与应用 教学课件 ppt 作者 罗印升 2011-part_03-1》由会员分享,可在线阅读,更多相关《单片微机原理与应用 教学课件 ppt 作者 罗印升 2011-part_03-1(95页珍藏版)》请在金锄头文库上搜索。

1、2019/5/25,1,“单片机原理与应用”课程,第 3 章 51系列单片机的指令系统 和程序设计方法,2019/5/25,2,第3章:指令系统和程序设计方法,3.1 指令系统概述,3.2 寻址方式,3.3 数据传送类指令,3.4 算术运算类指令,3.8 汇编语言程序设计,3.5 逻辑运算类指令,3.6 位操作类指令,3.7 控制转移类指令,2019/5/25,3,【基本知识点与要求】 理解指令的寻址方式及相应的寻址空间。 (2) 正确理解51系列单片机的111条基本指令的含义,熟练掌 握其应用方法。 (3) 了解机器语言、汇编语言和高级语言的特点,汇编语言程序设计步骤。 (4) 掌握汇编语言

2、的基本格式,熟练掌握汇编语言程序设计思想和设计方法。 (5) 理解子程序的特点,掌握子程序的设计方法和设计中应注意的问题。,【重点与难点】 重点是指令的寻址方式及相应的寻址空间、指令系统、子程序设计、汇编语言程序设计思想和设计方法。难点是寄存器间接寻址、相对寻址、变址寻址和位寻址,汇编语言程序设计思想和设计方法。,第3章:指令系统和程序设计方法,2019/5/25,4,3.1 指令概述,3.1.1 51系列单片机指令分类,指令:计算机能够识别和执行、用于控制各种功能部件完成某一特定动作的命令。 指令系统:所有指令的集合构成了该类计算机的指令系统。,这里讲的是汇编语言指令,即以英文名称或者缩写形

3、式作为助记符(帮助记忆的符号)。,5l系列单片机共有111条指令,可有下列三种分类。,1. 按指令功能可分成如下五类 (1)数据传送类指令(29条):内部8位数据传送指令15条,内部16位数据传送指令1条,外部数据传送指令4条,交换和查表指令9条。,2019/5/25,5,(2)算术传送类指令(24条):加法指令(包括BCD码调整指令1条)14条,减法指令8条,乘/除法指令各1条。,3.1 指令概述,(3)逻辑运算类指令(24条):逻辑运算指令20条,循环移位指令4条。,(4)位操作类指令(17条):位传送指令2条,位置位、位清零和位取反6条,位运算指令4条,位转移指令3条,判CY标志指令2条

4、。,(5)控制转移类指令(17条):无条件转移指令4条,条件转移指令8条,调用和返回指令5条。,2. 按指令执行所需要的时间可分为以下三类 (1)单周期指令(64条) (2)双周期指令(45条) (3)四周期指令(2条),2019/5/25,6,3.1 指令概述,3. 按指令所占的字节数可分为以下三类 (1)单字节指令(49条) (2)双字节指令(46条) (3)三字节指令(16条),3.1.2 指令格式,1. 指令格式 标号: 操作码 目的操作数 ,源操作数 ;注释 (1)汇编语言语句由标号、操作码、操作数和注释4部分组成。其中,标号和注释部分可以没有,某些指令也可以没有操作数。,(2)标号

5、位于语句的开始,由18个ASCII字符组成,第一个字符必须是字母。标号不能使用系统中已经定义的助记符、伪指令及其它标号。标号的后面必须加冒号,标号与冒号之间不能有空格,冒号与操作码之间可以有空格。,2019/5/25,7,3.1 指令概述,(3)操作码是用英文缩写的指令功能助记符。它确定了本条指令完成什么样的操作功能,不能缺少。,(4)操作数在操作码之后,用空格分开。操作数是指参加操作的对象或者对象存放的地址,可以是数据,可以是地址,也可以没有。指令中有多个操作数时,操作数之间用逗号分开。源操作数,目的操作数。,(5)注释在语句的最后,以“;”开始,是说明性的文字,与语句的具体功能无关,但是能

6、增加程序的可阅读性,便于程序的调试与交流。注释内容不参与程序的汇编。,2. 指令中数的表示 十进制数以D结尾或者省略;十六进制以H结尾,如果数据以AF开头,其前必须加数字0,如0FFH;字符串用“”括起来。,2019/5/25,8,3.1.3 指令中常用缩写符号的意义,3.1 指令概述,(1)#data:8位立即数。 (2)#data16:16位立即数。 (3)Rn:工作寄存器R0R7,其中n=07。 (4)Ri:工作寄存器,i=0或1。 (5):间接地址符号。Ri,寄存器Ri间接寻址。 (6)direct:8位直接地址,可以是特殊功能寄存器SFR的地址或内部数据存储器单元地址。 (7)add

7、r11:11位目的地址。用于AJMP和ACALL指令,均在2KB地址范围内转移或调用。 (8)addr16:16位目的地址。用于LJMP和LCALL指令,可在64KB地址范围内转移或调用。,2019/5/25,9,3.1 指令概述,(9)rel:有符号的8位偏移地址,主要用于所有的条件转移指令和SJMP指令。其范围是相对于下一条指令的第一字节地址,再偏移-128+127字节。 (10)bit:位地址。片内RAM的可寻址位和专用寄存器的可寻址位。 (11)/ : 位操作数的前缀,表示对该位操作数取反,如 /bit。 (12):当前指令存放的地址。 (13)(X):表示由X所指定的某寄存器或某单元

8、中的内容。 (14)(X):表示由X间接寻址单元中的内容。 (15)B:通用寄存器,常用于乘法MUL和除法DIV指令。 (16)C:进位标志位或者布尔处理器中的累加器。 (17):表示指令的操作结果是将箭头右边的内容传送到左边。,2019/5/25,10,3.2.1 立即寻址,3.2 寻址方式,寻址方式:一条指令的运行需要寻找相应操作数或者从操作数所在地址寻找到本指令有关的操作数。 计算机指令系统中的操作数以不同的方式给出,其相应的寻址方式也就有多种。注意通常均以源操作数来介绍寻址方式的。,51系列单片机的指令系统有立即寻址,直接寻址,寄存器寻址,间接寻址,变址寻址,相对寻址,位寻址等七种寻址

9、方式。,立即寻址是指令中直接给出操作数的寻址方式。立即操作数用前面加有#号的8位或16位数来表示。立即数是指令代码的一部分,只能作源操作数。 该寻址方式用于对特殊功能寄存器和指定的存储单元赋初值。,2019/5/25,11,例如:MOV A,#60H ; (A) 60H MOV DPTR,#3400H ;(DPTR) 3400H MOV 30H, #40H ; (30H)单元 40H 上述三条指令执行后,累加器A中数据为立即数据60H,DPTR 寄存器中数据为3400H,30H单元中数据为立即数40H。,3.2.2 直接寻址,直接寻址:指令中直接给出操作数所在的存储单元的地址号的寻址方式。可以

10、是操作数所在的字节地址或位地址,也可以直接使用由符号名称所表示的地址,即符号地址。,例如: MOV A,40H ; (A)(40H) 该指令的功能是把内部数据存储器RAM 40H单元的内容送到累加器A。指令直接给出了源操作数的地址40H。,3.2 寻址方式,2019/5/25,12,51系列单片机中,直接寻址可访问三种地址空间为: (1) 特殊功能寄存器SFR:直接寻址是唯一的访问形式; (2) 内部数据RAM低128个字节单元(地址范围00H7FH); (3) 221个位地址空间。,3.2 寻址方式,3.2.3 寄存器寻址,寄存器寻址:就是操作数存放于寄存器中(Rn、ACC、B、DPTR、C

11、Y)的寻址方式。 例如: MOV A,R7 ;(A)(R7) 其功能是把寄存器R7内的操作数传送到累加器A中。由于操作数在R7中,因此在指令中指定了R7,就能从中取得操作数。,2019/5/25,13,3.2 寻址方式,3.2.4 寄存器间接寻址,寄存器间接寻址:由指令指出某个寄存器的内容作为操作数地址的寻址方法,简称寄存器间址。 寄存器间接寻址使用所选定寄存器区中的R0和R1作为地址指针,来寻址片内数据存储器RAM(00FFH)的256个单元,但它不能访问特殊功能寄存器SFR。 寄存器间接寻址也适用于访问外部数据存储器,此时,用R0、 R1或DPTR作为地址指针。 为了区别于寄存器寻址,在寄

12、存器间接寻址中的寄存器名前用间址符号“”。 例如: MOV A,R0 ; (A)(R0) MOV A,R0 ; (A)(R0),2019/5/25,14,3.2 寻址方式,第一条指令是寄存器寻址,R0中为操作数,指令码为E8H;指令执行后累加器A中为30H,,第二条指令是寄存器间址,R0中为操作数地址,不是操作数,指令码为E6H。指令执行后累加器A中为操作数20H。,2019/5/25,15,3.2.5 变址寻址,变址寻址: 就是基址寄存器(DPTR和PC)与变址寄存器(A)的内容相加,作为操作数的地址。 实现对程序存储器的访问。由于程序存储器通常是只读的,因此变址寻址只有读操作而无写操作,指

13、令助记符采用MOVC。,3.2 寻址方式,5l系列单片机的变址寻址指令有3条: MOVC A,A+DPTR ;(A)(A)+(DPTR) MOVC A,A+PC ;(A)(A)+(PC) JMP A+DPTR ;(PC)(A)+(DPTR),2019/5/25,16,3.2 寻址方式,3.2.6 相对寻址,相对寻址: 以当前程序计数器PC的内容为基础,加上指令给出的1个字节补码(偏移量)形成新的PC值的寻址方式。,(1)当前PC值是指相对转移指令所在地址(一般称为源地址)加上转移指令字节数。即当前PC值= 源地址 + 转移指令字节数,也就是相对转移指令的下一条指令所在的地址。 例如: JZ r

14、el 是一条累加器A为零就转移的双字节指令。若该指令地址(源地址)为2050H,则执行该指令时的当前PC值即为2052H。,2019/5/25,17,3.2 寻址方式,(2)偏移量rel是有符号的单字节数,以补码表示,其相对值的范围是-128+127,负数表示从当前地址向地址减小的方向转移,正数表示从当前地址向地址增大的方向转移。所以,相对转移指令满足条件后,转移的地址(一般称为目的地址)应为:目的地址= 当前PC值+rel=源地址+ 转移指令字节数 + rel,例如: 若指令JZ 08H 和JZ 0F4H 存放在2050H开始的程序存储器单元。则累加器A为零的条件满足后,从源地址(2050H

15、)分别转移10个单元。其相对寻址示意如图3-3(a)、(b)所示。这两条指令均为双字节指令,机器代码分别为:60H、08H和60H、F4H。,2019/5/25,18,(a) 指令JZ 08H寻址示意图; (b) 指令JZ 0F4H寻址示意图 图3-3 相对寻址示意图,3.2 寻址方式,2019/5/25,19,3.2 寻址方式,3.2.7 位寻址,位寻址:即指令中直接给出位地址。 51系列单片机具有位寻址功能,可以对内部数据存储器RAM中的位寻址区的128位和部分特殊寄存器SFR中的相关位进行寻址,并且位操作指令可对可寻址的每一位进行传送及逻辑操作。,【注意】位寻址只能对有位地址的单元作位寻

16、址操作。位寻址其实是一种直接寻址方式,不过其地址是位地址,只能用在位操作指令之中。 例如: SETB PSW.3 ;(PSW.3)1 该指令的功能是将程序状态字PSW中的第3位(RS0)置1。,2019/5/25,20,3.2 寻址方式,51系列单片机的位地址有如下4种表示方法: (1)直接使用位地址。 例如 PSW寄存器位5地址为0D5H。 (2)位名称表示方法(位符号名)。 例如 PSW寄存器位5是F0标志位,则可使用F0表示该位。 (3)单元地址加位数的表示方法。 例如 PSW寄存器位5,表示为0D0H.5。 (4)专用寄存器符号加位数的表示方法。例如 PSW寄存器的 位5,表示为PSW.5。,2019/5/25,21,3.2 数据传送类指令,数据传送指令共有29条。51单片机中的传送指令约定从右向左传送数据,把源操作数传送到目的操作数,指令执行后,源

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

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

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