《单片机原理与应用》教学课件—03C51单片机的指令系统与程序设计

上传人:sat****105 文档编号:295078574 上传时间:2022-05-19 格式:PPT 页数:49 大小:1.92MB
返回 下载 相关 举报
《单片机原理与应用》教学课件—03C51单片机的指令系统与程序设计_第1页
第1页 / 共49页
《单片机原理与应用》教学课件—03C51单片机的指令系统与程序设计_第2页
第2页 / 共49页
《单片机原理与应用》教学课件—03C51单片机的指令系统与程序设计_第3页
第3页 / 共49页
《单片机原理与应用》教学课件—03C51单片机的指令系统与程序设计_第4页
第4页 / 共49页
《单片机原理与应用》教学课件—03C51单片机的指令系统与程序设计_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《《单片机原理与应用》教学课件—03C51单片机的指令系统与程序设计》由会员分享,可在线阅读,更多相关《《单片机原理与应用》教学课件—03C51单片机的指令系统与程序设计(49页珍藏版)》请在金锄头文库上搜索。

1、 单片机原理及应用单片机原理及应用 (第3章)第3章C51单片机的指令系统与程序设计 单片机通过执行程序来完成一定的任务和功能,而程序由若干条指令构成,CPU能识别、执行的指令集合就构成该CPU的指令系统。指令也叫语句,它是构成程序的基础。l3.13.1概述概述n3.1.1 指令格式 C51单片机的指令系统共有255种指令,绝大多数指令包含操作码和操作数两个部分。 操作码:指令要执行的操作 操作数:即操作对象,指明参与操作的数据或数据所存放的地址第3章C51单片机的指令系统与程序设计 C51单片机的所有指令都是以机器语言形式表示,分为单字节、双字节、三字节,共3种格式;用二进制编码表示的机器语

2、言由于阅读困难,且难记忆。因此采用汇编语言指令来编写程序如下表:代码字 指令代码 汇编指令 指令周期单字节 84 DIV AB 四周期单字 A3 INC DPTR 双周期双字 7410 MOV A,#10H 单周期三字 B440 rel CJNE A,#40H,LOOP 双周期第3章C51单片机的指令系统与程序设计 一条汇编语言指令中最多包含4个部分,其格式如下: 标号:操作码 目的操作数,源操作数;注释 标号是由用户定义的符号组成,必须由英文字母开始, 标号可有可无,标号又称为符号地址,在汇编时把该地址赋值给标号。 操作码是指令的功能部分,不能缺省 操作数是指令要操作的数据信息。根据指令的不

3、同功能,有3、2、1或0个操作数 注释可有可无,注释可便于阅读 例如“MOV A,#20H”,包含了两个操作数“A”和“#20H,MOV是操作码第3章C51单片机的指令系统与程序设计n3.1.2 指令分类及指令系统中使用的符号u C51指令系统有42种助记符,代表了33种功能,指令助记符与寻址方式相结合,构成111条指令。u按指令的功能,C51指令系统可分为下列5类:(1)数据传送类指令(29条)(2)算术运算类指令(24条)(3)逻辑运算及移位类指令(24条)(4)位操作类指令(17条)(5)控制转移类指令(17条)uC51指令系统中,一些符号的意义约定:。 Rn:R0R7,即n=07。第3

4、章C51单片机的指令系统与程序设计Ri:R0、R1,即i=0、1。Direct:8位内部RAM单元的地址,它可是一个内部数据区RAM单元(00H7FH)或特殊功能寄存器地址(I/O端口、控制寄存器、状态寄存器80HFFH)。#data:指令中的8位常数。#data16:指令中的16位常数。addr16:16位地址,用于LJMP、LCALL,可指向64KB程序存储器的地址空间。 addr11:11位地址,用于AJMP、ACALL指令。rel:8位带符号的偏移量字节,用于SJMP和所有条件转移指令中。偏移量相对于下一条指令的第一个字节计算,在-128+127范围内取值。 bit:内部数据 RAM

5、或特殊功能寄存器中的可直接寻址位。 DPTR:数据指针,可用作16位的地址寄存器。第3章C51单片机的指令系统与程序设计A:累加器。B:寄存器,用于MUL和DIV指令中。C:进位或借位位。:间接寄存器或基址寄存器的前缀,如Ri,DPTR。:位操作前缀,表示对该位取反。 (X):X中的内容。 (X):由X寻址的单元中的内容。 :箭头左边的内容被箭头右边的内容所替代。l3.2寻址方式与寻址空间 寻址方式指CPU指令系统中规定的寻找操作数所在地址的方式,通常所讨论的寻址方式指源操作数的寻址方式。 因为 1)源操作数的寻址方式比目的操作数的寻址方杂 2)目的操作数的地址一般都很明确。第3章C51单片机

