130 likes | 282 Views
单片机原理与应用. 第一部份 51 系列单片机原理. 第二部份 设计应用程序实例. 主讲:楼然苗 专业:电工及自动化 职称:高级实验师 办公室地址:东实验楼 412 室 电话: 8181590 668373 虚. 3.1 单片机指令系统基础. 第三章 单片机的指令系统. 3.2 单片机指令系统的分类与速解. 3.3 单片机指令的应用例子. 3 . 1 单片机指令系统基础. 3.1.1 汇编指令的格式 由助记符、目的操作数、源操作数组成,格式如下: (标号:)操作码助记符 目的操作数,源操作数 (;注释)
E N D
单片机原理与应用 第一部份 51系列单片机原理 第二部份 设计应用程序实例 主讲:楼然苗 专业:电工及自动化 职称:高级实验师 办公室地址:东实验楼412室 电话: 8181590 668373虚
3.1 单片机指令系统基础 第三章 单片机的指令系统 3.2单片机指令系统的分类与速解 3.3单片机指令的应用例子
3.1单片机指令系统基础 3.1.1汇编指令的格式 由助记符、目的操作数、源操作数组成,格式如下: (标号:)操作码助记符 目的操作数,源操作数 (;注释) 标号可以是以英文字母开头的字母、数字和某些特殊符号的序列。某条指令一旦赋于标号,则在其它指令的操作数中就可以引用该标号作为引用地址。 操作数是指指令操作所需的数据、地址或符号(标号)如: MOV A,#40H;把数40H送入累加器A中 MOV A,40H;把40H中的数送入累加器A中 INC A;A中的数加1 CJNE A,#40H,LOOP1 ;A中数与数40H比较,不等时 ;程序转到LOOP1 DIV AB;A中内容被B中内容除,商在A ;中,余数在B中。
3.1.2指令代码格式 指令代码是程序指令的二进制数字表示方法。有单字节指令、双字节指令和三字节指令,第一个字节代码为操作码,表达了指令的操作功能,第二三个字节则为操作数或是地址、立即数。 汇编指令与指令代码例子:
3.1.3汇编指令中的符号约定 Rn(0-7):当前选中组的8个工作寄存器R0-R7 Ri(I=0,1): 当前选中组用于间接寻址的两个工作寄存 器R0、R1 Direct: 8位直接地址,可以是RAM单元地址(00H-7FH), 或特殊功能寄存器(SFR)地址(80H-FFH) #data: 8位常数 #data16: 16位常数 addr16: 16位地址 addr11: 11位地址 rel: 8位偏移地址,表示相对跳转的偏移字节, 按下一条指令第一个字节计算, 在-128——+127取值范围内。
3.1.3汇编指令中的符号约定(续) DPTR:16位数据指针 Bit: 位地址,内部RAM20H—2F中可寻址位和11个SFR 中的可寻址位 A: 累加器 B: B寄存器,用于乘法等指令中。 C: 进位标志或进位位,或位操作指令中的位累加器 @: 间接寻址寄存器的前缀 /: 位操作的取反前缀
3.1.4指令系统的寻址方式 指令系统的寻址方式分七种方式: 1.寄存器寻址方式 (1)单片机中的所有工作寄存器R0-R7及SFR都是可寻址寄存器,这些寄存器都以寄存器名作指令操作数 如:MOV A,R0 MOV SP,#70H (2)在寄存器寻址方式的操作指令中,寄存器内容作为操作数,可以是源操作数或目的操作数 如: MOV R1,#10H MOV A,R1
2.直接寻址方式 (1)直接寻址的空间有片内数据存储器的直接地址direct,它包括00H—7FH中的数据区及80H—FFH中的SFR。 (2)直拉寻址方式的操作指令直接把地址作为操作数来运行,既可作为源操作数,也可作为目的操作数 如: MOV 50H,60H MOV DPH,40H INC 60H
3.间接寻址方式 (1)间接寻址的地址空间有片内数据存储器的00H—FFH和片外数据存储器的0000H—FFFFH。 (2)间接寻址的寄存器有Ri和DPTR,间接寻址时前面加@符号 (3)间接寻址时,寄存器中的内容是操作数的地址 如: MOV R0,#30H MOV A,@R0 MOV DPTR,#0FFFH MOVX A,@DPTR
4.位寻址方式 (1)位寻址的位地址在RAM的20H—2FH单元的128个位和SFR中可位寻址的位单元 (2)进位位C作为位操作的位累加器 (3)在位寻址操作中,位单元可以使用地址编号或位地址名, 如: SETB TR0 CLR 00H ANL C,5FH ;将5FH中的位状态与进位位 ;C相与,结果在C中 5.立即寻址方式 (1)常数用来参与指令操作,一般用#标记作前缀 (2)立即数在寻址操作中只能作源操作数 如: MOV A,#30H MOV DPTR,#2FFFH ANL A,#0F4H
6.基址变址寻址方式 (1)基址变址寻址是一种间接寻址方式,PC和DPTR可作为基址地址,A作为变量 地址 (2)共有三条指令: MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR 7.相对寻址方式 (1)相对寻址中,相对地址rel是一个8位的地址偏移量,是相对于转移指令下一条指令第一个代码的地址偏移量, 为-128—+127 (2)使用中应注意rel的范围不要超出 JZ LOOP DJNE R0,DISPLAY
3.2 指令系统分类与速解 3.2.1 指令的分类图解 按指令的操作功能,80C51单片机由数据传送、算术操作、逻辑操作、程序转移和位操作指令组成,共有111条指令。 指令图解的标记符号说明: 箭头: 表示操作数从源数到目的操作数,双箭头表示源操 作数与目的操作数可互换,箭头上标有指令助记符 圆框:为累加器A或位累加器C 矩形框:为指令操作数的空间 虚线矩形框:为立即数#data 指令的分类图解 3.2.2指令系统速解表 指令系统速解表 3.3指令的应用例子
3.3指令的应用例子 指令的应用例子连接 例1 :七段LED数码管显示程序 练习与思考 1.请区别汇编指令、指令代码、指令周期、指令长度。 2.80C51指令系统有哪些寻址方式,相应的空间在何处? 3.片内RAM20H-2FH的128个位地址与直接地址00H-7FH形式完全相同,如何在指令中区分出位寻址操作和直接地址操作? 4.什么是源操作数,什么是目的操作数?通常在指令中如何区别? 5.查表指令是在什么空间上的寻址操作? 6.80C51中有LJMP、LCALL,为何还设置了AJMP、ACALL? 7.查表指令中使用了基址加变址的寻址方式,请问DPTR、PC分别代表什么地址? 8.比较不等转移指令CJNE有哪些扩展功能?