C51单片机指令集大全

合集下载

C51指令集

C51指令集

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

【原创】C51指令

【原创】C51指令

算术运算:共7种运算+ 加- 减* 乘/ 除(取整数)++ 递加(加1)-- 递减(减1)% 除(取佘数)关系运算符:共6种(成立1、不成立0)判断数> 大于> = 大于或等于< 小于< = 小于或等于== 等于!= 不等于逻辑运算:共3种(成立1、不成立0)判断语句&& 与||或!非位逻辑运算符:共6种运算& 与|或^ 异或~ 非>> 右移<< 左移条件控制指令:共5种循环:for while do- while条件:单:if-else 多:switch-case(default 都不对时用)跳离本次循环:continue 跳离循环:break 子程序返回值:return 指针运算符:共2种& 获取地址* 获取内容优先次序:由上至下、由左至右注:程序中括号里的优先级最高,相同的优先级由左至右运算。

char:存放字符数据格式,代表存放8位数。

int:存放整数的数据格式,代表存放16位数。

float:存放浮点数的数据格式,代表存放32位数。

double:存放双位精度浮点数的数据格式,代表存放32位数。

signed:带符号。

unsigned:不带符号。

short:短,未加入short的变量为short。

long:长,其数据长度为原数据格式的2倍。

IE:中断触发控制寄存器(0:禁止 1:允许)默认优先级:低高总串行定/计1 外1 定/计0 外0 IP:中断优先级控制寄存器(0:低 1:高)默认优先级:低高串行定/计1 外1 定/计0 外0 TCON:定时/计数器控制寄存器TF1 TF0:定时/计数器溢出标志位,溢出时为1,执行中断时为0。

√TR1 TR0:软件设定,等于1时启动定时/计数器,等于0时停止。

IE1 IE0:外部中断触发时变为1,执行中断时变为0。

√IT1 IT0:外部中断触发方式,为0低电平中断,为1下降沿中断。

C51单片机指令集大全

C51单片机指令集大全

精心整理格式功能简述字节数周期一、数据传送类指令MOVA,Rn寄存器送累加器11MOVRn,A累加器送寄存器11MOVA,@Ri内部RAM单元送累加器11MOVXA,@DPTR外部RAM单元送累加器(16位地址)12MOVX@DPTR,A累加器送外部RAM单元(16位地址)12MOVCA,@A+DPTR查表数据送累加器(DPTR为基址)12MOVCA,@A+PC查表数据送累加器(PC为基址)12XCHA,Rn累加器与寄存器交换11XCHA,@Ri累加器与内部RAM单元交换11XCHDA,direct累加器与直接寻址单元交换21 XCHDA,@Ri累加器与内部RAM单元低4位交换11 SWAPA累加器高4位与低4位交换11POPdirect栈顶弹出指令直接寻址单元22 PUSHdirect直接寻址单元压入栈顶22二、算术运算类指令SUBBA,@Ri累加器减内部RAM单元和进位标志11 SUBBA,#data累加器减立即数和进位标志21 SUBBA,direct累加器减直接寻址单元和进位标志21 DECA累加器减111DECRn寄存器减111DEC@Ri内部RAM单元减111DECdirect直接寻址单元减121MULAB累加器乘寄存器B14DIVAB累加器除以寄存器B14三、逻辑运算类指令ANLA,Rn累加器与寄存器11ANLA,@Ri累加器与内部RAM单元11XRLdirect,#data直接寻址单元异或立即数32 RLA累加器左循环移位11RLCA累加器连进位标志左循环移位11RRA累加器右循环移位11RRCA累加器连进位标志右循环移位11CPLA累加器取反11CLRA累加器清零11四、控制转移类指令类ACCALLaddr112KB范围内绝对调用22 AJMPaddr112KB范围内绝对转移22 LCALLaddr162KB范围内长调用32 LJMPaddr162KB范围内长转移32MOVbit,CC送直接寻址位21 CLRCC清零11CLRbit直接寻址位清零21CPLCC取反11CPLbit直接寻址位取反21 SETBCC置位11SETBbit直接寻址位置位21ANLC,bitC逻辑与直接寻址位22ANLC,/bitC逻辑与直接寻址位的反22ORLC,bitC逻辑或直接寻址位22ORLC,/bitC逻辑或直接寻址位的反22JCrelC为1转移22MOVA,#0FFHMOVP1,#0FFH;开始时全灭;-------------------------------逐个点亮MOVR2,#8LOOP1:CLRCRLCAMOVP1,ACALLDL500MSDJNZR2,LOOP1CALLDL500MS;0.5sDJNZR2,LOOP3;------------------------------- DJNZR3,LOOP0MOVP1,#01001001B;5、显示为01001001 CALLDL500MSCALLDL500MS;共1sSJMP0000H;重新开始N遍;-------------------------------延时子程序。

