第2章单片机指令篇.docx

上传人:b****7 文档编号:25259491 上传时间:2023-06-06 格式:DOCX 页数:13 大小:18.31KB
下载 相关 举报
第2章单片机指令篇.docx_第1页
第1页 / 共13页
第2章单片机指令篇.docx_第2页
第2页 / 共13页
第2章单片机指令篇.docx_第3页
第3页 / 共13页
第2章单片机指令篇.docx_第4页
第4页 / 共13页
第2章单片机指令篇.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

第2章单片机指令篇.docx

《第2章单片机指令篇.docx》由会员分享,可在线阅读,更多相关《第2章单片机指令篇.docx(13页珍藏版)》请在冰豆网上搜索。

第2章单片机指令篇.docx

第2章单片机指令篇

第二章

MCS_51指令系统

2.1.2寻址方式

关键:

有几个放数的地方?

如何找到数,数送到什么地方去?

数字量0和1与模拟量0伏和5伏的关系。

1.寄存器寻址方式MOVA,R0

2.直接寻址方式MOVA,30H

3.寄存器间接寻址方式MOVA,@R0

4.立即寻址方式MOVA,#30H

5.位寻址方式ANLC,30H

6.变址寻址方式MOVCA,@A+DPTR

MOVCA,@A+PC

JMPA,@A+DPTR

7.相对寻址方式SJMPrel

2.2数据传送指令

2.2.1内部RAM数据传送指令组

1.立即数传送指令

MOVA,#data

MOVdirect,#data

MOVRn,#data

MOV@Ri,#data

MOVDPTR,#data16

2.内部RAM之间的数据传送指令

MOVdirect2,direct1

MOVdirect,Rn

MOVRn,direct

MOVdirect,@Ri

MOV@Ri,direct

3.累加器的数据传送指令

MOVA,Rn

MOVRn,A

MOVA,direct

MOVdirect,A

MOVA,@Ri

MOV@Ri,A

2.2.2外部RAM数据传送指令组

对外部RAM只能使用间接寻址方法,分别使用DPTR和Ri作间址寄存器

1.使用DPTR进行间接寻址

MOVXA,@DPTR

MOVX@DPTR,A

2.使用Ri进行间接寻址

MOVXA,@Ri

MOVX@Ri,A

2.2.3程序存储器数据传送指令组

MOVCA,@A+DPTR

MOVCA,@A+PC

寻址范围64KB

2.2.4数据交换指令组

数据交换指令主要是在内部RAM单元与累加器A这之间进行,有整字节和半字节交换

1.整字节交换指令

XCHA,Rn

XCHA,direct

XCHA,@Ri

2.半字节交换指令

XCHDA,@Ri

例:

已知:

(R0)=20H,(A)=3fH,(20)=75H

求:

XCHDA,@R0后结果

结果是:

(R0)=20H,(A)=35H,(20)=7fH

3.高低半字节交换指令

SWAPA

2.2.5堆栈操作指令组

PUSHdirect;低128单元或专用寄存器

POPdirect;

2.3算术运算指令

2.3.1加法指令组

ADDA,Rn

ADDA,direct

ADDA,@Rn

ADDA,#data

2.3.2带进位加法指令组

ADDCA,Rn

ADDCA,direct

ADDCA,@Rn

ADDCA,#data

例:

三字节无符号数相加,被加数放在20H~22H单元,加数放在内部RAM中2AH~2CH

程序如下:

MOVR0,#20H

MOVR1,#2AH

MOVR7,#03H

CLRC

LOOP:

MOVA,@R0

ADDCA,@R1

MOV@R0,A

INCR0

INCR1

DJNZR7,LOOP

CLRA

ADDCA,#00H

MOV@R0,A

2.3.3带进位减法指令组

SUBBA,Rn

SUBBA,direct

SUBBA,@Rn

SUBBA,#data

2.3.4加1指令组

INCA

INCRn

INCdirect

INC@Ri

INCDPTR

减1指令组

DECA

DECRn

DECdirect

DEC@Ri

注:

没有DPTR减1指令组

2.3.6乘法指令

MULAB

两个无符号8位数相乘,16位积低8位放在A中,高8位放B中

除法指令

DIVAB

两个无符号8位数相除,被除数放在A中,除数放B中

运算后,商放在A中,余数放B中

2.3.7十进制调整指令

DAA

对BCD码十进制数加法运算的结果进行修正。

2.4逻辑运算及移位类指令

2.4.1与运算指令组

ANLA,Rn

ANLA,direct

ANLA,@Ri

ANLA,#data

ANLdirect,A

ANLdirect,#data

2.4.2或运算指令组

ORLA,Rn

ORLA,direct

ORLA,@Ri

ORLA,#data

ORLdirect,A

ORLdirect,#data

例:

将累加器A的低4位送P1口的低4位,但P1口的高4位需保持不变。

MOVR0,A;A内容暂存R0

ANLA,#0FH;屏蔽A的高4位,低4位不变

ANLP1,#0FOH;屏蔽P1口的低4位,高4位不变

ORLP1,A;实现低4位的传送

MOVA,R0;恢复A的内容

2.4.3异或运算指令组

XRLA,Rn

XRLA,direct

XRLA,@Ri

XRLA,#data

XRLdirect,A

XRLdirect,#data

2.4.4累加器清0指令

CLRA

累加器取反指令

CPLA

2.4.5移位指令组

