2022年单片机—指令 .pdf

上传人:Che****ry 文档编号:35310067 上传时间:2022-08-21 格式:PDF 页数:10 大小:311.95KB
返回 下载 相关 举报
2022年单片机—指令 .pdf_第1页
第1页 / 共10页
2022年单片机—指令 .pdf_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《2022年单片机—指令 .pdf》由会员分享,可在线阅读,更多相关《2022年单片机—指令 .pdf(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第三章全部指令数据传送类指令(包括寻址方式 ) 说明字节数周期数MOV A ,Rn MOV A ,direct MOV A ,Ri MOV A ,#data MOV Rn ,A MOV Rn ,direct MOV Rn ,#data MOV direct ,A MOV direct ,Rn MOV direct1 ,direct2 MOV direct ,Ri MOV direct ,#data MOV Ri ,A MOV Ri ,direct MOV Ri ,#data MOV DPTR ,#data16 MOVC A ,A+DPTR MOVC A ,A+PC MOVX A ,Ri MOV

2、X A ,DPTR MOVX Ri ,A 寄存器内容送累加器A(Rn) 直接寻址字节内容送累加器A(direct) 间接 RAM 送累加器A(Ri) 立即数送累加器A#data 累加器送寄存器Rn(A) 直接寻址字节送寄存器Rn(direct) 立即数送寄存器Rn#data 累加器送直接寻址字节directA 寄存器送直接寻址字节direct(Rn) 直接寻址字节送直接寻址字节direct1(direct2) 间接 RAM 送直接寻址字节direct(Ri) 立即数送直接寻址字节direct#data 累加器送片内RAM (Ri)A 直接寻址字节送片内RAM (Ri)(direct) 立即数送

3、片内RAM (Ri)#data 16 位立即数送数据指针DPRT#data16 变址寻址字节送累加器(相对 DPTR) A(A)+(DPTR) 变址寻址字节送累加器(相对 PC) A(A)+(PC) 片外 RAM(8 位地址 )送累加器A(Ri) 片外 RAM(16 位地址 )送累加器A(DPTR) 累加器送片外RAM(8 位地址 ) (Ri)A 1 2 1 2 1 2 2 2 2 3 2 3 1 2 2 3 1 1 1 1 1 1 1 1 1 1 2 1 1 2 2 2 2 1 2 1 2 2 2 2 2 2 MOVX DPTR ,A PUSH direct POP direct XCH A

4、 ,Rn XCH A ,direct XCH A , Ri XCHD A ,Ri 累加器送片外RAM(16 位地址 ) (DPTR) A 直接寻址字节压入栈顶SP(SP)+1,(SP)(direct) 栈顶弹至直接寻址字节direct(SP),SP(SP)- 1 寄存器与累加器交换(A) (Rn) 直接寻址字节与累加器交换(A) (direct) 片内 RAM 与累加器交换(A) (Ri) 片内 RAM 与累加器低4 位交换(A)3 0 (Ri)30 1 2 2 1 2 1 1 2 2 2 1 1 1 1 MCS-51 传送指令示意图外部 RAM 的任何数据不能直接跳转,必须经过 A。注意:P

5、USH ACC(累加器 A 要写成 ACC)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 运算类指令指令助记符(包括寻址方式 ) 说明字节数周期数ADD A,Rn 寄存器内容送累加器A(A)+(Rn) 1 1 ADD A,direct 直接寻址送累加器A(A)+(direct) 2 1 ADD A,Ri 间接寻址 RAM 送累加器A(A)+(Ri) 1 1 ADD A,#data 立即数送累加器A(A)+data 2 1 A

6、DDC A,Rn 寄存器加到累加器(带进位 ) A(A)+(Rn)+CY 1 1 ADDC A,direct 直接寻址加到累加器(带进位 ) A(A)+(direct)+C+CY 2 1 ADDC A,Ri 间接寻址 RAM 加到累加器 (带进位 ) A(A)+(Ri)+CY 1 1 ADDC A,#data 立即数加到累加器(带进位 ) A(A)+data+CY 2 1 SUBB A,Rn 累加器内容减去寄存器内容(带借位 ) A(A) - (Rn)- CY 1 1 SUBB A,direct 累加器内容减去直接寻址(带借位 ) A(A) - (direct)- CY 2 1 SUBB A,

7、Ri 累加器内容减去间接寻址(带借位 ) A(A) - (Ri) - CY 1 1 SUBB A,#data 累加器内容减去立即数(带借位 ) A(A) - data- CY 2 1 INC A 累加器加 1 A(A)+1 1 1 INC Rn 寄存器加 1 Rn(Rn)+1 1 1 INC direct 直接寻址加1 direct(direct)+1 2 1 INC Ri 间接寻址 RAM 加 1 (Ri) (Ri)+1 1 1 INC DPTR 地址寄存器加1 DPTR DPTR+1 1 2 DEC A 累加器减 1 A(A) - 1 1 1 DEC Rn 寄存器减 1 Rn(Rn)- 1

8、 1 1 DEC direct 直接寻址地址字节减1 direct(direct)- 1 2 1 DEC Ri 间接寻址 RAM 减 1 (Ri)(Ri)- 1 1 1 MUL AB 累加器 A 和寄存器 B 相乘AB (A)*(B) 1 4 DIV AB 累加器 A 除以寄存器B AB (A)/(B) 1 4 DA A 对 A 进行十进制调整1 1 注意:INC A ;DEC A (指令不影响任何的标志位! )MUL AB 累加器 A 和寄存器 B 相乘AB (A)*(B) 结果:高位字节在B 中,地位字节在A 中;如果积大于225(0FFH)则标志位OV 置位,否则 OV 清“0”DIV

9、AB 累加器 A 除以寄存器B AB (A)/(B) 结果:商的整数部分存放在累加器A 中,余数在寄存器B 中。进位位CY 和溢出标志位 OV 清“0” 。如果原来B 中的内容为0(被零除 ),则结果 A 和 B 中内容不确定,且溢出标志位 OV 置位,在任何情况下,CY 都清“ 0”。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 表 3-4 逻辑运算类指令指令助记符(包括寻址方式 ) 说明字节数周期数ANL A,Rn 寄存

10、器“与”到累加器A(A) (Rn) 1 1 ANL A,direct 直接寻址“与”到累加器A(A) (direct) 2 1 ANL A,Ri 间接寻址 RAM “与”到累加器A(A) (Ri) 1 1 ANL A,#data 立即数“与”到累加器A(A) data 2 1 ANL direct,A 累加器“与”到直接寻址direct(direct)(A) 2 1 ANL direct,#data 立即数“与”到直接寻址direct(direct)data 3 2 ORL A,Rn 寄存器“或”到累加器A(A) (Rn) 1 1 ORL A,direct 直接寻址“或”到累加器A(A) (d

11、irect) 2 1 ORL A,Ri 间接寻址 RAM “或”到累加器A(A) (Ri) 1 1 ORL A,#data 立即数“或”到累加器A(A) data 2 1 ORL direct,A 累加器“或”到直接寻址direct(direct)(A) 2 1 ORL direct,#data 立即数“或”到直接寻址direct(direct data) 3 2 XRL A,Rn 立即数“异或”到累加器A(A)(Rn) 1 1 XRL A,direct 直接寻址“异或”到累加器A(A)(direct) 2 1 XRL A,Ri 间接寻址 RAM “异或”到累加器A(A)(Ri) 1 1 XR