c51单片机c语言常用指令 -回复

c51单片机c语言常用指令 -回复

c51单片机c语言常用指令-回复C51单片机C语言常用指令导语:C51单片机是一种非常常用的微控制器,它广泛应用于许多嵌入式系统和电子设备中。

在单片机的开发过程中,C语言是一种非常常用的编程语言。

本文将介绍C51单片机常用的指令,帮助读者了解这些指令的功能和使用方法。

第一部分:常用的I/O口控制指令I/O口控制指令是C51单片机中非常重要的一部分,因为它们用于控制单片机与外部设备之间的数据交互。

以下是一些常用的I/O口控制指令:- P0:将P0口设置为输入或输出,可以用于与外部设备进行数据通信。

- P1:将P1口设置为输入或输出,可以用于与外部设备进行数据通信。

- P2:将P2口设置为输入或输出,可以用于与外部设备进行数据通信。

- P3:将P3口设置为输入或输出,可以用于与外部设备进行数据通信。

第二部分:常用的中断控制指令中断是C51单片机中实现实时响应的重要机制之一。

以下是一些常用的中断控制指令:- EA:使能所有中断。

- EX0:外部中断0的控制指令,用于外部设备产生中断信号。

- EX1:外部中断1的控制指令,用于外部设备产生中断信号。

- IT0:外部中断0的触发方式,可以设置为电平触发或边沿触发。

- IT1:外部中断1的触发方式,可以设置为电平触发或边沿触发。

第三部分:常用的定时器控制指令定时器是C51单片机中实现时间计数和定时任务的重要模块。

以下是一些常用的定时器控制指令:- TMOD:设置定时器模式,可以选择定时器0/1的工作模式。

- TL0、TL1:定时器0/1的低8位计数器,用于保存定时值的低8位。

- TH0、TH1:定时器0/1的高8位计数器,用于保存定时值的高8位。

- TR0、TR1:定时器0/1的运行控制位,用于启动和停止计时器。

- TF0、TF1:定时器0/1的溢出标志位,用于判断定时器是否溢出。

第四部分:常用的串口通信指令串口通信是C51单片机中常用的通信方式之一,用于与其他设备进行数据交互。

C51单片机汇编语言指令集

C51单片机汇编语言指令集

C51单片机汇编语言指令集
51汇编语言指令集符号定义表
指令介绍
CY(PSW.7)——进位标志位。

AC(PSW.6)——辅助进位(或称半进位)标志。

F0(PSW.5)——由用户定义的标志位。

RS1(PSW.4)、RS0(PSW.3)——工作寄存器组选择位。

OV(PSW.2)——溢出标志位。

由硬件置位或清零。

PSW.1——未定义位。

P(PSW.0)——奇偶标志位。

位寻址区
20H~2FH单元是位寻址区。

这16个单元(共计16×8=128位)的每一位都赋予了一个位地址,位地址范围为00H~7FH。

位寻址区的每一位都可当作软件触发器,由程序直接进行位处理。

通常可以
把各种程序状态标志、位控制变量存于位寻址区内。

C51(8051)指令集