6、的指令系统与程序设计C51单片机有七种寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、位寻址、基址寄存器加变址寄存器间接寻址、相对寻址。 (1)立即寻址指以立即数为操作数,因此由指令可直接知道操作数的具体数。注意:立即寻址没有寻址空间;立即数只能作为源操作数,不能作为目的操作数。MOV A,#52H ;A52H MOV DPTR,#5678H ;DPTR5678H第3章C51单片机的指令系统与程序设计(2)直接寻址指以直接地址为操作数,因此由指令可直接知道操作数所在的具体地址,可为字节地址也可为位地址。MOV A,52H ; 把片内 RAM字节地址52H单元的内容送累加器A中MOV

7、50H,60H ;把片内RAM字节地址60H单元的内容送到50H单元中INC DPTR ; 地址指针DPTR所指的地址自加1第3章C51单片机的指令系统与程序设计 在 C51单片机指令系统中,直接寻址方式可访问2种存储空间:内部数据存储器的低128个字节单元(00H7FH);80HFFH中的特殊功能寄存器。 注意:指令“MOV A,#52H”与“MOV A,52H”的区别,前者表示把立即数52H送到累加器A,后者表示把片内RAM字节地址为52H单元的内容送到累加器A,即#52H因为带“#”表示立即数,而52H因为无“#”表示地址。 (3)寄存器寻址是寄存器直接寻址的简称,指以寄存器的内容为操作

8、数,寄存器直接给出了操作数的数值。寄存器一般指累加器A和工作寄存器 R0R7。MOV A,Rn ;A(Rn)其中n的范围为07, MOV Rn,A ;Rn(A)MOV B,A ;B(A) 寄存器寻址只能使用当前寄存器组,因此指令中的寄存器名称只能是R0R7。第3章C51单片机的指令系统与程序设计 (4)寄存器间接寻址指以寄存器的内容作为操作数的地址,通过寄存器给出操作数的地址,即没有直接给出操作数的数值,只是间接给出操作数的数值。 寄存器间接寻址只能使用寄存器R0或Rl作为地址指针,来寻址内部RAM(00HFFH)中的数据。寄存器间接寻址也适用于访问外部RAM,可使用R0,Rl或DPTR作为地

9、址指针。寄存器间接寻址用符号“”表示 例1 MOV R0,#31H ;R031H MOV A, R0 ;A (R0) 这两条指令的功能是把R0所指出的内部RAM地址31H单元中的内容送累加器A。如果(31H)=20H,则指令的功能是将20H这个数送到累加器A。第3章C51单片机的指令系统与程序设计例 MOV DPTR,#3456H ; DPTR3456H MOVX A,DPTR ;A(DPTR) 这两条指令的功能是把数据指针DPTR所指的3456H外部数据存储器的内容传送给A,如果(3456H)=99H,指令运行后(A)=99H。第3章C51单片机的指令系统与程序设计(5)位寻址:位操作指令能

10、对内部RAM中的位寻址区(20H2FH)和某些有位地址的特殊功能寄存器进行位操作,实现位状态传送、状态控制、逻辑运算操作。例SETB TR0 ;TR01CLR 00H ;(00H)0MOV C,57H ;将 57H 位地址的内容传送到位C中 ANL C,5FH ;将 5FH 位状态与位C相与,结果放在C中(6)基址寄存器加变址寄存器间接寻址方式用于访问程序存储器中的数据表格,它以基址寄存器(DPTR或PC)的内容为基本地址,加上变址寄存器A的内容形成16位的地址,访问程序存储器中的数据表格。通常将基址寄存器加变址寄存器间接寻址简称为基址、变址寻址。第3章C51单片机的指令系统与程序设计例 MO

11、VC A,A+DPTR MOVC A,A+PC JMP DPTR第3章C51单片机的指令系统与程序设计 (7)相对寻址以程序计数器PC的当前值作为基地址,与指令中给出的相对偏移量rel进行相加,把所得之和作为程序的转移地址。这种寻址方式用于相对转移指令中,指令中的相对偏移量是一个8位带符号数,用补码表示。可正可负,转移的范围为-128+127。 例JZ LOOP DJNE R0,DISPLAY第3章C51单片机的指令系统与程序设计l3.3 指令系统n3.3.1 数据传送类指令 数据传送类指令是把源操作数传送到目的操作数。因此,执行完该指令后,源操作数保持不变,而目的操作数被源操作数所替代。数据