12、L A,#data 立即数“异或”到累加器A(A)data 2 1 XRL direct,A 累加器“异或”到直接寻址direct(direct)(A) 2 1 XRL direct,#data 立即数“异或”到直接寻址direct(direct)data 3 2 CLR A 累加器清零A0 1 1 CPL A 累加器求反A(A) 1 1 RL A 累加器循环左移A 循环左移一位1 1 RLC A 经过进位位的累加器循环左移A 带进位循环左移一位1 1 RR A 累加器循环右移A 循环右移一位1 1 RRC A 经过进位位的累加器循环右移A 带进位循环右移一位1 1 SWAP A A 半字节交

13、换1 1 结论:与或非的作用:与 0 相与清零与 1 相或置 1 与 0 异或不变与 1 相与不变与 0 相或不变与 1 异或取反名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 表 3-5 位操作类指令指令助记符(包括寻址方式 ) 说明字节数周期数CLR C 清进位位CY0 1 1 CLR bit清直接地址位bit0 2 1 SETB C 置进位位CY1 1 1 SETBbit置直接地址位bit1 2 1 CPL C 进位位求

14、反CYCY_1 1 CPL bit 直接地址位求反bitbit_2 1 ANL C,bit 进位位和直接地址位相“与”CY(CY) (bit) 2 2 ANC C,bit_进位位和直接地址位的反码相“与”CY(CY) (bit_)2 2 ORL C,bit进位位和直接地址位相“或”CY(CY) (bit)2 2 ORL C,bit进位位和直接地址位的反码相“或”CY(CY) (bit_)2 2 MOV C, bit直接地址位送入进位位CY(bit)2 1 MOV bit ,C进位位送入直接地址位bitCY2 2 JNC rel进位位为 1 则转移PC(PC)+2,若 (CY)=0 则 PC(P

15、C)+rel2 2 JC rel直接地址位为1 则转移PC(PC)+2,若 (CY)=1 则 PC(PC)+rel2 2 JB bit ,rel进位位为 0 则转移PC(PC)+3,若 (bit)=1 则 PC(PC)+rel3 2 JBN bit ,rel直接地址位为0 则转移PC(PC)+3,若 (bit)=0 则 PC(PC)+rel3 2 JBC bit , rel直接地址位为1 则转移,该位清0 PC(PC)+3,若 (bit)=1 则 bit0,PC(PC)+rel3 2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -

16、- 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 表 3-6 控制程序转移指令指令助记符(包括寻址方式 )说明字节数周期数LJMP addr16 长转移PCaddr16 3 24 AJMP addr11 绝对转移PC10PC0addr11 2 24 SJMP rel 短转移 (相对偏移 ) PC(PC)+rel 2 24 JMP A+DPTR 相对 DPTR 的间接转移PC(A)+(DPTR) 1 24 JZ rel 累加器为零则转移PC(PC)+2,若 (A)=0 则 PC(PC)+rel 2 24 JNZ rel 累加器为非零则转移

17、PC(PC)+2,若 (A)0 则 PC(PC)+rel 2 24 CJNE A,direct,rel 比较直接寻址字节与A 不相等则转移PC(PC)+3,若 (A) (direct)则 PC(PC)+rel* 3 24 CJNE A,#data,rel 比较立即数与A 不相等则转移PC(PC)+3,若 (A) (data)则 PC(PC)+rel* 3 24 CJNE Rn,#data,rel 比较立即数与寄存器不相等则转移PC(PC)+3,若 (Rn)(data)则 PC(PC)+rel* 3 24 CJNE Ri ,#data,rel 比较立即数与间接寻址RAM 不相等则转移PC(PC)

18、+3,若 (Ri) (data)则 PC(PC)+rel* 3 24 DJNZ Rn,rel 寄存器减 1 不为零则转移PC(PC)+2,Rn(Rn)- 1,若 (Rn)0,则 PC(PC)+rel 2 24 DJNZ direct,rel 直接寻址字节减1 不为零则转移PC(PC)+3direct (direct)- 1 若(direct)0,则PC(PC)+rel 3 24 ACALL addrR11 绝对调用子程序PC(PC)+2,SP(SP)+1 SP(PC)L,SP(SP)+1 (SP)(PC)H,PC10PC0addR11 2 24 LCALL addrR16 长调用子程序PC(P

19、C)+3,SP(SP)+1 SP(PC)L,SP(SP)+1 (SP)(PC)H,PC10PC0addR16 3 24 RET 从子程序返回PCH(SP),SP(SP)-1 PCL(SP),SP(SP)-1 1 24 RETI 从中断返回PCH(SP),SP(SP)-1 PCL(SP),SP(SP)-1 1 24 NOP 空操作1 12 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - 1、无条件跳转:绝对跳转 AJMP :2K

20、B 范围内的无条件转跳指令;注意:AJMP 指令的目标转移地址不是和 AJMP 指令地址在同一个2KB 区域, 而是应和 AJMP 指令取出后的PC 地址 (即 PC +2)在同一个 2KB 区域。相对跳转 SJMP :转向的目标地址可以在这条指令前128B 到后 127B 之间。长条转指令LJMP:转移的目标地址可以在64KB 程序存储器地址空间的任何地方,不影响任何标志。散转指令JMP A+DPTR :这条指令的功能是把累加器中8 位无符号数与数据指针DPTR 中的 16 位数相加, 将结果作为下一条指令地址送入PC,不改变累加器和数据指针内容,也不影响标志位。2、条件转移指令JZ rel

