MCS-51单片机指令周期表

合集下载

MCS-51单片机指令表

MCS-51单片机指令表

MCS-51单片机指令表序号__-__-__年__-__序号__-__附录1MCS-51单片机指令表数据传送类指令指令格式指令功能字节MOVA,RnRn内容传送到A1MOVA,direct 直接地址内容传送到A2MOVA,@Ri间接RAM单元内容送A1MOVA,#data立即数送到A2MOVRn,AA内容送到Rn1MOVRn,direct直接地址内容传送到Rn2MOVRn,#data立即数传送到Rn2MOVdirect,AA传送到直接地址2MOVdirect,RnRn传送到直接地址2MOVdirect2,直接地址传送到直接地址3direct1MOVdirect,@Ri间接RAM内容传送到直接地址2MOVdirect,#data立即数传送到直接地址3MOV@Ri,AA内容送间接RAM单元1MOV@Ri,direct直接地址传送到间接__@Ri,#data立即数传送到间接__CA,@A+DPTR代码字节送A(DPTR为基址)1MOVCA,@A+PC代码字节送A(PC为基址)1MOVXA,@Ri外部RAM(8地址)内容传送到A1MOVXA,@DPTR外部RAM内容(16地址)传送到A1__,#data1616位常数加载到数据指针1MOVX@Ri,AA内容传送到外部RAM(8地址)1MOVX@DPTR,AA内容传送到外部RAM(16地址)1PUSHdirect直接地址压入堆栈2POPdirect直接地址弹出堆栈2XCHA,RnRn内容和A交换1XCHA,direct直接地址和A交换2XCHA,@Ri间接RAM内容A交换1XCHDA,@Ri间接RAM内容和A交换低4位字1节算术运算类指令指令格式指令功能字节INCAA加11INCRnRn加11INCdirect直接地址加12INC@Ri间接RAM加11__数据指针加11DECAA减11DECRnRn减11DECdirect直接地址减12周期__-__-__-__1111周期__-____-__年__序号__-__-__年__-__DEC@Ri__DDA,RnADDA,directADDA,@RiADDA,#dataADDCA,RnADDCA,di rectADDCA,@RiADDCA,#dataSUBBA,RnSUBBA,directSUBBA,@RiSUBBA,#d ata间接RAM减1A和BRn相乘A除以BRnA十进制调整Rn与A求和直接地址与A求和间接RAM与A求和立即数与A求和Rn与A求和(带进位)直接地址与A求和(带进位)间接RAM与A求和(带进位)立即数与A 求和(带进位)A减去Rn(带借位)A减去直接地址(带借位)A减去间接RAM(带借位)A减去立即数(带借位)逻辑运算类指令指令格式指令功能ANLA,RnRn“与”到AANLA,direct直接地址“与”到AANLA,@Ri间接RAM“与”到AANLA,#data立即数“与”到AANLdirect,AA“与”到直接地址ANLdirect,#data立即数“与”到直接地址ORLA,RnRn“或”到AORLA,direct直接地址“或”到AORLA,@Ri间接RAM“或”到AORLA,#data 立即数“或”到AORLdirect,AA“或”到直接地址ORLdirect,#data立即数“或”到直接地址XRLA,RnRn“异或”到AXRLA,direct直接地址“异或”到AXRLA,@Ri间接RAM“异或”到AXRLA,#data立即数“异或”到AXRLdirect,AA“异或”到直接地址XRLdirect,#data立即数“异或”到直接地址CLRAA清零CPLAA求反RLAA循环左移RLCA带进位A循环左移RRAA循环右移RRCA带进位A 循环右移SWAPAA高、低4位交换1__-__-__字节__-__-__-__1__周期__-__-__-__1序号__-__-__-__7序号__-__-__-__7指令格式JMP@A+DPTRJZrelJNZrelCJNEA,direct,relCJNEA,#data,relCJNERn,#data,relCJNE@Ri,#data,relDJNZRn,relDJNZdirect,relNOPACALLadd11LCALLadd16__AJMPadd11LJMPadd16SJMPrel指令格式__bit__TBbit__bitANLC,bitANLC,/bitORLC,bitORLC,/bitMOVC,bitMOVbit,CJCrelJNCrelJBbit,relJNBbit,relJBCbit,rel 伪指令控制转移类指令指令功能相对DPTR的无条件间接转移A为0则转移A为1则转移比较直接地址和A,不相等转移比较立即数和A,不相等转移比较Rn和立即数,不相等转移字节__周期__-__-__2周期__-__-__2比较立即数和间接RAM,不相等转3移Rn减1,不为0则转移2直接地址减1,不为0则转移3空操作,用于短暂延时1绝对调用子程序2长调用子程序3从子程序返回1从中断服务子程序返回1无条件绝对转移2无条件长转移3无条件相对转移2 位操作指令指令功能字节清进位位1清直接寻址位2置位进位位1置位直接寻址位2取反进位位1取反直接寻址位2直接寻址位“与”到进位位2直接寻址位的反码“与”到进位位2直接寻址位“或”到进位位2直接寻址位的反码“或”到进位位2直接寻址位传送到进位位2进位位位传送到直接寻址2如果进位位为1则转移2如果进位位为0则转移2如果直接寻址位为1则转移3如果直接寻址位为0则转移3直接寻址位为1则转移并清除该3位指令中的符号标识__TEND$指明程序的开始位置定义数据表定义16位的地址表RnRi@Ri工作寄存器R0-R7工作寄存器R0和R1间接寻址的8位RAM单元地址(00H-FFH)8位常数16位目标地址,范围64KB11位目标地址,范围2KB8位偏移量,范围-128~+127片内RAM中的可寻址位和SFR的可寻址位直接地址,范围片内RAM单元(00H-7FH)和80H-FFH给一个表达式或一个字符串#data8起名给一个8位的内部RAM起名addr16给一个8位的外部RAM起名addr11给一个可位寻址的位单元起。