C51(8051)指令集
51汇编语言指令集
符号定义表
序 号 1 2 3 4 5 6 7 8 9 符号 Rn Direct @Ri #data #data16 Addr16 Addr11 Rel bit 含义 R0~R7寄存器n=0~7 直接地址,内部数据区的地址RAM(00H~7FH) SFR(80H~FFH) B,ACC,PSW,IP,P3,IE,P2,SCON,P1,TCON,P0 间接地址Ri=R0或R1 8051/31RAM地址(00H~7FH) 8052/32RAM地址(00H~FFH) 8位常数 16位常数 16位的目标地址 11位的目标地址 相关地址 内部数据RAM(20H~2FH)、特殊功能寄存器的直接地址的位
指令介绍
算术运算指令
1 ADD A,Rn 1 1 2 ADD A,direct 2 1 3 ADD A,@Ri 1 1 4 ADD A,#data 2 1 5 ADDC A,Rn 1 1 6 ADDC A,direct 2 1 7 ADDC A,@Ri 1 1 8 ADDC A,#data 2 1 9 SUBB A,Rn 1 1 10 SUBB A,direct 2 1 11 SUBB A,@Ri 1 1 12 SUBB A,0data 2 1 13 INC A 1 1 14 INC Rn 1 1 15 INC direct 2 1 16 INC @Ri 1 1 17 INC DPTR 1 1 说明:将16位的DPTR加1,当DPTR的低字节(DPL)从FFH溢出至00H时,会使高字节(DPH)加1,不影响任何标志位 18 DEC A 1 1 19 DEC Rn 1 1 20 DEC direct 2 1 21 DEC @Ri 1 1 22 MUL AB 1 4 说明:将累加器A和寄存器B内的无符号整数相乘,产生16位的积,低位字节存入A,高位字节存入B寄存器。如果积大于FFH,则溢出标志位(OV)被设定为1,而进 位标志位为0 23 DIV AB 1 4 说明:无符号的除法运算,将累加器A除以B寄存器的值,商存入A,余数存入B。执行本指令后,进位位(C)及溢出位(OV)被清除为0 24 DA A 1 1 序 指令 号 字节 周期

51单片机指令表汇总

51单片机指令表汇总

51单片机指令表汇总51 单片机是一种广泛应用于电子工程和嵌入式系统开发的微控制器。

要熟练掌握 51 单片机的编程,了解其指令表是至关重要的。

下面就为大家汇总一下 51 单片机的常见指令。

数据传送类指令MOV 指令:这是最基本的数据传送指令,用于在寄存器之间、寄存器与存储器之间传送数据。

例如,“MOV A, 50H”就是将立即数 50H传送到累加器 A 中。

MOVX 指令:用于在片外数据存储器和累加器 A 之间进行数据传送。

比如“MOVX A, @DPTR”,将片外数据存储器中由数据指针 DPTR 所指定单元的内容传送到累加器 A 中。

MOVC 指令:用于访问程序存储器中的数据表格。

“MOVC A, @A+DPTR”是常见的用法。

算术运算类指令ADD 指令:实现加法运算。

像“ADD A, R0”就是将累加器 A 的内容和寄存器 R0 的内容相加,结果存放在累加器 A 中。

ADDC 指令:带进位加法指令。

考虑了上一次运算产生的进位标志。

SUBB 指令:用于减法运算,并且会考虑借位标志。

逻辑运算类指令ANL 指令:进行逻辑与操作。

例如“ANL A, R0”,将累加器 A 和寄存器 R0 的内容进行逻辑与运算,结果存放在累加器 A 中。

ORL 指令:执行逻辑或操作。

XRL 指令:实现逻辑异或运算。

控制转移类指令JC 指令:若进位标志为 1 则跳转。

JZ 指令:若累加器 A 的内容为 0 则跳转。

LJMP 指令:长跳转指令,可以跳转到 64KB 程序存储器空间的任意位置。

位操作类指令SETB 指令:将指定的位设置为 1。

例如“SETB P10”,将 P1 端口的第 0 位置 1。

CLR 指令:把指定的位清零。

这些只是 51 单片机指令的一部分,实际应用中还有更多的指令和组合使用方式。

在编程时,合理选择和运用这些指令能够实现各种复杂的功能。

比如,通过数据传送指令来初始化变量和读取外部数据;利用算术运算指令进行数值计算;借助逻辑运算指令处理逻辑关系;使用控制转移指令实现程序的分支和循环;运用位操作指令控制单个引脚的状态。

C51指令代码

C51指令代码

一、ACALL addr11指令名称:绝对挪用指令指令代码:A10 A9 A8 10001 A7 A6 A5 A4 A3 A2 A1 A0指令功能:构造目的地址,进行子程序挪用。

其方式是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不变。

操作内容:PC←(PC)+2SP←(SP)+1(SP)←(PC)7~0SP←(SP)+1(SP)←(PC)15~8PC10~0←addrl0~0字节数: 2机械周期:2利用说明:由于指令只给出子程序入口地址的低11位,因此挪用范围是2KB。

