MCS-51单片机指令周期表
- 格式:pdf
- 大小:107.51 KB
- 文档页数:3
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给一个可位寻址的位单元起。
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系列单片机指令大全以字母的顺序排列(A--Z)A:--------------------------------------------------------------------1、ACALL addr11指令名称:绝对调用指令指令代码:指令功能:构造目的地址,进行子程序调用其方法是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不变。
操作内容:PC←(PC)+2SP←(SP)+1(SP)←(PC)7~0SP←(SP)+1(SP)←(PC)15~8PC10~0←addr l0~0字节数:2机器周期:2使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。
2、ADD A,Rn指令名称:寄存器加法指令指令代码:28H~2FH指令功能:累加器内容与寄存器内容相加操作内容:A←(A)+(R n),n=0~7字节数:1机器周期;1影响标志位:C,AC,OV3、ADD A,direct指令名称:直接寻址加法指令指令代码:25H指令功能:累加器内容与内部RAM单元或专用寄存器内容相加操作内容:A←(A)+(direct)字节数:2机器周期:1影响标志位:C,AC,OV4、ADD A,@Ri ’指令名称:间接寻址加法指令指令代码:26H~27H指令功能:累加器内容与内部RAM低128单元内容相加操作内容:A←(A)+((Ri)),i=0,1字节数:1机器周期:1影响标志位:C,AC,OV5、ADD A,#data指令名称:立即数加法指令指令代码:24H指令功能:累加器内容与立即数相加操作内容:A←(A)+data字节数:2机器周期:1影响标志位:C,AC,OV6、ADDC A,Rn指令名称:寄存器带进位加法指令指令代码:38H~3FH指令功能:累加器内容、寄存器内容和进位位相加操作内容:A←(A)+(Rn)+(C),n=0~7字节数:1机器周期:1影响标志位:C,AC,OV7、ADDC A,direct指令名称:直接寻址带进位加法指令指令代码:35H指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加操作内容:A←(A)+(direct)+(C)字节数:2机器周期:1影响标志位:C,AC,OV8、ADDC A,@Ri指令名称:间接寻址带进位加法指令指令代码:36H~37H指令功能:累加器内容、内部RAM低128单元内容及进位位相加操作内容:A←(A)+((Ri))+(C),i=0,1字节数:1机器周期:1影响标志位:C,AC,OV9、ADDC A,#data指令名称:立即数带进位加法指令指令代码:34H指令功能:累加器内容、立即数及进位位相加操作内容:A←(A)+dat a+(C)字节数:2机器周期:1影响标志位:C,AC,OV10、AJMP addr11指令名称:绝对转移指令指令代码:指令功能:构造目的地址,实现程序转移。
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。