21、 ; 如果累加器ACC 的内容为零,则执行转移,跳到标号rel 处执行,不为零就执行下一条指令。JNZ rel;如果累加器ACC 的内容不为零,则执行转移,跳到标号rel 处执行,为零就执行下一条指令。3、调用指令绝对调用指令ACALL addr11 (范围: 2KB )子程序结束是要在结尾加“RET”必须加,否则无法运行!长调用指令LCALL addr16(范围: 64KB )自程序结束也要加“RET”补充:延时子程序:DEL : MOV R5,#100 DEL0 : MOV R6,#100 DEL1 : MOV R7,#248 DEL2 : DJNZ R7,DEL2 DJNZ R6,DEL

22、1 DJNZ R5,DEL0 RET 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - TCON 寄存器IT0 :外部中断0 触发方式控制位。 IT0=0,INT0 (P3.2) 为低电平触发方式;IT0=1,INT0 (P3.2) 为负跳变触发方式。IE0:外部中断0 标志位。 IE0=1,外部中断0 向 CPU请求中断。IT1 :外部中断1 触发方式控制位。IE1:外部中断1 标志位。TF0:T0 中断溢出标志位。T0 溢出

23、硬件置1,响应中断后硬件清0( 在查询方式下软件清0)。TF1:T1 中断溢出标志位,功能同TF0。TR0 :T0 的启停控制位。TR1 :T1 的启停控制位。自然优先等级中断源的入口地址 IE 中断允许寄存器EA :总允许位 ( 一级控制 ) 。EA=0时,禁止一切中断;EA=1时,中断开放。ES :串行口中断允许位( 二级控制 ) 。ES=1 时允许RI 、TI引发中断,否则禁止串口中 断。ET1、ET0:定时器 T1、T0允许位, ET1=1或 ET0=1时,允许 TF1或 TF0 引发中断,否则禁止相应的定时器中断。EX1 、EX0:外部中断1/ 外部中断 0,允许位 EX1 =1 或

24、 EX0 =1 时允许相应的外部中断,否则禁止相应的外部中断。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 10 页 - - - - - - - - - 优先等级 IP PS :串行口中断优先级设定位。PT1、PT0:定时器 T1、T0 中断优先级设定位。PX1 、PX0:外部中断1、外部中断0 的中断优先级设定位。以上各位若被置1,则相应的中断将被设置为高优先级中断;若被置0,则相应的中断将被设置为低优先级中断。假设将 T0、外中断 1 设为高优先级, 其他设为低优先

25、级,求 IP 的值。IP 的前 3 位没用,可任意取值, 设为 000, 后面根据要求写即可,指令为:MOV IP,#00000110B 6-6 】P1.0 接 LED ,低电平亮,单片机所接晶振12MHz ,用定时器的查询方式和中断方式分别实现灯的闪烁。要求亮、暗间隔1s。解:这里还需要加一个“软件计数器”,具体程序如下: ORG 0000H AJMP MAIN ORG 001BH ;定时器 1 的中断向量地址 AJMP TIME1 ;跳转到真正的定时器程序处 ORG 0030H MAIN: MOV P1,#0FFH ; 关所有灯 MOV 30H,#00H ; 软件计数器预清0 MOV TM

26、OD, #00010000B ; 定时器 / 计数器 1 工作于方式1 MOV TH1, #3CH MOV TL1,#0B0H ; 即数 15536( 一次定时50ms的初值 ) SETB EA ;开总中断允许 SETB ET1 ;开定时器 / 计数器 1 允许 SETB TR1 ;定时器 /计数器 1 开始运行LOOP: AJMP LOOP ;真正工作时,这里可写任意程序 TIME1: ;定时器 1 的中断处理程序 PUSH ACC PUSH PSW ;将 PSW 和 ACC推入堆栈保护 INC 30H MOV A, 30H CJNE A,#20,T_RET ;30H单元中的值到20 了吗?

27、 T_L1: CPL P1.0 ;到了,取反P1.0 MOV 30H, #0 ;清软件计数器 T_RET: MOV TH1, #3CH MOV TL1,#0B0H ; 重置定时常数 POP PSW POP ACC RETI END 期末考试老师给子程序(不包括延时),主程序自己写,要用中断,矩阵键盘。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - 优先等级IP PS :串行口中断优先级设定位。PT1、PT0:定时器T1、T0