二、ADD A,Rn指令名称:寄放器加法指令指令代码:28H~2FH指令功能:累加器内容与寄放器内容相加操作内容:A←(A)+(Rn), 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,OV五、ADD A,#data指令名称:当即数加法指令指令代码:24H指令功能:累加器内容与当即数相加操作内容:A←(A)+data字节数: 2机械周期:1阻碍标志位:C,AC,OV六、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,OV八、ADDC A,@Ri指令名称:间接寻址带进位加法指令指令代码:36H~37H指令功能:累加器内容、内部RAM低128单元内容及进位位相加操作内容:A←(A)+((Ri))+(C), i=0,1字节数: 1机械周期:1阻碍标志位:C,AC,OV九、ADDC A,#data指令名称:当即数带进位加法指令指令代码:34H指令功能:累加器内容、当即数及进位位相加操作内容:A←(A)+data+(C)字节数: 2机械周期:1阻碍标志位:C,AC,OV10、AJMP addr11指令名称:绝对转移指令指令代码:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0指令功能:构造目的地址,实现程序转移。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

格式功能简述字节数周期一、数据传送类指令MOV A, Rn 寄存器送累加器 1 1MOV Rn,A 累加器送寄存器 1 1MOV A ,@Ri 内部RAM单元送累加器 1 1MOV @Ri ,A 累加器送内部RAM单元 1 1MOV A ,#data 立即数送累加器 2 1MOV A ,direct 直接寻址单元送累加器 2 1MOV direct ,A 累加器送直接寻址单元 2 1MOV Rn,#data 立即数送寄存器 2 1MOV direct ,#data 立即数送直接寻址单元 3 2MOV @Ri ,#data 立即数送内部RAM单元 2 1MOV direct ,Rn 寄存器送直接寻址单元 2 2MOV Rn ,direct 直接寻址单元送寄存器 2 2MOV direct ,@Ri 内部RAM单元送直接寻址单元 2 2 MOV @Ri ,direct 直接寻址单元送内部RAM单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR ,#data16 16位立即数送数据指针 3 2MOVX A ,@Ri 外部RAM单元送累加器(8位地址) 1 2 MOVX @Ri ,A 累加器送外部RAM单元(8位地址) 1 2 MOVX A ,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR ,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A ,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2 MOVC A ,@A+PC 查表数据送累加器(PC为基址) 1 2 XCH A ,Rn 累加器与寄存器交换 1 1XCH A ,@Ri 累加器与内部RAM单元交换 1 1 XCHD A ,direct 累加器与直接寻址单元交换 2 1 XCHD A ,@Ri 累加器与内部RAM单元低4位交换 1 1 SWAP A 累加器高4位与低4位交换 1 1POP direct 栈顶弹出指令直接寻址单元 2 2 PUSH direct 直接寻址单元压入栈顶 2 2二、算术运算类指令ADD A, Rn 累加器加寄存器 1 1ADD A,@Ri 累加器加内部RAM单元 1 1ADD A, direct 累加器加直接寻址单元 2 1ADD A, #data 累加器加立即数 2 1ADDC A, Rn 累加器加寄存器和进位标志 1 1 ADDC A,@Ri 累加器加内部RAM单元和进位标志 1 1 ADDC A, #data 累加器加立即数和进位标志 2 1 ADDC A, direct 累加器加直接寻址单元和进位标志 2 1 INC A 累加器加1 1 1INC Rn 寄存器加1 1 1INC direct 直接寻址单元加1 2 1INC @Ri 内部RAM单元加1 1 1INC DPTR 数据指针加1 1 2DA A 十进制调整 1 1SUBB A, Rn 累加器减寄存器和进位标志 1 1 SUBB A,@Ri 累加器减内部RAM单元和进位标志 1 1 SUBB A, #data 累加器减立即数和进位标志 2 1 SUBB A, direct 累加器减直接寻址单元和进位标志 2 1 DEC A 累加器减1 1 1DEC Rn 寄存器减1 1 1DEC @Ri 内部RAM单元减1 1 1DEC direct 直接寻址单元减1 2 1MUL AB 累加器乘寄存器B 1 4DIV AB 累加器除以寄存器B 1 4三、逻辑运算类指令ANL A, Rn 累加器与寄存器 1 1ANL A,@Ri 累加器与内部RAM单元 1 1ANL A, #data 累加器与立即数 2 1ANL A, direct 累加器与直接寻址单元 2 1ANL direct, A 直接寻址单元与累加器 2 1ANL direct, #data 直接寻址单元与立即数 3 1ORL A, Rn 累加器或寄存器 1 1ORL A,@Ri 累加器或内部RAM单元 1 1ORL A,#data 累加器或立即数 2 1ORL A,direct 累加器或直接寻址单元 2 1ORL direct, A 直接寻址单元或累加器 2 1ORL direct, #data 直接寻址单元或立即数 3 1XRL A, Rn 累加器异或寄存器 1 1XRL A,@Ri 累加器异或内部RAM单元 1 1XRL A,#data 累加器异或立即数 2 1XRL A,direct 累加器异或直接寻址单元 2 1XRL direct, A 直接寻址单元异或累加器 2 1XRL direct, #data 直接寻址单元异或立即数 3 2RL A 累加器左循环移位 1 1RLC A 累加器连进位标志左循环移位 1 1 RR A 累加器右循环移位 1 1RRC A 累加器连进位标志右循环移位 1 1 CPL A 累加器取反 1 1CLR A 累加器清零 1 1四、控制转移类指令类ACCALL addr11 2KB 范围内绝对调用 2 2AJMP addr11 2KB 范围内绝对转移 2 2LCALL addr16 2KB 范围内长调用 3 2LJMP addr16 2KB 范围内长转移 3 2SJMP rel 相对短转移 2 2JMP @A+DPTR 相对长转移 1 2RET 子程序返回 1 2RET1 中断返回 1 2JZ rel 累加器为零转移 2 2JNZ rel 累加器非零转移 2 2CJNE A ,#data ,rel 累加器与立即数不等转移 3 2CJNE A ,direct ,rel 累加器与直接寻址单元不等转移 3 2 CJNE Rn,#data ,rel 寄存器与立即数不等转移 3 2CJNE @Ri ,#data,rel RAM 单元与立即数不等转移 3 2DJNZ Rn ,rel 寄存器减1不为零转移 2 2DJNZ direct ,rel 直接寻址单元减1不为零转移 3 2 NOP 空操作 1 1五、布尔操作类指令MOV C, bit 直接寻址位送C 2 1MOV bit, C C 送直接寻址位 2 1CLR C C 清零 1 1CLR bit 直接寻址位清零 2 1CPL C C 取反 1 1CPL bit 直接寻址位取反 2 1SETB C C 置位 1 1SETB bit 直接寻址位置位 2 1ANL C, bit C 逻辑与直接寻址位 2 2ANL C, /bit C 逻辑与直接寻址位的反 2 2ORL C, bit C 逻辑或直接寻址位 2 2ORL C, /bit C 逻辑或直接寻址位的反 2 2JC rel C为1 转移 2 2JNC rel C为零转移 2 2JB bit,rel 直接寻址位为1转移 3 2JNB bit,rel 直接寻址为0转移1、D1~D8八个彩灯按规定顺序依次点亮(间隔1秒),最后全亮;2、按规定顺序依次熄灭(间隔1秒),最后全灭;3、八个灯同时点亮,保持1秒;4、八个灯同时熄灭,保持0.5秒;再将第3、4步重复4遍,最后整个程序再重复N遍。

