MCS-51系列单片机的

上传人:woxinch****an2018 文档编号:56880034 上传时间:2018-10-16 格式:PPT 页数:19 大小:357.50KB
返回 下载 相关 举报
MCS-51系列单片机的_第1页
第1页 / 共19页
MCS-51系列单片机的_第2页
第2页 / 共19页
MCS-51系列单片机的_第3页
第3页 / 共19页
MCS-51系列单片机的_第4页
第4页 / 共19页
MCS-51系列单片机的_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《MCS-51系列单片机的》由会员分享,可在线阅读,更多相关《MCS-51系列单片机的(19页珍藏版)》请在金锄头文库上搜索。

1、,第二章,MCS-51系列单片机的 指令系统及汇编语言程序设计,本章要点,MCS-51单片机的7种寻址方式MCS-51单片机的指令系统汇编语言的基本格式 程序结构及其设计方法 典型应用程序的设计,2.1 指令格式与寻址方式 2.1.1 指令格式 2.1.2 MCS-51单片机指令中常用符号含义 2.1.3 MCS-51单片机的寻址方式,MCS-51单片机汇编语言指令格式为:,2.1.1 指令格式,MCS-51单片机汇编语言指令由以下几个部分组成:标号 操作码 操作数或操作数地址 注释,标号 标号是程序员根据编程需要, 给指令设定的符号地址,可有可无; 标号由18个字符组成,第一个字符必须是英文

2、字母,不能是数字或其它符号; 标号后必须用冒号; 在程序中,不可以重复使用。操作码 操作码表示指令的操作种类,规定了指令的具体操作。 比如:ADD(加操作),MOV (数据的传送操作)。,操作数或操作数地址操作数或操作数地址表示参加运算的数据或数据的地址。操作数和操作码之间必须用空格分开,有两个以上操作数的操作数之间用逗号分隔。操作数一般有以下几种形式: 没有操作数项,操作数隐含在操作码中,如RET指令; 只有一个操作数,如CPL A指令; 有两个操作数,如MOV A, #00H指令,操作数之间以逗号相隔; 有三个操作数,如CJNE A, #00H, NEXT指令,操作数之间也以逗号相隔。注释

3、 注释是对指令的解释说明,用以提高程序的可读性;注释前必须 以“;”和指令分开,注释在每条指令后都可以设有。,Rn 当前工作寄存器中的某一个,即R0R7; Ri R0或者R1 Direct 单片机内部RAM低128字节(00h7fh)中的某个字节地址, 或者是某个专用寄存器的名字; #data 8位(1字节)立即数 #data16 16位(2字节)的立即数 Addr16 16位目的地址,在LJMP和LCALL的指令中采用 Addr11 11位目的地址,只在AJMP和ACALL指令中采用 Rel 相对转移指令中的偏移量。 DPTR 数据指针(由DPH和DPL构成) Bit 内部RAM(包括专用寄

4、存器)中可寻址位的地址或名字,2.1.2 指令中符号的意义说明,A 累加器ACC B B寄存器 间接寻址标志/ 加在位地址前,表示对该位状态取反 (X) 某寄存器或某单元的内容 (X) 由X间接寻址的单元中的内容,操作数是指令的重要组成部分,指出了参与操作的数据或数据的地址。寻找操作数地址的方式称为寻址方式。一条指令采用什么样的寻址方式,是由指令的功能决定的。寻址方式越多,指令功能就越强。MCS-51指令系统共使用了7种寻址方式,包括寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。 MCS-51有7种不同的寻址方式: 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址

5、 位寻址 变址寻址 相对寻址,2.1.3 MCS-51单片机的寻址方式,MOV A,#40H;将40H这个立即数传送给累加器ACC,“#”符号称为立即数符号,40H在这里称为立即数。 立即数寻址是指将操作数直接写在指令中。 比如: MOV DPTR,#6789H MOV R0,#23H,A,XX,40H,1、立即寻址,直接寻址是指把存放操作数的内存单元的地址直接写在指令中。在MCS-51单片机中,可以直接寻址的存储器主要有内部RAM区和特殊功能寄存器SFR区。 MOV A,30H;将内部RAM30H单元内的数传送给累加器ACC。 MOV TMOD,#20h ;TMOD定时器方式控制寄存器,属于

6、SFR ADD A,30H ;片内RAM30H单元的数据加到累加器ACC INC 70H ;片内RAM70H单元的数据加1 MOV 30H,70H ;片内RAM70H单元的数据传送到30H单元。 DEC 50H ;片内RAM50H单元的数据减1例如:MOV A,30H ;假如(30H)=55H,30H,XX,A,55H,2、直接寻址,寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR等。MOV A,R0 数据存放在R0R7中的某个通用寄存器内,或者放在某个专用寄存器中。 e.g.: MOV A,R7ADD A,R0,3、寄存器寻址,操

7、作过程:MOV A,R0;设R0的值为40H,R0,A,XX,40H,4、寄存器间接寻址 在51单片机中有两个寄存器可以用于间接寻址,它们是R0和R1。当指向片外的64KB的RAM地址空间时,可用DPTR作间接寄存器。 MOV A, R0 假如R0寄存器中的数据是50H,则以上指令的意思是:将内部RAM中50H单元内的数传送给累加器ACC。 e.g.假如R1内的数是70H,在内部RAM的70H单元中存放的数据是00H,在执行以下指令后,外部RAM中3FFFH单元的内容是00H。 MOV A,R1 MOV DPTR,#3FFFH MOVX DPTR,A,以R0作为间址寄存器方式:MOV A ,

8、R0,以DPTR作为间址寄存器方式:,MOV DPTR,#3FFFH MOVX A, DPTR,5、位寻址,当单片机要进行某一位二进制数操作时,可采用位寻址。 E.g. :SETB C 指令含义:将专用寄存器PSW中的CY位置为1。 CLR P1.0;将单片机的P1.0清“0”。 SETB P1.0;将单片机的P1.0置“1”。,6、变址寻址,E.G. :MOVC A,A+DPTR 指令含义:假设在执行指令前,数据指针DPTR中的数据是1000H,累加器ACC中的数据是50H,则上述指令执行的操作是将:程序存储器1050H单元中的数据传送给累加器ACC。 同样寻址方式的指令还有两条: MOVC

9、 A,A+PC JMP A+DPTR 该类指令常用于编写查表程序。,指令:MOVC A,A+DPTR 工作过程:,7、相对寻址,在跳转程序中有一种相对寻址方式,程序的书写方式是: SJMP rel 程序含义:当程序执行到上述语句时,在当前语句位置的基础上向前或向后跳转rel中指明的位置。 范例 JZ rel CJNE A, #DATA , rel DJNZ R0,rel,思考题:,结合教材的附录的指令表,观察以下几条指令,看看是否有语法错误,如有错,请改正。如无,请说明它属于哪种寻址方式。 MOV A,C MOV C,R0 MOVC A,A+R0 MOV A,R2 CJNE A,B,0FFFFH MOV A, Ri MOV R8,00H MOV #1FH,A MOVX A,R0 MOV R1,R6,

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

当前位置:首页 > 中学教育 > 高中教育

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