28、中断优先级设定位。PX1 、PX0:外部中断1、外部中断0 的中断优先级设定位。以上各位若被置1,则相应的中断将被设置为高优先级中断;若被置0,则相应的中断将被设置为低优先级中断。假设将 T0、外中断 1 设为高优先级, 其他设为低优先级,求 IP 的值。IP 的前 3 位没用,可任意取值, 设为 000, 后面根据要求写即可,指令为:MOV IP,#00000110B 6-6 】P1.0 接 LED ,低电平亮,单片机所接晶振12MHz ,用定时器的查询方式和中断方式分别实现灯的闪烁。要求亮、暗间隔1s。解:这里还需要加一个“软件计数器”,具体程序如下: ORG 0000H AJMP MAI

29、N ORG 001BH ;定时器 1 的中断向量地址 AJMP TIME1 ;跳转到真正的定时器程序处 ORG 0030H MAIN: MOV P1,#0FFH ; 关所有灯 MOV 30H,#00H ; 软件计数器预清0 MOV TMOD, #00010000B ; 定时器 / 计数器 1 工作于方式1 MOV TH1, #3CH MOV TL1,#0B0H ; 即数 15536( 一次定时50ms的初值 ) SETB EA ;开总中断允许 SETB ET1 ;开定时器 / 计数器 1 允许 SETB TR1 ;定时器 /计数器 1 开始运行LOOP: AJMP LOOP ;真正工作时,这里

30、可写任意程序 TIME1: ;定时器 1 的中断处理程序 PUSH ACC PUSH PSW ;将 PSW 和 ACC推入堆栈保护 INC 30H MOV A, 30H CJNE A,#20,T_RET ;30H单元中的值到20 了吗 ? T_L1: CPL P1.0 ;到了,取反P1.0 MOV 30H, #0 ;清软件计数器 T_RET: MOV TH1, #3CH MOV TL1,#0B0H ; 重置定时常数 POP PSW POP ACC RETI END 期末考试老师给子程序(不包括延时),主程序自己写,要用中断,矩阵键盘。名师资料总结 - - -精品资料欢迎下载 - - - - -

31、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - 优先等级IP PS :串行口中断优先级设定位。PT1、PT0:定时器T1、T0 中断优先级设定位。PX1 、PX0:外部中断1、外部中断0 的中断优先级设定位。以上各位若被置1,则相应的中断将被设置为高优先级中断;若被置0,则相应的中断将被设置为低优先级中断。假设将 T0、外中断 1 设为高优先级, 其他设为低优先级,求 IP 的值。IP 的前 3 位没用,可任意取值, 设为 000, 后面根据要求写即可,指令为:MOV IP,#0000

32、0110B 6-6 】P1.0 接 LED ,低电平亮,单片机所接晶振12MHz ,用定时器的查询方式和中断方式分别实现灯的闪烁。要求亮、暗间隔1s。解:这里还需要加一个“软件计数器”,具体程序如下: ORG 0000H AJMP MAIN ORG 001BH ;定时器 1 的中断向量地址 AJMP TIME1 ;跳转到真正的定时器程序处 ORG 0030H MAIN: MOV P1,#0FFH ; 关所有灯 MOV 30H,#00H ; 软件计数器预清0 MOV TMOD, #00010000B ; 定时器 / 计数器 1 工作于方式1 MOV TH1, #3CH MOV TL1,#0B0H

33、 ; 即数 15536( 一次定时50ms的初值 ) SETB EA ;开总中断允许 SETB ET1 ;开定时器 / 计数器 1 允许 SETB TR1 ;定时器 /计数器 1 开始运行LOOP: AJMP LOOP ;真正工作时,这里可写任意程序 TIME1: ;定时器 1 的中断处理程序 PUSH ACC PUSH PSW ;将 PSW 和 ACC推入堆栈保护 INC 30H MOV A, 30H CJNE A,#20,T_RET ;30H单元中的值到20 了吗 ? T_L1: CPL P1.0 ;到了,取反P1.0 MOV 30H, #0 ;清软件计数器 T_RET: MOV TH1, #3CH MOV TL1,#0B0H ; 重置定时常数 POP PSW POP ACC RETI END 期末考试老师给子程序(不包括延时),主程序自己写,要用中断,矩阵键盘。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -

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

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com