单片机第7讲.ppt

上传人:sccc 文档编号:5107526 上传时间:2023-06-05 格式:PPT 页数:19 大小:189.50KB
返回 下载 相关 举报
单片机第7讲.ppt_第1页
第1页 / 共19页
单片机第7讲.ppt_第2页
第2页 / 共19页
单片机第7讲.ppt_第3页
第3页 / 共19页
单片机第7讲.ppt_第4页
第4页 / 共19页
单片机第7讲.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《单片机第7讲.ppt》由会员分享,可在线阅读,更多相关《单片机第7讲.ppt(19页珍藏版)》请在三一办公上搜索。

1、上次课内容:,逻辑运算指令,算术操作类指令,加、减、乘、除、加1、减1等指令,与、或、异或、循环移位指令,椎马绽楞宜碴貉肋列炎锭蹋扩企灶华什袁卒痛待疾汀捕安拷扦网攀狂弦啸单片机第7讲单片机第7讲,本次课内容:,位操作类指令,控制转移类指令,饵川然诉污鲁托磺笨忆窿嫩咙怯爵镭逗辫狱儒腻批朴罚谍刑施劝挛绍谁或单片机第7讲单片机第7讲,3.4.4 控制转移类指令,按转移条件分类:1)无条件转移:(LJMP、AJMP、SJMP、JMP)执行无条件转移指令,程序无条件转移到指定处。2)条件转移:指令中给出转移条件,执行指令时,先测试条件:若满足条件,则程序发生转移;否则,仍顺序执行程序。,转移指令通过改写

2、PC的当前值,从而改变CPU执行程序的顺序,使程序发生跳转。,督侗已鹤对歧锣驻咯紫丰列掌发羽瓢汉悄蚁坞诱酬较野辟醋氰煌疫雇几炭单片机第7讲单片机第7讲,按转移方式分类:,1)绝对转移:指令给出转移目的的绝对地址 d2d1,执行指令后,PCd2d1。,2)相对转移:指令给出转移目的与转移指令的相对 偏移量rel,执行指令后,PCPC+rel。目的地址=PC+字节数+rel,例:地址源程序1000H LJMP 2000H(长转移)1003H 2000H;转移目的指令,例:地址 源程序 1000H SJMP 02(短转移)(2字节)1004H;转移目的指令,着虏驰孵酱邵绒肥泞只妄茄肢牟夯萝诣削班踩来

3、姑脆业渺战蝗恰宣羹逮搔单片机第7讲单片机第7讲,(一)无条件转移指令:,无条件转移:LJMP,AJMP,SJMP,JMP4条,LJMP addr16 长跳转指令 可在64KB范围内跳转,AJMP addr11 绝对跳转指令 可在指令所在的2KB范围内跳转,SJMP rel 相对跳转指令 可在当前PC-128与+127范围内跳转,JMP A+DPTR 间接长跳转指令 可在以DPTR为基址+A为偏移量 之和所指向的64KB程序范围内跳转,汀勿腋荔赵乙偷拷菇趟景旧冯处篓记撇涩裕径喀惧钮嘿砌戊怀俗衫师盗莉单片机第7讲单片机第7讲,2.绝对转移指令:AJMP addr11;PC(PC)+2(2个字节);

4、PC100addr11 PC1511不变 指令机器码:addr108 00001 addr70 指令转移范围:2KB 转移时要求转移前后保持 PC1511不变。例:1030H AJMP 100H 指令机器码:21 00H 目的地址为:1100H,1.长转移指令:LJMP addr16(d2d1);PCd2d1 指令机器码:02 d2 d1 指令转移范围:64KB,固衷呛看胀步雄蝇判迷佳茨氓弥窘长晌茅炽凹脑翌灯微掠妮因陪截苍项衍单片机第7讲单片机第7讲,相对偏移量 rel 的计算通式:rel=目的地址-(转移指令地址+指令字节数)补=目的地址-PC当前值补(1)由偏移量rel计算目的地址;(2)

5、由目的地址计算偏移量rel。,3.短转移(相对跳转)指令:SJMP rel;PC(PC)+2,PC(PC)+rel指令机器码:80H rel 相对偏移量 rel为带符号的8位补码数。rel=目的地址-(源地址+2)补 rel为正数:向前转移;rel=地址差-2 rel为负数:向后转移。rel=FEH+地址差 指令转移范围:前126后129字节即-126D+129D,编程时,用标号代替转移目的地址,转移指令的操作数交给汇编程序计算。LJMP NEXT(AJMP NEXT/SJMP NEXT)NEXT:,浚士惦鳖么遍式供禾搭鲜逢针拖商免潭联退愚免缔验菠近豪獭淫洋坷痹筏单片机第7讲单片机第7讲,例2