RLA;循环左移

RRA;循环右移

RLCA;带进位循环左移

RRCA;带进位循环右移

2.5控制转移指令

2.5.1无条件转移指令组

1.长转移指令LJMPaddr16

2.绝对转移指令AJMPaddr11

3.短转移指令SJMPrel

4.变址寻址转移指令JMP@A+DPTR

2.5.2条件转移指令组

1.累加器判零转移指令

JZrel

JNZrel

2.数值比较转移指令

CJNEA,#data,rel

CJNEA,direct,rel

CJNERn,#data,rel

CJNE@Ri,#data,rel

3.条件转移指令

DJNZRn,rel

DJNZdirect,rel

2.5.3子程序的调用与返回指令组

1.子程序的概念

2.子程序调用指令

ACALLaddr11

LCALLaddr16

3.返回指令

RET;子程序返回指令

RETI;中断服务子程序返回指令

2.5.4空操作指令NOP

2.6布尔变量操作类指令

出于控制应用的需要,MCS-51具有较强的布尔变量处理能力。

所谓布尔变量也即开关变量,以位(bit)为单位进行运算和操作。

在硬件方面,为了实现布尔变量处理,8051有一个布尔处理机,所谓布尔处理机实际上就是一位的微处理机,它以进位标志作为累加位,以内部RAM位寻址区的128个可寻址位作为存储位。

在软件方面,8051的指令系统中有一个进行布尔变量操作的指令子集,可以进行布尔变量的传送、运算及控制转移等操作。

这些指令通常称之为位操作指令,也就是本节所称的布尔变量操作指令。

2。

6。

1位传送指令组

位传送操作就是可寻址位与累加位CY之间的相互传送,共有两条指令:

MOVC,bit;CY=BIT

MOVbit,C;BIT=CY

指令中的C就是CY。

由于没有两个可寻址位之间的传送指令,因此它们之间无法实现直

接传送。

如需要这种传送,应使用这两条指令以CY作中介实现之。

例如将20H位的内容传送

5A位。

MOV10H,C;暂存CY内容

MOVC,20H;20H位送CY

MOV5AH,C;CY送5AH位

MOVC,10H;恢复CY内容

2.6.2位置位复位指令组

指令对CY及可寻址位进行置位或复位操作。

共有四条指令:

CLRC;CY=0

CLRbit;bit=0

SETBC;CY=1

SETBbit;bit=1

2.6.3位运算指令组

位运算都是逻辑运算,有与、或、非三种,共六条指令。

ANLC,bit

ANLC,/bit

ORLC,bit

ORLC,/bit

CPLC

CPLbit

布尔变量操作指令中,没有位的异或运算,如需要时可由多条上述位操作指令实现。

例如E、B、D代表位地址,进行E、B内容的异或操作,即D=EB+EB。

MOVC,B

ANLC,/E

MOVD,C

MOVC,E

ANLC,/B

ORLC,D

MOVD,C;异或结果送D位

通过位逻辑运算,可以对各种组合逻辑电路进行模拟,即用软件方法来获得组合电路的逻辑功能。

2.6.4位控制转移指令组

位控制转移指令就是以位的状态作为实现程序转移的判断条件。

对这些指令分别说明:

1.以C状态为条件的转移

共两条指令:

JCrel

JNCrel

2.以住状态为条件的转移指令

共三条指令:

JBbit,rel;位状态为1转移

JNBbit,rel;位状态为0转移

JBCbit,rel;位状态为1转移,并使该位清0

练习题

1.什么是指令系统、机器语言和汇编语言?

2.在单片机应用中广泛使用何种语言?

它们能直接执行吗?

为什么?

3.简述MCS-51指令的格式。

4.简述MCS-51的指令寻址方式。

5.如若访问专用寄存器,可使用那些寻址方式?

6.如若访问外部RAM单元,可使用那些些寻址方式?

7.如若访问内部RAM单元,可使用那些寻址方式?

8.如若访问内外程序存储器,可使用那些寻址方式?

9.说明十进制调整的原因和方法。

10.说明MCS-51的布尔处理机功能。

11.试分析以下程序段的执行结果

MOVSP,#3AH

MOVA,#20H

MOVB,#30H

PUSHACC

PUSHB

POPACC

POPB

12.已知(A)=7AH,(R0)=30H,(30H)=A5H,(PSW)=80H,请填写各条指令的执行结果。

(1)XCHA,R0

(3)XCHA,30H

(4)XCHDA,@R0

(5)SWAPA

(6)ADDA,R0

(7)ADDA,30H

(8)ADDA,#30H

(9)ADDCA,30H

(10)SUBBA,30H

(11)SUBBA,#30H

13.已知(30H)=40H,(40H)=10H,(10H)=00H,(Pl)=CAH,请写出执行以下程序段后各有关单元的内容。

MOVR0,#30H

MOVA,@R0

MOVR1,A

MOVB,@R1

MOV@R1,P1

MOVP2,P1`

MOV10H,#20H

MOV30H,10H

14.已知(A)=83H,(R0)=17H,(17H)=34H,请写出执行完下列程序段后A的内容。

ANLA,#17H

ORLI7H,A

XRLA,@R0

CPLA

15.阅读下列程序说明其功能

MOVR0,#30H

MOVA,@R0

RLA

MOVR1,A

RLA

RLA

ADDA,RI

MOV@RO,A

功能是:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1