单片机指令系统课件

上传人:hloru****lorv6 文档编号:243151319 上传时间:2024-09-17 格式:PPT 页数:33 大小:336KB
返回 下载 相关 举报
单片机指令系统课件_第1页
第1页 / 共33页
单片机指令系统课件_第2页
第2页 / 共33页
单片机指令系统课件_第3页
第3页 / 共33页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,福州大学物理与信息工程学院,*,四、,控制转移指令,使,PC,不再自动增加,强行改变,PC,的内容,使程序转移到指定的入口地址继续执行,以实现分枝循环、子程序调用、中断等功能。,共,17,条。,分类:,无条件转移 条件转移 中断,9/17/2024,1,福州大学物理与信息工程学院,1,、无条件转移指令,长转移指令(长跳转),LJMP addr16,;,(,PC)addr16,3,字节,转移范围大,,0,2,16,,即,64K,ROM,9/17/2024,2,福州大学物理与信息工程学院,短转移指令(短跳转、绝对跳转),AJMP addr11,将当前,PC,值的高,5,位和,add11,相连,PC=PC,15,11,a,10,a,9,a,8,a,7,a,6,a,5,a,4,a,3,a,2,a,1,a,0,即将,add11,写入,PC,的第,0,10,位,,PC,的,11,15,位不变。,9/17/2024,3,福州大学物理与信息工程学院,Addr11,代表的范围是,2,0,2,11,2K,64K,的,ROM,分为,32,页,每页,2K,,,范围分别是,0000H07FFH,、,0800H0FFFH,、,1000H17FFH,、,F000HF7FFH,、,F800HFFFFH,AJMP,转移范围就是,PC,当前值所在,的,2K,字节页面内,超出该寻址范围就出错。,用于不太长的程序,该指令为,2,字节,9/17/2024,4,福州大学物理与信息工程学院,例:,机器码 汇编语言,07FEH,AJMP,K11,;,0800H,.,.,0E00H,K11,:,.,.,0F80H,K12,:,.,.,0FFEH,AJMP,K12,1000H,.,(PC)=(PC)+2=0800H,错误,(PC)=(PC)+2=1000H,K12,不在,1000H17FFH,同一页内,9/17/2024,5,福州大学物理与信息工程学院,相对转移指令,SJMP,rel,;,PC(PC)+2,PC(PC)+rel,转移范围是当前,PC,值,128,127,范围内,9/17/2024,6,福州大学物理与信息工程学院,例:,0100H 80,rel,SJMP AAA,0102H 00,NOP ,0123H 00,AAA,:,NOP,rel,是一字节的偏移量,编程时通常用目标地址标号代替,如本例中,AAA,,,汇编时才计算出偏移量,rel,,,计算方法,是:,rel,=,目标地址,-,(本指令地址,+02H,),= 0123H -,(,0100H+02H,),= 21H,9/17/2024,7,福州大学物理与信息工程学院,注:,编程时,可用标号代替转移目的地址,AJMP NEXT,SJMP NEXT,LJMP NEXT,原地踏步指令,HERE,:,SJMP HERE,常写成:,SJMP $,9/17/2024,8,福州大学物理与信息工程学院,散转指令:,JMP A+DPTR,(,PC,),(,A,)(,DPTR,),若,DPTR,值固定,改变,A,的内容,即可形成多个分枝。,9/17/2024,9,福州大学物理与信息工程学院,例:,(A) = 0,转到,PRG0,,,(A) = 1,转到,PRG1,,,.,(A) = 7,转到,PRG7,MOV DPTR, #TABEL,RL A,JMP A+DPTR,TABEL,:,AJMP PRG0,AJMP PRG1,.,AJMP PRG7,9/17/2024,10,福州大学物理与信息工程学院,2,、调用及返回指令,功能:,本质上也是无条件转移指令。,使用:,子程序调用,-,程序中反复多次执行的某一段程序。,9/17/2024,11,福州大学物理与信息工程学院,长调用指令,LCALL addr16,断点,PC,值进栈保存,调用,addr16,地址的子程序。,(PC)(PC)+3,(SP)(SP)+1,(SP)(PC,7,0,) (SP)(SP)+1,(SP)(PC,15,8,),(PC)addr16,9/17/2024,12,福州大学物理与信息工程学院,例:,(SP)=60H,,,标号,STRT,值为,2100H,,,标号,DIR,值为,8100H,。,STRT,:,LCALL DIR,或,STRT,:,LCALL 2100H,结果:,(SP) =62H,;,(61H)=03H,;,(62H)=21H,;,(PC) =8100H,9/17/2024,13,福州大学物理与信息工程学院,短调用指令,ACALL addr11,(PC)(PC)+2,(SP)(SP)+1,(SP)(PC,7,0,) (SP)(SP)+1,(SP)(PC,15,8,),(PC)addr11,目的地址与当前,PC,值必须位于,2K,范围的同一页面内,9/17/2024,14,福州大学物理与信息工程学院,编程时,可用标号代替转移目的地址,,addr11,,,addr16,交给编译程序计算,如:,LCALL DIR,;,ACALL DIR,9/17/2024,15,福州大学物理与信息工程学院,子程序返回指令,RET,从堆栈中自动取出断点地址送给,PC,,,使程序在主程序断点处继续执行。,(,PC,15,8,)(SP),;,(SP)(SP),1,(,PC,7,0,)(SP),;,(SP)(SP),1,子程序末尾必须是一条返回指令,9/17/2024,16,福州大学物理与信息工程学院,例:,(SP)=62H,,,(62H)=,07H,;,(61H)=,30H,RET,则,:,(,SP)=60H,;,(PC)=,0730H,9/17/2024,17,福州大学物理与信息工程学院,中断返回指令,RETI,用于中断服务程序末尾,除执行,RET,指令的操作外,还清除中断响应时被置位的优先级状态,开放较低级中断和恢复中断逻辑等功能。,9/17/2024,18,福州大学物理与信息工程学院,3,、条件转移指令,条件转移指令是指当满足某种条件时程序才转移,而条件不满足时程序继续执行下一条指令。条件主要指,PSW,中的标志。,注,:,对,PSW,的按位操作也将影响相应的标志位。,任何一条改变累加器,A,的内容的指令都将影响,P,标志。,8051,单片机隐含一个零标志位,(Z),,,当,(A)=0,时,,Z,置“,1”,。,9/17/2024,19,福州大学物理与信息工程学院,A,判零转移指令,JZ,rel,;,(A)=0,时转移,,(PC)(PC)+2+rel,否则程序顺序执行,(PC)(PC)+2,JNZ,rel,;,(A)=1,时转移,,(PC)(PC)+2+rel,否则程序顺序执行,(PC)(PC)+2,9/17/2024,20,福州大学物理与信息工程学院,例,1,、将外,RAM,的一个数据块(首地址为,DATA1,),传送到内部数据,RAM,(,首地址为,DATA2,),,遇到传送的数据为零时停止传送,试编程。,解:,MOV,R0,,,#DATA2,MOV,DPTR,,,#DATA1,MOVX,A,,,DPTR,JZ,LOOP2,MOV R0,,,A,INC R0,INC DPTR,SJMP LOOP1,LOOP2,:,SJMP,LOOP2,LOOP1,:,9/17/2024,21,福州大学物理与信息工程学院,比较转移指令:,比较指令中两个操作数的值是否相等,若值不等,则转移;若相等则顺序执行。,同时影响,CY,标志位,若第一操作数,右操作数,则转移,(PC),(PC)+3+rel,,,同时,(CY)=0,若左操作数,右操作数,则转移,(PC),(PC)+3+rel,,,同时,(CY)=1,也用于数值比较,以,CY,状态判断数值大小。,CJNE,操作数,1,操作数,2,转移地址标号,9/17/2024,24,福州大学物理与信息工程学院,例如,:,CJNE A, 30H,NOTEQ,;,3,分支转移,MOV A, R0,;,(A),(,30H),AJMP,WORK,NOTEQ:,JC,LITTER,;,(A)(30H),,,转,MOV A, R1,ACALL,SUB,LITTER,:,XXXX,WORK:,9/17/2024,25,福州大学物理与信息工程学院,减,1,非零转移指令,DJNZ,Rn,,,rel,;,(,Rn,) (,Rn,),1,,若,(,Rn,),0,则转移,,(PC),(PC)+2+rel,;若,(,Rn,),0,则顺序执行,(PC),(PC)+2,DJNZ direct,,,rel,;,(direct) (direct),1,,若,(direct ),0,则转移,,(PC),(PC)+2+rel,;若,(direct ),0,则顺序执行,(PC),(PC)+2,9/17/2024,26,福州大学物理与信息工程学院,主要用于控制程序循环,先把,Rn,或,direct,赋值循环次数,利用减,1,条件转移指令,以减,1,后是否为,0,作为转移条件,即可实现按次数控制循环。,9/17/2024,27,福州大学物理与信息工程学院,例:,延时,50ms,程序,DELY:,MOV R7, #200,MOV,R6, #125,DEL2: DJNZ,R6, DEL2 ;,125*2=250us,DJNZ R7, DEL1;,0.25ms*200,50ms,RET,使用,12MHz,晶振时,一个机器周期为,1us,,,执行,DJNZ,指令为,2us,,,加其他指令的时间,(,250,1,2,)*,200,1,50.301ms,使用例:,ACALL DELY,或,LCALL DELY,DEL1:,9/17/2024,28,福州大学物理与信息工程学院,4,、位控制转移指令,JC,rel,;,(Cy)=1,则转移,,(PC)(PC)+2+rel,否则,程序继续执行,,(PC)(PC)+2,JNC,rel,;,(Cy)=0,则转移,,(PC)(PC)+2+rel,否则,程序继续执行,,(PC)(PC)+2,布尔累加器,(,进位位,),判位转移。,9/17/2024,29,福州大学物理与信息工程学院,例,:,比较内部,RAM,的,30H,和,40H,单元中的二个无符号数的大小,将大数存入,20H,单元,小数存入,21H,单元,若二数相等,则使内,RAM,的第,127,位置,1,。,解:,MOV A,,,30H,CJNE A,,,40H,,,LOOP1,SETB 7FH,SJMP $,LOOP1: JC LOOP2,MOV 20H,,,A,MOV 21H,,,40H,SJMP $,LOOP2: MOV 20H,,,40H,MOV 21H,,,A,SJMP $,9/17/2024,30,福州大学物理与信息工程学院,4,、位控制转移指令,JB bit,rel,;,(bit)=1,则转移,,,(PC)(PC)+3+rel,否则,程序继续执行,,(PC)(PC)+3,JNB bit,rel,;,(bit)=0,则转移,,(PC)(PC)+3+rel,否则,程序继续执行,,(PC)(PC)+3,JBC bit,rel,;,(bit)=1,则转移,,(PC)(PC)+3+rel,,,且,(bit)=0,否则,程序继续执行,,(PC)(PC)+3,普通数据位判位转移,9/17/2024,31,福州大学物理与信息工程学院,例:,试判断,A,中的正负,若为正数,存入,20H,单元;若为负数则存入,21H,单元。,解:,JB ACC.7, LOOP,MOV 20H, A,SJMP $,LOOP,:,MOV 21H, A,SJMP $,9/17/2024,32,福州大学物理与信息工程学院,5,、空操作指令,NOP,1,字节,单周期,该指令仅使,(PC)+1,然后继续执行下一条指令,无任何操作。,常用于延时或程序中作为时间“微调”,9/17/2024,33,福州大学物理与信息工程学院,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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