MCS-51单片机指令简表

MCS-51单片机指令简表
类 指 令
算 术 运 算 类 指 令
算 术 运 算 类 指 令
04 08~0F 05 __ 06~07 A3 14 18~1F 16~17 15 __ A4 84 D4 58~5F 56~57 54 __ 55 __ 52 __ 53 __ __ 48~4F 46~47 44 __ 45 __ 42 __ 43 __ __ 68~6F 66~67 64 __ 65 __ 62 __ 63 __ __ 23 33 03 13 F4 E4 A2 __ 92 __ C3 C2 __ B3 B2 __ D3 D2 __ 82 __ B0 __
高四位 ↓ → 低四位 0 1 0 1 NOP JBC bit,rel AJMP0 ACALL0
(反汇编)
2 LJMP addr16 LCALL addr16 RET RETI ORL dir,A
3 RR A RRC A RL A RLC A ORL dir,#data ANL dir,#data XRL dir,#data
INC A INC Rn INC direct INC @Ri INC DPTR DEC A DEC Rn DEC @Ri DEC direct MUL AB DIV AB DA A ANL A, Rn ANL A, @Ri ANL A, #data ANL A, direct ANL direct, A ANL direct, #data ORL A, Rn ORL A,@Ri ORL A,#data ORL A,direct ORL direct, A ORL direct,#data XRL A, Rn XRL A,@Ri XRL A,#data XRL A,direct XRL direct, A XRL direct,#data RL A RLC A RR A RRC A CPL A CLR A MOV MOV CLR CLR CPL CPL SETB SETB ANL ANL C,bit bit,C C bit C bit C bit C,bit C,/ bit

MCS-51指令系统

