单片机学习资料3

上传人:仙*** 文档编号:243938196 上传时间:2024-10-01 格式:PPT 页数:43 大小:116KB
返回 下载 相关 举报
单片机学习资料3_第1页
第1页 / 共43页
单片机学习资料3_第2页
第2页 / 共43页
单片机学习资料3_第3页
第3页 / 共43页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第三章 80,C51,单片机的指令系统,一、概述,指令分类,数据传送类指令(28条),算术运算类指令(24条),逻辑运算类指令(25条),控制转移类指令(17条),布尔操作类指令(17条),2.指令格式,单字节指令,指令只有一个字节,操作数和操作码都在同,一个字节中。,双字节指令,指令包括两个字节,其中一个字节是操作数,,另一个字节为操作码。,3字节指令,操作码占一个字节,操作数占两个字节。,3.符号的约定,Rn,当前寄存器组的8个通用寄存器,,n=0-7,Ri,R0、R1,只能用做间址寄存器,,i=0,1,direct,表示8为地址,#,data,表示8位立即数,bit,片内,ram,直接寻址位,二、寻址方式和寻址空间,立即寻址,如:,mov,a,#3ah,mov dptr,#0a2b3h,01110100,00111010,PC,PC+1,操作码,立即数,10010000,10100010,10110011,PC,PC+1,操作码,立即数,立即数,PC+2,2.直接寻址,如:,mov,a,3ah,应用范围:,低128单元,特殊功能寄存器,直接寻址是寻址特殊功能寄存器的唯一方法。,3.寄存器寻址,如:,inc r0,通用寄存器,Rn,用,RS0、RS1,选择四组中的一组。,某些特殊功能寄存器,00001000,操作码,0,0,0,0,0,0,RS0,RS1,8位,地址,4.寄存器间接寻址,片内,RAM,低128单元,只能用,R0、R1,作间址寄存器;如:,mov,a,r0,片外,RAM 64k,字节,只能用,DPTR,做间址寄存器;如:,movx,a,dptr,片外,RAM,低256字节,除了用,DPTR,做间址寄存器外,也能用,Ri,:,movx,a,r1,堆栈操作,5.相对寻址,相对转移指令中,给出的地址为相对当前地址的偏移量。偏移量为有符号数。,8位有符号数的范围是-128-127。,如:,jc rel,6.变址寻址,只有三条指令:,movc,a,a+,dptr,movc,a,a+pc,jmp,a+,dptr,7.位寻址,片内位寻址,RAM,片内特殊功能寄存器,指令中的表示方法:,直接使用地址,单元地址加位,特殊功能寄存器符号加位,位名称,三、指令系统,数据传送类指令,可以进行直接地址到直接地址传送,可以用,R0、R1,和,DPTR,访问片外,RAM,累加器,A,功能丰富、强大,能访问程序存储器,1.一般传送指令,以,累加器,A,为目的操作数。,mov,a,Rn,mov,a,direct,mov,a,Ri,mov,a,#,datai,以,Rn,为目的操作数。,mov,Rn,a,mov Rn,direct,mov Rn,#data,-,以,直接地址为目的操作数,mov,direct,a,mov,direct,Rn,mov,direct,direct,mov,direct,Ri,mov,direct,#data,以间接寻址,Ri,为目的操作数,mov,Ri,a,mov,Ri,direct,mov,Ri,#data,2.目的地址传送指令,只有一条:,mov dptr,#data16,如:,mov dptr,#1234,dph,=12,dpl,=34,3.累加器传送指令,字节交换指令,xch,a,Rn,xch,a,direct,xch,a,Ri,半字节交换指令,xchd,a,Ri,A,与片外存储器的传送指令,movx,a,Ri,movx,a,dptr,movx,dptr,a,movx,Ri,a,-,A,与程序存储器传送指令,movc,a,a+pc,movc,a,a+,dptr,堆栈操作,push direct,pop direct,2.算术运算类指令,加法指令,加法指令,add a,Rn,;a+,Rn,-a,add a,direct,add a,Ri,add a,#data,这四个指令影响标志位,AC、CY、OV、P,加法指令,2.带进位加法指令,addc,a,Rn,;a+,Rn,+CY-a,addc,a,direct,addc,a,Ri,addc,a,#data,这四个指令影响标志位,AC、CY、OV、P,R6+R7:,mov,a,r6,Add a,r7,mov r6,a,mov a,#0,addc a,#0,mov r7,a,加法指令,3.加1指令,inc Rn,inc direct,inc Ri,inc a,inc dptr,这些指令不影响标志位,加法指令,4.二-十进制调整指令,da a,设,a=56h,r3=67h,CY=1,看成压缩的,BCD,码相加:,addc a,r3 ;a=0beh,da a ;a=0be+6=0c4h a=0c4h+60h=124h,结果:,a=24h cy=1,减法指令,带借位减法,subb a,Rn,subb a,direct,subb a,Ri,subb a,#data,没有不带借位的减法,可以先对,CY,清零:,clr c,减法指令,减1指令,dec Rn,dec direct,dec Ri,dec a,无对,dptr,的减一操作,举例,由于无对,dptr,的减一操作,可用软件实现:,mov a,dpl,dec a,mov dpl,a,cjne a,#0ffh,over,mov a,dph,dec a,mov dph,a,over:,乘法指令,mul ab,将,A,B,中两数相乘,积的低8位放在,A,中,高8位放在,B,中.,A=50H B=0A0H,MUL AB,乘积为3200,H,A=00H B=32H OV=1 CY=0,除法指令,DIV AB,A,等于,A/B,的商,B,等于,A/B,的余数.如果,B=0,结果不定,这时,OV=1.CY,总是0.,3.逻辑运算指令,a.,单操作数逻辑运算指令,clr a,cpl a,rr a,rrc a,rl a,rlc a,swap a,举例,swap,指令的作用,下面的程序很容易将,A,中的数转化为,BCD,码:,mov b,#10,div ab,swap a,add a,b,b.,双操作数逻辑指令,按位“与”运算,anl a,Rn,anl a,direct,anl a,Ri,anl a,#data,anl direct,a,anl direct,#data,b.,双操作数逻辑指令,按位“或”运算,orl a,Rn,orl a,direct,orl a,Ri,orl a,#data,orl direct,a,orl direct,#data,b.,双操作数逻辑指令,按位“异或”运算,xrl a,Rn,xrl a,direct,xrl a,Ri,xrl a,#data,xrl direct,a,xrl direct,#data,举例,由于逻辑操作可以不用累加器,故常用下面指令取反:,xrl p1,#0ffh,anl、orl、xrl,经常用来对位操作:,anl a,11111110b;a=xxxxxxx0b,orl a,00000010b;a=xxxxxx10b,xrl a,00000011b;a=xxxxxx01b,4.控制转移类指令,无条件转移指令,sjmp rel,相对偏移跳转,相对范围-128-+127,ajmp addr11,目标地址高5位不变,低11位由指令给出。只能跳转2,k,范围。指令2字节。,ljmp addr16,指令长度3字节,可给出全部地址范围。,jmp a+dptr,支持情况转移,举例,利用情况转移,用如下代码:,mov dptr,#jmp_table,mov a,index,rl a,jmp a+dptr,jmp_table:,ajmp case_0,ajmp case_1,ajmp case_2,ajmp case_3,ajmp case_4,2)调用和返回指令,acall addr11,lcall addr16,ret,reti,3)条件转移指令,jz rel,jnz rel,cjne a,direct,rel,cjne a,#data,rel,cjne Rn,#data,rel,cjne Ri,#data,rel,以上都是相对转移。,举例,cjne,指令同时修改标志位,c.,分三种情况比大小:,cjne a,data,equ,jc less,great:,;if great,less:,;if less,equ:,4)循环转移指令,djnz Rn,rel,djnz direct,rel,先把,Rn,或,direct,减1,如果结果不为0,转移到,rel,继续执行循环,否则,退出循环。,举例,djnz,常用作循环控制:,mov counter,#10,loop:,;loop body,djnz counter,loop,jz,jnz,cjne,都可以用来进行循环控制。而且执行时间都是2个指令周期。,5)空操作,nop,空操作,单字节、单周期,常用于延时等操作。,例:,mov r7,#10,delay:nop,djnz r7,delay,5.布尔操作类指令,anl c,bit,c=c.and.bit,2,anl c,/bit,c=c.and.not.bit,2,orl c,bit,c=c.or.bit,2,orl c,/bit,c=c.or.not.bit,2,mov c,bit,c=bit,1,mov bit,c,bit=c,2,clr c,c=0,1,clr bit,bit=0,1,5.布尔操作类指令,setb c,c=1,1,setb bit,bit=1,1,cpl c,c=.not.c,1,cpl bit,bit=.not.bit,1,jc rel,如,c=1,,则转移,2,jnc rel,如,c=0,,则转移,2,jb bit,rel,如,bit=1,,则转移,2,jnb bit,rel,如,bit=0,,则转移,2,jbc bit,rel,如,bit=1,,则转移,并清零,bit,2,举例,位操作指令中没有异或操作可用软件实现:,求,c=bit1.xrl.bit2,mov c,bit1,jnb bit2,over,cpl c,over:,;continue to,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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