书签 分享 收藏 举报 版权申诉 / 79
上传文档赚钱

类型第MCS5单片机指令系统课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4288294
  • 上传时间:2022-11-26
  • 格式:PPT
  • 页数:79
  • 大小:406.29KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第MCS5单片机指令系统课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    MCS5 单片机 指令系统 课件
    资源描述:

    1、第第3章章 MCS-51单片机指令系统单片机指令系统 3.1 单片机指令系统概述 3.2 寻址方式 3.3 分类指令MCS-51单片机指令系统的特点:(1)指令执行快。(2)指令短,约有一半的指令为单字节指令。(3)用一条指令即可实现2个一字节的相乘或相除。(4)具有丰富的位操作指令。(5)可直接用传送指令实现端口的输入输出操作。3.1 单片机指令系统概述 在MCS-51指令中,一般指令主要由操作码、操作数组成。指令应具有以下功能:(1)操作码指明执行什么性质和类型的操作。例如,数的传送、加法、减法等。(2)操作数指明操作的数本身或者是操作数所在的地址。(3)指定操作结果存放的地址。指令格式指

    2、令格式 1.单字节指令单字节指令 单字节指令格式由8位二进制编码表示,例如:CLR AE4H 2.双字节指令双字节指令 双字节指令格式由两个字节组成,操作码和操作数,例如:MOV A,10H74H 10H 3.三字节指令三字节指令 三字节指令格式中,第一个字节为操作码,后两个字节为操作数,例如:MOV 40H,30H75H 40H 30H 一条汇编语言指令中最多包含 4 个区段,如下所示:标号:操作码 操作数;注释 4 个区段之间要用分隔符分开:标号与操作码之间用“:”隔开,操作码与操作数之间用空格隔开,操作数与注释之间用“;”隔开,如果操作数有两个以上,则在操作数之间要用逗号“,”隔开 (乘

    3、法指令和除法指令除外 )。指令描述符号介绍 Rn当前选中的寄存器区中的8个工作寄存器R0R7(n=07)。Ri当前选中的寄存器区中的2个工作寄存器R0、R1(i=0,1)。direct8位的内部数据存储器单元中的地址。#data包含在指令中的8位常数。#data16包含在指令中的16位常数。addr1616位目的地址。addr1111位目的地址。rel8位带符号的偏移字节,简称偏移量。DPTR数据指针,可用作16位地址寄存器。bit内部RAM或专用寄存器中的直接寻址位。A累加器。B专用寄存器,用于乘法和除法指令中。C进位标志或进位位,或布尔处理机中的累加器。间址寄存器或基址寄存器的前缀,如Ri

    4、,DPTR。/位操作数的前缀,表示对该位操作数取反,如/bit。片内RAM的直接地址或寄存器。()由寻址的单元中的内容。箭头左边的内容被箭头右边的内容所代替。3.2 寻址方式寻址方式 所谓寻址方式,就是寻找操作数地址的方式,在用汇编语言编程时,数据的存放、传送、运算都要通过指令来完成。编程者必须自始至终都要十分清楚操作数的位置,以及如何将它们传送到适当的寄存器去参与运算。每一种计算机都具有多种寻址方式。寻址方式的多少是反映指令系统优劣的主要指标之一。在 MCS-51单片机指令系统中,有以下 7种寻址方式:(1)立即寻址;(2)直接寻址;(3)寄存器寻址;(4)寄存器间接寻址;(5)基址寄存器加

    5、变址寄存器间接寻址;(6)相对寻址;(7)位寻址。1.立即寻址立即寻址 立即寻址方式是指操作数包含在指令字节中。跟在指令操作码后面的数就是参加运算的数,该操作数称为立即数。立即数有一字节和二字节两种可能,例如指令:MOV A,3AH MOV DPTR,0DFFFH 2.直接寻址直接寻址 在指令中直接给出操作数的地址,这种寻址方式就属于直接寻址方式。在这种方式中,指令的操作数部分直接是操作数的地址。在MCS-51 单片机指令系统中,直接寻址方式中可以访问 3 种存储器空间:(1)内部数据存储器的低 128 个字节单元(00H7FH)。(2)特殊功能寄存器。特殊功能寄存器只能用直接寻址方式进行访问

    6、。(3)位地址空间。MOV A,52H ;把片内RAM字节地址52H单元的内容送累加器A中。MOV 52H,A ;把A的内容传送给片内RAM的52H单元中。MOV 50H,60H ;把片内RAM字节地址60H单元的内容送到50H单元中。MOV IE,#40H ;把立即数40H送到中断允许寄存器IE。IE为专用功能寄存器,其字节地址为0A8H。该指令等价于 MOV 0A8H,#40H。INC 60H ;将地址60H单元中的内容自加1。3.寄存器寻址寄存器寻址 在该寻址方式中,参加操作的数存放在寄存器里。寄存器包括8个工作寄存器R0R7,累加器A,寄存器B、数据指针DPTR和布尔处理器的位累加器C

    7、。MOV A,Rn ;A(Rn)其中n为07之一,Rn是工作寄存器。MOV Rn,A ;Rn(A)MOV B,A ;B(A)4.寄存器间接寻址寄存器间接寻址 在这种寻址方式中,寄存器的内容为操作数的地址。寄存器间接寻址只能使用寄存器R0、R1 作为地址指针,寻址内部RAM区的数据;当访问外部RAM时,可使用R0、R1及DPTR作为地址指针。寄存器间接寻址符号为“”,例如:例如:MOV R0,#60H ;R060H MOV A,R0 ;A (R0)MOV A,R1 ;A (R1)例如:MOV DPTR,#3456H ;DPTR3456H MOVX A,DPTR ;A(DPTR)是把DPTR寄存器

    8、所指的那个外部数据存储器(RAM)的内容传送给A,假设(3456H)=99H,指令运行后(A)=99H。5.基址寄存器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址 这种寻址方式用于访问程序存储器中的数据表格,它以基址寄存器DPTR或PC的内容为基本地址,加上变址寄存器A的内容作为操作数的地址,例如:MOVC A,DPTR+A JMP A+DPTR MOVC A,PC+A 6.相对寻址相对寻址 在MCS-51 指令系统中设有转移指令,分为直接转移和相对转移指令,在相对转移指令中采用相对寻址方式。这种寻址方式是以PC的内容为基本地址,加上指令中给定的偏移量作为转移地址。指令中给出的偏移量是一

    9、个 8 位带符号的常数,可正可负,其范围为128+127。SJMP 08H ;PC转移指令地址转移指令地址+2+08H 7.位寻址位寻址 该种寻址方式中,操作数是内部RAM单元中某一位的信息。SETB TR0 ;TR01CLR 00H ;(00H)0MOV C,57H ;将57H位地址的内容传送到 位累加器C中 ANL C,5FH ;将5FH位状态与进位位C相与,结果在C中 3.3 指令系统指令系统3.3.1 指令分类指令分类 MCS-51指令系统有42种助记符,代表了33种功能,指令助记符与各种可能的寻址方式相结合,共构成111条指令。按指令的功能,MCS-51指令系统可分为下列5类:(1)

    10、数据传送类指令(29条)(2)算术运算类指令(24条)(3)逻辑运算及移位类指令(24条)(4)位操作类指令(17条)(5)控制转移类指令(17条)3.3.2 数据传送类指令 数据传送类指令一般的操作是把源操作数传送到指令所指定的目标地址。指令执行后,源操作数保持不变,目的操作数为原操作数所替代 数据传送类指令用到的助记符有:MOV,MOVX,MOVC,XCH,XCHD,PUSH,POP,SWAP。格式:MOV 目的操作数,源操作数 功能:目的操作数(源操作数中的数据)源操作数可以是:A、Rn、direct、Ri、#data 目的操作数可以是:A、Rn、direct、Ri1 以累加器为目的操作

    11、数的内部数据传送指令 MOVA,Rn;A(Rn)MOVA,direct;A(direct)MOVA,Ri;A(Ri)MOVA,#data;Adata2 数据传送到工作寄存器Rn的指令 MOVRn,A;Rn(A)MOVRn,direct;Rn(direct)MOVRn,#data;Rndata3数据传送到内部RAM单元或特殊功能寄存器SFR的指令 MOVdirect,A;direct(A)MOVdirect,Rn;direct(Rn)MOVdirect1,direct2;direct(direct2)MOVdirect,Ri;direct(Ri)MOVdirect,#data;direct#da

    12、taMOVRi,A;(Ri()MOVRi,direct;(Ri)(direct)MOVRi,#data;(Ri)dataMOVDPTR,#data16;DPTRdata16 片内数据RAM及寄存器的数据传送指令MOV、PUSH和POP共18条。DPTRRiARn#datadirectDPTRMOVMOVMOVMOVMOVMOVMOVMOVMOVMOVPUSHPOP4 累加器A与外部数据存储器之间的传送指令片外数据存储器数据传送指令MOVX共4条。MOVXA,DPTR;A(DPTR)MOVXA,Ri;A(Ri)MOVXDPTR,A;(DPTR)AMOVXRi,A;(Ri)ADPTRRiAMOVX

    13、MOVX 5程序存储器内容送累加器MOVC A,A+PCMOVC A,A+DPTR 程序存储器查表指令MOVC共2条A+DPTRA+PCAMOVCMOVC6堆栈操作堆栈操作 所谓堆栈是在片内RAM中按“先进后出,后进先出”原则设置的专用存储区。数据的进栈出栈由指针SP统一管理。堆栈的操作有如下两条专用指令:PUSH direct;SP(SP+1),(SP)(direct)POP direct;(direct)(SP),SP SP-1 PUSH是进栈(或称为压入操作)指令。POP是出栈(或称为弹出操作)指令。7字节交换指令 数据交换主要是在内部RAM单元与累加器A之间进行,有整字节和半字节两种交

    14、换。(1)整字节交换指令XCH A,Rn ;A RnXCH A,direct;A(direct)XCH A,Ri;A(Ri)XCHD A,Ri;A03(Ri)03SWAP A ;A03A47(2)半字节交换指令【例】将片内RAM 30H单元与40H单元中的内容互换。方法1(直接地址传送法):MOV31H,30H MOV30H,40H MOV40H,31H SJMP$方法2(间接地址传送法):MOVR0,#40H MOVR1,#30H MOVA,R0 MOVB,R1 MOVR1,A MOVR0,B SJMP$方法3(字节交换传送法):MOVA,30H XCH A,40H MOV30H,A SJM

    15、P$方法4(堆栈传送法):PUSH30H PUSH40H POP 30H POP 40H SJMP$3.3.3 算术运算类指令算术运算类指令 算术运算指令算术运算指令 算术运算指令算术运算指令 影响标志位的指令 影响标志位的指令一、一、加法指令加法指令 1.普通加法指令普通加法指令 ADD A,Rn ADD A,direct ADD A,Ri ADD A,data 例例 写出以下一段程序各条指令执行的结果写出以下一段程序各条指令执行的结果 MOV A,#0B3H;MOV 20H,#10H;MOV R0,#20H;ADD A,R0;ADD A,R0;ADD A,#10H;例如:120 和 100

    16、 之和为 220,显然大于 127,相加时 0 1 1 1 1 0 0 0 1200 1 1 0 0 1 0 0 1001 1 0 1 1 1 0 0 220+符号位(最高位)由 0 变 1,两个正数相加结果变负,实际上它是和数的最高位,符号位移入了进位标志,此时位 6 有进位而位 7 无进位,置位溢出标志OV,结果溢出。程序状态字程序状态字PSW D7 D6 D5 D4 D3 D2 D1 D0CyACF0RS1RS0OV_PCy(Carry):进位进位AC(Auxiliary Carry):辅助进位辅助进位F0(Flag):用户标志用户标志RS1、RS0:寄存器组选择控制位:寄存器组选择控制

    17、位OV(Overflow):溢出溢出P(Parity):奇偶标志奇偶标志 同样,120和100 相加,结果应为220,显然小于128,相加时 1 0 0 0 1 0 0 0 -1201 0 0 1 1 1 0 0 -100+1 0 0 1 0 0 1 0 0 -220 符号位由1变为0,两个负数相加结果变为正数,这是因为符号位移入进位标志,位 6 无进位而位 7 有进位,置位溢出标志OV,由此可判断结果溢出。2.带进位加法指令带进位加法指令 ADDC A,Rn ADDC A,direct ADDC A,Ri ADDC A,data 这组指令的功能与普通加法指令类似,唯一的不同之处是,在执行加法

    18、时,还要将上一次进位标志Cy的内容也一起加进去,对于标志位的影响也与普通加法指令相同。例例 有两个有两个16位数。低位数。低8位分别存于位分别存于20H和和30H之中。高八位之中。高八位分别存于分别存于21H和和31H中。求他们的和,和的低八位送中。求他们的和,和的低八位送40H,高高8位送位送41H。MOV A,20H ADD A,30H;低;低8位相加位相加 MOV 40H A;有和的低有和的低8位位 MOV A,21H ADDC A,31H;高;高8位相加位相加,带低八位相加的进位带低八位相加的进位 MOV 41H,A;存和的高;存和的高8位位 3.增量指令增量指令 INC A INC

    19、Rn INC direct INC Ri INC DPTR 这组指令的功能是:将指令中所指出操作数的内容加1。若原来的内容为 0FFH,则加 1 后将产生溢出,使操作数的内容变成 00H,但不影响任何标志。最后一条指令是对16 位的数据指针寄存器DPTR执行加 1 操作,指令执行时,先对低 8 位指针 DPL的内容加 1,当产生溢出时就对高 8 位指针DPH加 1,但不影响任何标志。4.十进制调整指令十进制调整指令 DA A 这条指令对累加器A参与的BCD码加法运算所获得的 8 位结果进行十进制调整,使累加器A中的内容调整为二位压缩型 BCD码的数。使用时必须注意,它只能跟在加法指令之后,不能

    20、对减法指令的结果进行调整,且其结果不影响溢出标志位。执行该指令时,判断 A中的低 4 位是否大于 9 和辅助进位标志 AC是否为“1”,若两者有一个条件满足,则低 4 位加 6 操作;同样,A中的高 4 位大于 9 或进位标志 Cy为“1”两者有一个条件满足时,高 4 位加 6 操作。例如:有两个 BCD数 36 与 45 相加,结果应为 BCD码 81,程序如下:MOV A,36HADD A,45HDA A 这段程序中,第一条指令将立即数36H(BCD码36)送入累加器A;第二条指令进行如下加法:0 0 1 1 0 1 1 0 360 1 0 0 0 1 0 1 450 1 1 1 1 0

    21、1 1 7B0 0 0 0 0 1 1 0 06+1 0 0 0 0 0 0 1 81得结果 7BH;第三条指令对累加器 A进行十进制调整,低 4 位(为 0BH)大于 9,因此要加 6,得调整的 BCD码 81。例:例:二个多字节无符号数相加二个多字节无符号数相加设有两个四位设有两个四位BCD码分别存在内部码分别存在内部RAM的的50H、51H和和60H、61H单元中,试编写程序,求两个单元中,试编写程序,求两个BCD码数之和,结果存入内部码数之和,结果存入内部40H、41H单元。单元。MOV R0,#50H;被加数首址;被加数首址MOV R1,#60H ;加数首址;加数首址MOV A,R0

    22、 ;取被加数;取被加数ADD A,R1 ;与加数相加;与加数相加DA A ;二十进制调整;二十进制调整MOV 40H,A ;存和;存和 二、二、减法指令减法指令 1.带进位减法指令带进位减法指令 SUBB A,Rn SUBB A,direct SUBB A,Ri SUBB A,data 功能:将累加器A的内容与第二操作数及进位标志相减,结果送回到累加器A中。在执行减法过程中,如果位7(D7)有借位,则进位标志Cy置“1”,否则清“0”;如果位 3(D3)有借位,则辅助进位标志AC置“1”,否则清“0”;如位 6 有借位而位 7 没有借位,或位 7 有借位而位 6 没有借位,则溢出标志OV置“1

    23、”,否则清“0”。若要进行不带借位的减法操作,则必须先将Cy清“0”。2.减减1指令指令 DEC A DEC Rn DEC direct DEC Ri 这组指令的功能是:将指出的操作数内容减 1。如果原来的操作数为 00H,则减 1 后将产生下溢出,使操作数变成 0FFH,但不影响任何标志。三、三、乘法指令乘法指令 乘法指令完成单字节的乘法,只有一条指令:MUL AB 这条指令的功能是:将累加器A的内容与寄存器B的内容相乘,乘积的低 8 位存放在累加器A中,高 8 位存放于寄存器B中。如果乘积超过0FFH,则溢出标志OV置“1”,否则清“0”。进位标志Cy总是被清“0”。四、四、除法指令除法指

    24、令 除法指令完成单字节的除法,只有一条指令:DIV AB 这条指令的功能是:将累加器 A中的内容除以寄存器 B中的8位无符号整数,所得商的整数部分存放在累加器A中,余数部分存放在寄存器 B中,清“0”进位标志Cy和溢出标志OV。若原来 B中的内容为 0,则执行该指令后 A与 B中的内容不定,并将溢出标志OV置“1”,在任何情况下,进位标志Cy总是被清“0”。例:例:数的码制转换。把累加器数的码制转换。把累加器A A中无符号二进制整数中无符号二进制整数(00-FFH)(00-FFH)转换为三位压转换为三位压缩缩BCDBCD码码(0(0255)255),并存入内存,并存入内存30H30H和和31H

    25、31H单元。单元。BINBCDBINBCD:MOV B MOV B,#100#100 DIV AB DIV AB ;A A100100 百位数在百位数在A,A,余数在余数在B B MOV 30H MOV 30H,A A ;百位数送;百位数送30H30H MOV A MOV A,B B MOV B MOV B,#0AH#0AH DIV AB DIV AB ;余数;余数10 10,十位数在,十位数在A A低四位低四位,;个位数在;个位数在B B SWAP A SWAP A ;十位数放;十位数放A A的高四位的高四位 ADD A ADD A,B B ;十位数和个位数组合后送;十位数和个位数组合后送3

    26、1H31H MOV 31H MOV 31H,A A RET RET3.3.4 逻辑运算类指令逻辑运算类指令 逻辑运算指令逻辑运算指令 一、一、简单逻辑操作指令简单逻辑操作指令 CLR A;对累加器A清“0”CPL A;对累加器A按位取反 RL A;累加器A的内容向左环移 1 位 RLC A;累加器A的内容带进位标志位向左环移 1 位 RR A;累加器A的内容向右环移 1 位 RRC A;累加器A的内容带进位标志位向右环移 1 位 这组指令的功能是:对累加器A的内容进行简单的逻辑操作。除了带进位标志位的移位指令外,其它都不影响Cy,AC,OV等标志。二、二、逻辑与指令逻辑与指令 ANL A,Rn

    27、 ANL A,direct ANL A,Ri ANL A,data ANL direct,A ANL direct,data 这组指令的功能是:将两个操作数的内容按位进行逻辑与操作,并将结果送回目的操作数的单元中。三、三、逻辑或指令逻辑或指令ORL A,RnORL A,directORL A,RiORL A,dataORL direct,AORL direct,data 这组指令的功能是:将两个操作数的内容按位进行逻辑或操作,并将结果送回目的操作数的单元中。四、四、逻辑异或指令逻辑异或指令 XRL A,Rn XRL A,direct XRL A,Ri XRL A,data XRL direct

    28、,A XRL direct,data 这组指令的功能是:将两个操作数的内容按位进行逻辑异或操作,并将结果送回到目的操作数的单元中。3.3.5 控制转移指令控制转移指令 控制转移指令共有 17 条,不包括按布尔变量控制程序转移指令。其中有 64 KB范围内的长调用、长转移指令;有 2 KB范围内的绝对调用和绝对转移指令;有全空间的长相对转移及一页范围内的短相对转移指令;还有多种条件转移指令。由于MCS-51 提供了较丰富的控制转移指令,因此在编程上相当灵活方便。这类指令用到的助记符共有 10 种:AJMP、LJMP、SJMP、JMP、ACALL、LCALL、JZ、JNZ、CJNE、DJNZ。控控

    29、 制制 转转 移移 指指 令令 一、一、无条件转移指令无条件转移指令 1.绝对转移指令绝对转移指令 AJMP addr11 这是2KB范围内的无条件跳转指令,执行该指令时,先将PC+2,然后将addr11送入PC10PC0,而PC15PC11保持不变。这样得到跳转的目的地址。需要注意的是,目标地址与AJMP后面一条指令的第一个字节必须在同一个 2 KB区域的存储器区内。2.(短)相对转移指令(短)相对转移指令 SJMP rel 执行该指令时,先将 PC+2,再把指令中带符号的偏移量加到PC上,得到跳转的目标地址送入PC。rel为有符号8位二进制数。3.长跳转指令长跳转指令 LJMP addr1

    30、6 执行该指令时,将 16 位目标地址addr16 装入PC,程序无条件转向指定的目标地址。转移的目标地址可以在 64 KB程序存储器地址空间的任何地方,不影响任何标志。4.散转指令散转指令 JMP A+DPTR 执行该指令时,把累加器 A中的 8 位无符号数与数据指针中的 16 位数相加,结果作为下条指令的地址送入PC,不改变累加器 A和数据指针DPTR的内容,也不影响标志。利用这条指令能实现程序的散转。例:散转程序设计,根据例:散转程序设计,根据A中的数值实现程序散转中的数值实现程序散转 MOV R1,A ;(A)3 RL A ADD A,R1 MOV DPTR ,#TABLE ;散转表首

    31、地址送;散转表首地址送DPTR JMP A+DPTR TABLE:LJMP PM0 ;转程序;转程序PM0TABLE3:LJMP PM1 ;转程序;转程序PM1 -PM0:-LJMP是一个三字节指令,因此转移指令入口地址相隔是一个三字节指令,因此转移指令入口地址相隔3个字节,个字节,A中内容需是中内容需是3的倍数。的倍数。二、二、条件转移指令条件转移指令 JZ rel;(A)=0 转移 JNZ rel;(A)0 转移 这类指令是依据累加器A的内容是否为 0 的条件转移指令。条件满足时转移(相当于一条相对转移指令),条件不满足时则顺序执行下面一条指令。转移的目标地址在以下一条指令的起始地址为中心

    32、的 256 个字节范围之内(128+127)。当条件满足时,PC(PC)+N+rel,其中(PC)为该条件转移指令的第一个字节的地址,N为该转移指令的字节数(长度),本转移指令N=2。三、三、比较转移指令比较转移指令 在MCS-51 中没有专门的比较指令,但提供了下面 4 条比较不相等转移指令:CJNE A,direct,relCJNE A,data,relCJNE Rn,data,relCJNE Ri,data,rel 这组指令的功能是:比较前面两个操作数的大小,如果它们的值不相等则转移。转移地址的计算方法与上述两条指令相同。如果第一个操作数(无符号整数)小于第二个操作数,则进位标志Cy置“

    33、1”,否则清“0”,但不影响任何操作数的内容。例:温度控制程序例:温度控制程序 某温度控制系统,某温度控制系统,A中存温度采样值中存温度采样值Ta,(20H)=温度下限值温度下限值T20,(30H)=温度上限值温度上限值T30。若。若TaT30,程序转降温,程序转降温JW,若,若TaT20,程序转升,程序转升温温SW,若,若T30TaT20程序转程序转FH返回主程序。返回主程序。CJNE A,30H,LOOP AJMP FH ;等于;等于T30,转,转FH LOOP:JNC JW ;大于;大于T30,降温,降温CJNE A,20 H,LOOP1 AJMP FH ;等于;等于T20,转,转FH

    34、LOOP1:JC SW ;小于;小于T20,升温,升温 FH:-;保温;保温 JW:-SW-四、四、减减 1不为不为 0转移指令转移指令DJNZ Rn,relDJNZ direct,rel 这两条指令把源操作数减 1,结果回送到源操作数中去,如果结果不为 0 则转移(转移地址的计算方法同前)。例:从P1.7引脚输出5个方波MOV R2,#10;5个方波,10个状态LOP:CPL P1.7 ;P1.7状态变反DJNZ R2,LOP 五、五、调用及返回指令调用及返回指令 在程序设计中,通常把具有一定功能的公用程序段编制成子程序,当主程序需要使用子程序时用调用指令,而在子程序的最后安排一条子程序返回

    35、指令,以便执行完子程序后能返回主程序继续执行。1.绝对调用指令绝对调用指令 ACALL addr11 这是一条 2 KB范围内的子程序调用指令。执行该指令时,先将 PC+2 以获得下一条指令的地址,然后将 16 位地址压入堆栈(PCL内容先进栈,PCH内容后进栈),SP内容加 2,最后把 PC的高 5 位PC15PC11与指令中提供的 11 位地址addr11相连接(PC15PC11,100),形成子程序的入口地址送入PC,使程序转向子程序执行。所用的子程序的入口地址必须与 ACALL下面一条指令的第一个字节在同一个 2 KB区域的存储器区内。2.长调用指令长调用指令 LCALL addr16

    36、 这条指令无条件调用位于 16 位地址addr16的子程序。执行该指令时,先将PC+3以获得下一条指令的首地址,并把它压入堆栈(先低字节后高字节),SP内容加 2,然后将 16 位地址放入 PC中,转去执行以该地址为入口的程序。LCALL指令可以调用 64 KB范围内任何地方的子程序。指令执行后不影响任何标志。3.子程序返回指令子程序返回指令 RET 这条指令的功能是:恢复断点,将调用子程序时压入堆栈的下一条指令的首地址取出送入PC,使程序返回主程序继续执行。4.中断返回指令中断返回指令 RETI 这条指令的功能与RET指令相似,不同的是它还要清除MCS-51 单片机内部的中断状态标志。ORG

    37、 0000H LJMP START ORG 0040HSTART:MOV A,#0FEH ;LOOP:MOV P1,A ;RL A ;LCALL DELAY ;SJMP LOOPDELAY:MOV R5,#0AHMOV R6,#00HDELAY1:MOV R7,#0B3H DJNZ R7,$DJNZ R6,DELAY1 DJNZ R5,DELAY1 RET3.3.6 位操作类指令位操作类指令 位 操 作 指 令 1.位数据传送指令位数据传送指令 MOV C,bit MOV bit,C 这组指令的功能是:把源操作数指出的布尔变量送到目的操作数指定的位地址单元中。其中一个操作数必须为进位标志 Cy

    38、,另一个操作数可以是任何可直接寻址位。2.位变量修改指令位变量修改指令 CLR C CLR bit CPL C CPL bit SETB C SETB bit 这组指令对操作数所指出的位进行清“0”#,取反#,置“1”的操作,不影响其它标志。3.位变量逻辑与指令位变量逻辑与指令 ANL C,bit ANL C,/bit 这组指令的功能是:如果源位的布尔值是逻辑 0,则将进位标志清“0”;否则,进位标志保持不变,不影响其它标志。bit前的斜杠表示对(bit)取反,直接寻址位取反后用作源操作数,但不改变直接寻址位原来的值。例如指令:ANL C,/ACC.0 执行前ACC.0 为 0,C为 1,则指

    39、令执行后 C为 1,而 ACC.0仍为 0。4.位变量逻辑或指令位变量逻辑或指令 ORL C,bit ORL C,/bit 这组指令的功能是:如果源位的布尔值是逻辑 1,则将进位标志置“1”;否则,进位标志保持不变,不影响其它标志。5.位变量条件转移指令位变量条件转移指令 JC rel;若(Cy)=1,则转移 PC(PC)+2+rel JNC rel;若(Cy)=0,则转移PC(PC)+2+rel JB bit,rel;若(bit)=1,则转移PC(PC)+3+rel JNB bit,rel;若(bit)=0,则转移PC(PC)+3+rel JBC bit,rel;若(bit)=1,则转移PC(PC)+3+rel,并 bit 0

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第MCS5单片机指令系统课件.ppt
    链接地址:https://www.163wenku.com/p-4288294.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库