MCS-51指令系统
18
4、控制转移类指令(二)
无条件转移:(LJMP,AJMP,SJMP,JMP—4条) LJMP addr16 长跳转指令
——可在64K范围内跳转 AJMP addr11 绝对跳转指令
——可在指令所在的2K范围内跳转 SJMP rel 相对跳转指令
——可在当前PC-128与+127范围内跳转 JMP @A+DPTR 间接长跳转指令
1
累加器清零/取反操作 (CLR,CPL—2条)
CLR A —对累加器清零
1 Byte 1 Tm
CPL A ——对累加器按位取非 1 Byte 1 Tm 15
3、逻辑运算及移位类指令(三)
逻辑运算指令在程序中的应用(下面的例子认为Acc 的内容为9AH)
逻辑与ANL运算用于对某些位进行清0或者保留: 例: ANL A, #0FH; 则(A) = 0AH
位清零/置位指令(4条): CLR bit(或C) —— (bit或 C)“0” SETB bit(或C) —— (bit或 C)“1”
位逻辑与/或/非指令(6条): ANL C,bit(或/bit) ORL C,bit(或/bit) CPL bit (或 C) 注: “/bit”表示对bit位先取反然后再参加运算
带借位减法(SUBB):(A) ← (A)- (Cy)- (第二操作数)
10
2、算术运算类指令(三)
加1/减1操作: (INC,DEC—9条) INC, DEC与用加/减法指令做加1/减1 操作不 同之处在于INC、DEC不影响标志位。
单字节乘/除运算: (MUL,DIV—2条) 两个单字节数的乘/除法运算只在A与B之间 进行。 MUL AB: (A)与(B)相乘, 积为16位数,

第三章 MCS-51单片机的寻址方式和指令系统

第三章 MCS-51单片机的寻址方式和指令系统

由此可把数据传送指令分成三部分
(一)内部数据传送(通用传送指令)
1.以A为目的操作数
MOV A,Rn MOV A,@Ri ;A← (Rn) ;A←((Ri))
双字节
11101rrr 1110011i
MOV A,direct ;A←(direct) 11100101 direct
MOV A,#data ;A←#data 例: MOV A,@R1 若(R1)=20H,(20H)=62H 结果:(A)=62H 11100100 data
指令MOVC A,@A+DPTR;执 行示意图
结果:(ACC)=64H
六、相对寻址

以当前PC的内容为基准,加上指令给出的 偏移量(rel)形成新的PC值(转移地址) 的寻址方式。
转移地址=目的地址 =当前(PC)+rel
目的地址=PC当前值十rel 目的地址=转移指令的PC值+2(或3)十rel 目的地址=转移指令地址+转移指令字节数+rel
单周期:64 双周期:45 四周期:2
若fosc=12MHz, 大多指令执行 仅1μs
按照指令的功能分5大类
一、数据传送类指令(29条) 二、算术运算类指令(24条) 三、逻辑操作类指令(24条) 四、控制转移类指令(17条) 五、位操作类指令 (17条)
在描述指令系统的功能时,常用符号介绍:
@——间址符号,如@Ri,@DPTR 13. / ——位操作数的前缀,表示对该位操作 数取反,如/bit。 14. (×)——由×寻址的单元中的内容。 15. ((X))——由X的内容作为地址的存 储单元的内容。 16. ← ——箭头右边的内容取代箭头左边的 内容。
12.
一、数据传送类指令(29条)

MCS-51指令及编码表

MCS-51指令及编码表

机器周期数 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2
指令助记符 NOP AJMP LJMP RR INC INC INC INC INC INC INC INC INC INC INC INC JBC ACALL LCALL RRC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC EDC EDC JB
机器周期数 1 1 1 2 2 2 2 1 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 4 2 1 1 1 1 1 1 1 1 1 1 2 2 2
指令助记符 XRL XRL XRL JNZ ACALL ORL JMP MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV SJMP AJMP ANL MOVC DIV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV ACALL MOV
操作数 A,@R1 A,R0 A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 bit,rel code addr11 direct,A direct,#data A,#data A,direct A,@R0 A,@R1 A,R0 A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 bit,rel code addr11 direct,A direct,#data A,#data A,direct A,@R0 A,@R1 A,R0 A,R1 A,R2 A,R3 A,R4
6
续表 机器码 [H] DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF

51单片机的指令周期

51单片机的指令周期

51单片机的指令周期051芯片内部有一高增益反相放大器,用于构成振荡器,反向放大器输入端为XTAL1,输出端XTAL2。