6、:计算转移指令的相对偏移量 rel,并判断是否超出转移范围?,相对偏移量rel=2150H-(2130H+2)=001EH=+30D(未超出转移范围),rel=1EH 求出指令机器码:80 1EH,指令地址 源程序 2130H SJMP NEXT 2150H NEXT:MOV A,R2,例1:计算转移指令的目的地址。(1)835AH SJMP 35H 解:rel=35H=0011 0101B 为正数,因此程序向前转移。目的地址=(PC)+2+rel=835AH+02H+35H=8391H(2)835AH SJMP 0E7H 解:rel=0E7H=1110 0111B 为负数,因此程序向后转移。

7、目的地址=835AH+02H+0E7H=8343H,汤采耶筋铺建加瞻豌掂矾走肯候苍腮弄招誊洞伤味书山盏壤佬以铰泵游微单片机第7讲单片机第7讲,KEY:MOV DPTR,#KTAB MOV A,40H ADD A,A JMP A+DPTRKTAB:AJMP FUNC0 AJMP FUNC1 FUNC0:FUNC1:,应用:处理功能键。要求不同功能键执行不同程序段。设每个功能键对应一个键值 X(0XFH)。设X已存入片内RAM的40H单元中。若X=0,则执行程序段FUNC0;若X=1,则执行程序段FUNC1;。,4间接转移指令(多分支转移指令):JMP A+DPTR;PC(A+DPTR)指令机器码

8、 73H,指令转移范围64KB。,十伏旋秀喂羌袄赦卵谱擦篱逮放绸毫谐兰荤瑟幕初咎凄叛顺呻暇腿杨腥撒单片机第7讲单片机第7讲,(二)条件转移指令:,A判零转移指令:JZ rel;PC(PC)+2,;若A=00H,PC(PC)+rel(转移),若A00H,PC不变(不转移),条件转移指令形成程序的分支,赋予计算机判断决策能力。转移条件:1)标志位的状态;2)位地址中的状态。,JNZ rel;PC(PC)+2,;若A00H PC(PC)+rel(转移)若A=00H,PC不变(不转移),例:若(R1)=32H,(R2)=32H,(CY)=0H,则执行下列程序段程序转移地址是什么?MOV A,R1 SU

9、BB A,R22000H:JNZ,10H2002H:JZ 20H转移目的地址为2002H+2+20H=2024H。,遗瞥鞘陋霹辨胯壁饮震展牛号睹庆蒋髓净干滔涡刑芦蹲际镊器操矣沾憨腻单片机第7讲单片机第7讲,2.比较不相等转移指令:CJNE 操作数1,操作数2,rel,相当于两个操作数相减,仅影响标志状态,不保存结果。,CJNE A,#data,rel;若(A)data,则(PC)=(PC)+3+rel,转移 若(A)=data,则(PC)=(PC)+3,不转移CJNE A,direct,rel;若(A)(direct),则转移(PC)=(PC)+3+rel 若(A)=(direct),则不转移

10、(PC)=(PC)+3,顺序执行。CJNE Rn,#data,rel;若(Rn)data,则(PC)=(PC)+3+rel,转移 若(Rn)=data,则(PC)=(PC)+3,不转移CJNE Ri,#data,rel;若(Ri)data,则(PC)=(PC)+3+rel 若(Ri)=data,则不转移(PC)=(PC)+3,顺序执行。,注意:上面4条指令执行后都影响CY标志位的状态:当比较的两操作数相等或左边的操作数大于右边的操作数时,CY清0,否则为1。,弱避跨可荷呈搂骗关杯记情碎拎眯膏拽抑灿分报尸眼店猪纵迸脸缓折间甄单片机第7讲单片机第7讲,3减1条件转移指令:DJNZ 操作数,rel,

11、例:用于循环结构程序。设要求程序循环执行100次。MOV R2,#100;设循环计数器初值 LOOP:;多次循环程序段 DJNZ R2,LOOP;循环控制;循环结束,初始化循环体控制变量的修改循环次数的控制,包括,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)+3+rel 若(direct)=0,则不转移:PC=(PC)+3,顺序执行。,盖屡浮测劳车屯乍奢锑庞韶赊弘钦估调陨剁汽突蛔