5、让八个灯依次显示为0100 1001 1.假设1:D1~D8八个彩灯接在P1口,输出低电平发光 2.假设2:系统晶振为12MHz 3.假设3:N = 5ORG 0000HMOV R3, #5 ;N=5LOOP0:MOV A, #0FFHMOV P1, #0FFH ;开始时全灭;-------------------------------逐个点亮MOV R2, #8LOOP1: CLR CRLC AMOV P1, ACALL DL500MSDJNZ R2, LOOP1;-------------------------------逐个熄灭MOV R2, #8LOOP2: SETB CRLC AMOV P1, ACALL DL500MSDJNZ R2, LOOP2;-------------------------------全亮、全灭交替MOV R2, #4LOOP3: MOV P1, #0 ;全亮CALL DL500MSCALL DL500MS ;共1sMOV P1, #255 ;全灭CALL DL500MS ;0.5sDJNZ R2, LOOP3;-------------------------------DJNZ R3, LOOP0MOV P1, #01001001B ;5、显示为0100 1001CALL DL500MSCALL DL500MS ;共1sSJMP 0000H ;重新开始N遍;-------------------------------延时子程序DL500MS:MOV R5, #9 ;1TDL1: MOV R6, #128 ;1TDL2: MOV R7, #215 ;1TNOP ;1TDL3: DJNZ R7, DL3 ;2T 2 * 215 = 430 TDJNZ R6, DL2 ;2T [1+1+430+2] * 128 = 55552 T DJNZ R5, DL1 ;2T [1+55552+2] * 9 = 499995 T RET ;2T 1 + 499995 + 2 = 499998 T ;-------------------------------------END。

相关文档
最新文档