在XTAL1和XTAL2两端跨接一个石英晶体及两个电容就构成了稳定自激振荡器,电容器C1和C2通常都取30pF左右,对振荡频率有微调作用。

振荡频率范围是1.212MHz。

8051也使用外部震荡脉冲信号,由XTAL2端引脚输入,XTAL1端接地,外部震荡脉冲源方式常用于多块8051同时工作,以便于同步。

晶体振荡器的振荡信号从XTAL2端输出到片内的时钟发生器上,时钟发生器是一个二分频触发电路,它将振荡器的信号频率fosc除以2,向CPU提供两相时钟信号P1和P2。

时钟信号的周期称为机器状态时间S,CPU就以两相时钟P1和P2为基本节拍指挥8051单片机各个部件协调地工作。

除时钟周期外,还有两个与时间有关的概念叫机器周期和指令周期。

计算机的一条指令由若干个字节组成。

执行一条指令需要多少时间则以机器周期为单位。

所谓一个机器周期就是指CPU访问存储器一次所需要的时间。

例如取指令,读存储器,写存储器等等。

MCS51的一个机器周期为12个振荡周期,分为六个S状态,S1S6.而每个状态又分为两拍,称为P1和P2。

因此,一个机器周期中的12个振荡周期表示为S1P1,S1P2,S2P1等直到S6P2.若采用6MHZ晶体振荡器,则每个机器周期恰为2us。

每条指令都由一个或几个机器周期组成。

在MCS51系统中,有单周期指令,双周期指令。

四周期指令只有乘,除两条指令。

指令的运算速度和它的机器周期直接相关,机器周期数较小则执行速度快。

在编程时要注意选用具有同样功能而机器周期数小的指令。

每一条指令的执行都可以包括取指和执行两个阶段。

在取指阶段,CPU从内部或者外部ROM中取出指令操作码及操作数,然后再执行这条指令。

在8051指令系统中,根据各种操作的繁简程度,其指令可由单字节,双字节和三字节组成。

从机器执行指令的速度看,单字节和双字节指令都可能是单周期或双周期,而三字节指令都是双周期,只有乘,除指令占四个周期,一条指令的字节数表征这条指令在存储器中所占空间大小,而周期数表征运行这条指令所花时间长短,即运行速度。

MCS-51单片机

MCS-51单片机
MCS-51单片机 原理及应用
电子科技大学物理电子学院 信息科学教研室 邓兴成
MCS-51单片机结构
CPU结构
1、算术逻辑单元ALU 完成加、减、乘、除,与、或、非、 异或等。最大指令执行周期为4机器周期。 2、定时控制部件 由定时控制逻辑、指令寄存器IR与振 荡器等组成。AT89S52的晶振频率最大为 36MHz。
相对寻址 SJMP rel;PC←PC+2+rel rel的取值范围:-128~+127 位寻址 MOV C,7FH;Cy←(7FH) MOV C,2FH.7 MOV C,ACC.1

数据传递指令
内部数据传送指令(15)

指令格式: MOV 目的地址,源地址 1、立即寻址 MOV A,#data MOV Rn,#data MOV @Ri,#data MOV direct,#data

PUSH POP direct 例:设(30H)=x和(40H)=y,试利用堆栈作为媒体编出 30H和40H单元中内容相交换的程序。 MOV SP, #70H PUSH 30H PUSH 40H POP 30H POP 40H 注意:堆栈操作是直接寻址指令。 PUSH ACC PUSH A PUSH 00H PUSH R0 POP ACC POP A POP 00H POP R0

例: 试分析8031/8051执行如下指令后累 加器A和PSW中各标志位的变化情况。 MOV A, #19H ADD A, #66H

例: 试分析8031/8051执行如下指令后累 加器A和PSW中各标志位的变化情况。 MOV A, #5AH ADD A, #6BH

例:已知:R1=32H,(30H)=AAH, (31H)=BBH,(32H)=CCH,试问如 下指令执行后,累加器A、50H、R6、32H 和P1口中的内容是什么? MOV A,30H MOV 50H,A MOV R6,31H MOV @R1,30H MOV P1,32H