12、一般传送指令用助记符“MOV”表示。 其格式: MOV 目的操作数,源操作数。 源操作数可以是:A、Rn、direct、Ri、#data; 目的操作数可以是:A、Rn、direct、Ri。u以累加器A为目的操作数的内部数据传送指令例如:MOV A,#10H,该指令执行后,将立即数10H送入累加器A中。第3章C51单片机的指令系统与程序设计u数据传送到工作寄存器Rn指令 例如 MOV Rn,A ;Rn(A)u数据传送到内部RAM单元或特殊功能寄存器SFR的指令例如 MOV direct,Rn ;direct(Rn) MOV Ri,#data ;(Ri)datau累加器A与外部数据存储器间的传送指

13、令 例如 MOVX A,Ri ;A(Ri) MOVX DPTR,A ;(DPTR)Au程序存储器内容送累加器A指令 例如 MOVC A,A+PC MOVC A,A+DPTR第3章C51单片机的指令系统与程序设计u堆栈操作指令例如 PUSH direct POP directu字节交换指令数据交换主要是在内部RAM单元与累加器A之间进行,有字节和半字节两种交换。n3.3.2 算术运算类指令 算术运算类指令共有24条,包括加、减、乘、除4种基本算术运算指令 (1)加法指令u普通加法指令第3章C51单片机的指令系统与程序设计ADD A,Rn ;A(A)+(Rn) ADD A,direct ;A(A)

14、+(direct) 这组指令的功能是将累加器A的内容与源操作数相加,并将结果放在累加器A中u带进位加法指令ADDC A,Rn ;A(A)+(Rn)+(CY)ADDC A,direct ;A(A)+(direct)+(CY)u增量指令(加1指令) INC A ;A(A)+1 INC Rn ;Rn(Rn)+1 这组指令的功能是将指令中操作数的内容加1第3章C51单片机的指令系统与程序设计u十进制调整指令DA A 这条指令对累加器A参与的BCD码加法运算所获得的8位结果进行十进制调整,使累加器A中的内容调整为二位压缩型BCD码的数。(2)减法指令u 带进位减法指令SUBB A,Rn ;A(A)(Rn

15、)(CY) SUBB A,direct ;A(A)(direct)(CY)u减1指令DEC A ;A(A)1 DEC Rn ;Rn(Rn)1第3章C51单片机的指令系统与程序设计(3)乘法指令 MUL AB 这条指令的功能是将累加器A的内容与寄存器B的内容相乘,乘积的低8存放在累加器A中,高8位存放于寄存器B中,如果乘积超过FFH,则溢出标志OV置“1”,否则清“0”,进位标志CY总是被清“0”。(4)除法指令 DIV AB 这条指令的功能是将累加器A中的内容除以寄存器B中的8位无符号整数,所得商的整数部分放在累加器A中,余数部分放在寄存器B中,进借位标志CY和溢出标志OV 都为“0”第3章C

16、51单片机的指令系统与程序设计n3.3.3 逻辑运算类指令 逻辑运算指令共有24条,分为简单逻辑操作指令、逻辑与指令、逻辑或指令和逻辑异或指令。(1)简单逻辑操作指令CLR A ;累加器A的内容清“0”CPL A ;累加器A的内容按位取反RL A ;累加器A的内容向左循环移1位RLC A ;累加器A的内容带进位标志向左循环移1位RR A ;累加器A的内容向右循环移1位 RRC A ;累加器A的内容带进位标志向右循环移1位第3章C51单片机的指令系统与程序设计 循环左移指令示意图 循环右移指令示意图第3章C51单片机的指令系统与程序设计(2)逻辑与指令ANL A,Rn ;A(A)(Rn) ANL A,direct ;A(A)(direct) 这组指令的功能是将两个操作数的内容按位进行逻辑与操作,并将结果送回目的操作数的单元中。(3)逻辑或指令 ORL A,Rn ;A(A)(Rn) ORL A,direct ;A(A)(direct) 这组指令的功能是将两个操作数的内容按位进行逻辑或操作,并将结果送回目的操作数的单元中。(4)逻辑异或指令第3章C51单片机的指令系统与程序设计XRL A,R

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

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

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