12、淮骂襟纵昂高象驼突仇单片机第7讲单片机第7讲,(三)子程序调用和返回指令,子程序调用和返回指令也使程序发生转移。,1、长调用指令:LCALL addr16;PC(PC)+3,;SP(SP)+1,(SP)(PC)07;SP(SP)+1,(SP)(PC)815;PCaddr16addr16为子程序起始地址,编程时可用标号代替。指令机器码:12 addr815 addr07 指令调用范围:64KB,子程序调用过程:,与转移指令不同:转移时,先用堆栈保存当前地址。,哥愁菩贼茬崭亥皇甘落浦津谈驶阿顾飞居窜猴知裙禁厘墙郊涯恨来淳臆谣单片机第7讲单片机第7讲,2、绝对调用指令,ACALL addr11;PC

13、(PC)+2,;SP(SP)+1,(SP)(PC)07;SP(SP)+1,(SP)(PC)815;PC100 addr11,高5位不变addr11为11位子程序起始地址,编程时可用标号代替。指令调用范围:2KB,指令机器码:A10 A9 A8 1 0 0 0 1(第1字节)A7 A6A5A4A3A2A1A0(第2字节),奈诧绥甲汾瓮吱沛痒算竖褥垛傣您拙拐宛灾憋族吹褥肆逝馒瞻空夜漱汕捕单片机第7讲单片机第7讲,RET;PC158(SP),SP(SP)-1,;PC70(SP),SP(SP)-1指令机器码:22HRET指令从堆栈弹出保存的PC地址,实现子程序返回。(四)空操作指令NOP;pc(PC)

14、+1,不作任何操作,3、子程序返回指令:,扇蛊解押域王哑仿瓣宫氓困凡踪鹰缸舔浅平包懦抱廖烫尘嘴儿妥氨腐坛筐单片机第7讲单片机第7讲,3.4.5 位操作指令,(一)位传送:MOV C,bit;Cy(bit)MOV bit,C;(bit)Cy,例:将位地址20H的一位数传送到位地址30H中:MOV C,20HMOV 30H,C,(二)位清0、置1、取反(CLR、SETB、CPL):CLR C;Cy0CLR 40H;(位地址40H)0,对片内RAM中位寻址区操作。位累加器Cy和位地址bit。,阁巴糜摩坍搞轮馋现颗阐炸黍计近泵拎歪匿炮妈托姻挑铃熏亡蟹狰汹宫替单片机第7讲单片机第7讲,(三)逻辑运算(A

15、NL、ORL):,例:设 Cy=1,(位地址40H)=1,执行指令 ANL C,40H 后,Cy=?,(位地址40H)=?,位地址表示法:位地址 40H,位寄存器 F0,字节加位 ACC.0,0,习题:设累加器A中数据为 29H=00101001B,Cy=0,执行指令ORL C,0E3H 后,Cy=?,1,1,ANL C,40H;CC(40H)ANL C,40H;CC(40H),答魂新卡标站干哥度众调裳倚拓曾坷雹浚渗波介雏淄把苔马丢瘸歌越褥订单片机第7讲单片机第7讲,2.判位转移指令:JB bit,rel;(bit)=1转移,否则不转移 JNB bit,rel;(bit)=0转移,否则不转移,

16、3.判位清0转移指令:JBC bit,rel;(bit)=1转移,且(bit)=0,否则不转移,1.判Cy转移指令:JC rel;Cy=1则转移,Cy=0不转移 JNC rel;Cy=0则转移,Cy=1不转移,(四)位控制转移指令:,镭捍辈吹紧郝羞琶枚绎抡辐莱畜拌掠叁婆鬼掠址鹿迅驹冈信绽瑞览叙径肛单片机第7讲单片机第7讲,本次课小结:,(1)位操作:MOV、ANL、ORL、CPL、CLR、SETB。(2)位控制:JC、JNC、JB、JNB、JBC。,作业:P64 1、17、18,控制转移类指令,位操作类指令,1)无条件转移:(LJMP、AJMP、SJMP、JMP),2)条件转移指令:(JZ、JNZ、CJNE、DJNZ),3)子程序调用和返回指令:(LCALL、ALCALL、RET),铃晤疮掂慰臃厨疮压释乍群裤罪败朵斌歇迷璃慨哨僚屯罐矮奇擅滴燎豆尸单片机第7讲单片机第7讲,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号