补充知识_时钟周期、机器周期、指令周期

补充知识_时钟周期、机器周期、指令周期

• 89C51芯片内部有一个高增益反相放大器,用于 芯片内部有一个高增益反相放大器, 芯片内部有一个高增益反相放大器 构成振荡器。反相放大器的输入端为 构成振荡器。反相放大器的输入端为XTAL2,输 , 出端为XTAL1,两端跨接石英晶体及两个电容就 , 出端为 可以构成稳定的自激振荡器。电容器C1和C2通常 可以构成稳定的自激振荡器。电容器 和 通常 左右, 取30pF左右,可稳定频率并对振荡频率有微调作 左右 用。振荡脉冲频率范围为fOSC=0~24MHz。 振荡脉冲频率范围为 ~ 。 • 晶体振荡器的频率为 OSC,振荡信号从 晶体振荡器的频率为f 振荡信号从XTAL1端 端 输入到片内的时钟发生器上,如下图所示。 输入到片内的时钟发生器上,如下图所示。
• 指令周期: 执行一条指令所需要的时间,一般由若干 指令周期: 执行一条指令所需要的时间, 个机器周期组成。指令不同,所需的机器周期也不同。 个机器周期组成。指令不同,所需的机器周期也不同。 由于CPU内部的操作速度较快,而CPU访问一次内存 内部的操作速度较快, 由于 内部的操作速度较快 访问一次内存 所花的时间较长, 所花的时间较长,因此通常用内存中读取一个指令字 的最短时间来规定CPU周期。这就是说,一条指令的 周期。 的最短时间来规定 周期 这就是说, 取出阶段(通常称为取指)需要一个CPU周期。一般 周期。 取出阶段(通常称为取指)需要一个 周期 来说,取出和执行任何一条指令所需的最短时间为2个 来说,取出和执行任何一条指令所需的最短时间为 个 CPU周期。 周期。 周期 就是说,任何一条指令,它的指令周期至少需要2个 就是说,任何一条指令,它的指令周期至少需要 个 CPU周期,而复杂一些的指令周期,则需要更多的 周期, 周期 而复杂一些的指令周期, CPU周期。 周期。 周期 一个指令周期由1~ 个机器周期组成 个机器周期组成, 一个指令周期由 ~4个机器周期组成,依据指令不 同而不同。 同而不同。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MCS-51单片机指令周期表
mcs-51指令速查表
类别指令格式功能简述字节数周期MOV A,Rn寄存器送累加器11
MOV Rn,A累加器送寄存器11
MOV A,@Ri内部RAM单元送累加器11
MOV@Ri,A累加器送内部RAM单元11
MOV A,#data立即数送累加器21
MOV A,direct直接寻址单元送累加器21
MOV direct,A累加器送直接寻址单元21
MOV Rn,#data立即数送寄存器21
MOV direct,#data立即数送直接寻址单元32
MOV@Ri,#data立即数送内部RAM单元21
MOV direct,Rn寄存器送直接寻址单元22
数据传送类指令期
MOV Rn,direct直接寻址单元送寄存器22
MOV direct,@Ri内部RAM单元送直接寻址单元22
MOV@Ri,direct直接寻址单元送内部RAM单元22
MOV direct2,direct1直接寻址单元送直接寻址单元32
MOV DPTR,#data1616位立即数送数据指针32
MOVX A,@Ri外部RAM单元送累加器(8位地址)12
MOVX@Ri,A累加器送外部RAM单元(8位地址)12
MOVX A,@DPTR外部RAM单元送累加器(16位地址)12
MOVX@DPTR,A累加器送外部RAM单元(16位地址)12
MOVC A,@A+DPTR查表数据送累加器(DPTR为基址)12
MOVC A,@A+PC查表数据送累加器(PC为基址)12
XCH A,Rn累加器与寄存器交换11
算术运算类指令
XCH A,@Ri累加器与内部RAM单元交换11
XCHD A,direct累加器与直接寻址单元交换21
XCHD A,@Ri累加器与内部RAM单元低4位交换11
SWAP A累加器高4位与低4位交换11
POP direct栈顶弹出指令直接寻址单元22
PUSH direct直接寻址单元压入栈顶22
ADD A,Rn累加器加寄存器11
ADD A,@Ri累加器加内部RAM单元11
ADD A,direct累加器加直接寻址单元21
ADD A,#data累加器加立即数21
ADDC A,Rn累加器加寄存器和进位标志11
ADDC A,@Ri累加器加内部RAM单元和进位标志11
ADDC A,#data累加器加立即数和进位标志21
ADDC A,direct累加器加直接寻址单元和进位标志21
INC A累加器加111
INC Rn寄存器加111
INC direct直接寻址单元加121
INC@Ri内部RAM单元加111
INC DPTR数据指针加112
DA A十进制调整11
SUBB A,Rn累加器减寄存器和进位标志11
SUBB A,@Ri累加器减内部RAM单元和进位标志11
SUBB A,#data累加器减立即数和进位标志21
SUBB A,direct累加器减直接寻址单元和进位标志21
DEC A累加器减111
DEC Rn寄存器减111
DEC@Ri内部RAM单元减111
DEC direct直接寻址单元减121
MUL AB累加器乘寄存器B14
DIV AB累加器除以寄存器B14
ANL A,Rn累加器与寄存器11逻辑运算类指令
ANL A,@Ri累加器与内部RAM单元11
ANL A,#data累加器与立即数21
ANL A,direct累加器与直接寻址单元21
ANL direct,A直接寻址单元与累加器21
ANL direct,#data直接寻址单元与立即数31
ORL A,Rn累加器或寄存器11
ORL A,@Ri累加器或内部RAM单元11
ORL A,#data累加器或立即数21
ORL A,direct累加器或直接寻址单元21
ORL direct,A直接寻址单元或累加器21
ORL direct,#data直接寻址单元或立即数31
XRL A,Rn累加器异或寄存器11
XRL A,@Ri累加器异或内部RAM单元11
XRL A,#data累加器异或立即数21
XRL A,direct累加器异或直接寻址单元21
XRL direct,A直接寻址单元异或累加器21
XRL direct,#data直接寻址单元异或立即数32
RL A累加器左循环移位11
RLC A累加器连进位标志左循环移位11
RR A累加器右循环移位11
RRC A累加器连进位标志右循环移位11
CPL A累加器取反11
CLR A累加器清零11
ACCALL addr112KB范围内绝对调用22
AJMP addr112KB范围内绝对转移22
LCALL addr162KB范围内长调用32
LJMP addr162KB范围内长转移32
SJMP rel相对短转移22
JMP@A+DPTR相对长转移12
RET子程序返回12
RET1中断返回12控制转移类指令
JZ rel累加器为零转移22
JNZ rel累加器非零转移22
CJNE A,#data,rel累加器与立即数不等转移32
CJNE A,direct,rel累加器与直接寻址单元不等转移32
CJNE Rn,#data,rel寄存器与立即数不等转移32
CJNE@Ri,#data,rel RAM单元与立即数不等转移32
DJNZ Rn,rel寄存器减1不为零转移22
DJNZ direct,rel直接寻址单元减1不为零转移32
NOP空操作11
MOV C,bit直接寻址位送C21
MOV bit,C C送直接寻址位21
CLR C C清零11
CLR bit直接寻址位清零21
CPL C C取反11
CPL bit直接寻址位取反21
SETB C C置位11
SETB bit直接寻址位置位21布尔操作类指令
ANL C,bit C逻辑与直接寻址位22
ANL C,/bit C逻辑与直接寻址位的反22
ORL C,bit C逻辑或直接寻址位22
ORL C,/bit C逻辑或直接寻址位的反22
JC rel C为1转移22
JNC rel C为零转移22
JB bit,rel直接寻址位为1转移32
JNB bit,rel直接寻址为0转移32
JBC bit,rel直接寻址位为1转移并清该位32。

相关文档
最新文档