单片机原理及应用第03章.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 03
- 资源描述:
-
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,3,章,MCS-51,系列单片机指令系统,单片机原理及应用,第三章,MCS-51,单片机指令系统,本章内容,寻址方式,指令的分类、格式及符号说明,分类指令,掌握,MCS-51,指令系统的各种寻址方式,掌握每条指令的格式、功能及用法,掌握指令的操作过程中操作数的变化情况以及对标志位的影响,学会正确选用指令完成简单的任务,学习目的,MCS-51,指令系统共有,255,种操作代码,用汇编语言表达时,只需熟记,42,种助记符就能表示,33,种指令功能共,111,条指令。,MCS-51,单片机指令系统的特点,:,指令执行时间短。,1,个机器周期指令有,64,条,,2,个机器周期指令有,45,条,而,4,个机器周期指令,2,条。,指令字节数少。单字节指令有,49,条,双字节指令有,45,条,三字节指令仅有,17,条。,位操作指令丰富。,3.1 MCS-51,系统单片机指令格式,3.1.1,指令格式,3.1.2,指令的三种表达形式,3.1.3,指令的字节数,3.1.4,指令的分类及符号说明,指令格式是指令码的结构形式。表达形式为:,3.1.1,指令格式,标号,又称为指令地址符号,一般由,1-6,个符组成,以字母开头的字母数字串。,如,:START,、,LOOP,、,NEXT,、,MAIN,标号,:操作码,操作数,;,注释,操作码,用,MCS-51,单片机所规定的助记符来表示,它命令,CPU,作何种操作。如:,MOV,、,ADD,、,ORL,等。,标号,:操作码,操作数,;,注释,操作数,分为目的操作数和源操作数,常用符号,(,如寄存器、标号,),、常量,(,如立即数、地址值等,),来表示。操作码和操作数之间用若干空格分隔,而目的操作数和源操作数之间用逗号“,”分隔。,标号,:操作码,操作数,;,注释,目的操作数,源操作数,寄存器,如:,A,、,B,、,DPTR,、,Rn,、,P,0,等。,标号,如:,START,、,LOOP,、,MAIN,等。,例如,主程序实际从,2000H,开始存放,复位后,通过,跳转指令,LJMP,转移至,2000H,开始执行。,ORG 0000H,LJMP,START,.,.,.,ORG 2000H,START:-,注释,是对该指令作用或功能的说明,以便于阅读,不参与编译,(,可有可无,不是必备的,),。,注释部分前一定要用分号“;”隔开。,标号,:操作码,操作数,;,注释,3.1.2,指令的三种表达形式,通常,指令有二进制,十六制和助记符等三种表示形式,1,),指令的二进制形式,具有难读、难写、难记忆和难修改等缺点,因此人们通常不用它来编写程序。,2),指令的十六进制形式,虽然读写方便,但仍不易为人们识别和修改,通常也不被用来编写程序,。,3),指令的助记符形式,又称为指令的汇编符或汇编语句形式,是一种由英文单词或缩写字母形象表征指令功能的形式,。,如果累加器,A,中已有一个加数,20,,那么能够完成,20,6,并把结果送入累加器,A,的加法指令的,:,二进制形式,为,:0011100000000110B;,十六进制形式,为,:3806H;,助记符形式,为:,ADD,A,,,06H ;A A+06H,例如,3.1.3,指令的字节数,MCS-51,单片机通常可以分为,单字节、双字节和三字节,指令三种。,(1),单字节指令(,49,条),单字节指令只有一个字节。通常又可分为两类:,1,)无操作数单节指令,这类指令的指令码光有操作码字段,操作数是隐含在操作码中的。如:,INC DPTR,这类指令的指令码有操作码字段和专门用来指示操作数所在寄存器号的字段组成。,例如:八位数传送指令,MOV,A,,,Rn,其中,,n,的取值范围为,0,7,。,2,)含有操作数寄存器号的单字节指令,双字节指令含有两个字,操作码字节在前,操作数字节在后。,例如:八位数传送指令,MOV,A,data ;Adata,这条指令的含义是指令码第二字节,data,取出来存放到累加器,A,中,2),双字节指令(,46,条),这类指令的指令码的第一字节为操作码,第,二字节为操作数或操作数地址。,故三字节指令共可有如下四类,:,操作码,Data15-8,Data7-0,例如:指令,MOV DPTR,,,data16,操作码,Direct,Data,例如:指令,MOV,direct,,,data,3),三字节指令(,16,条),操作码,Data,Direct(rel,),例如:指令,CJNE A,#data,rel,操作码,addr15-8,addr7-0,例如:指令,LCALL addr16,3.1.4,指令的分类及符号说明,MCS-51,单片机可以分为五类:,1.,指令分类,2),算术运算指令,4),位操作指令,3),逻辑运算指令,1),数据传送指令,5),控制转移指令,2,、符号的说明,(1),Rn,:,表示当前选中的寄存器区的,8,个工作寄存器,,(n=0-7,),中的一个。,(2),Ri,:,表示寄存器间接寻址,,Ri,只能 是,R0,或,R1,。,(3),#data,:8,位直接地址,实际使用时,data,应是,00H-FFH,中的一个。,(4),#data16,:,表示包含在指令中的,16,位立 即数。,(5),direct,:,表示,8,位内部数据存储器单 元的地址。,(6),Addr16,:,表示,16,位的目的地址。,(7),Addr11,:,表示,11,位的目的地址。,(8),Rel,:,表示,8,位带符号的偏移量。,(9),DPTR,:,为数据指针,可用作,16,位 的地址寄存器。,(10),Bit,:,表示内部,RAM,或专用寄存器中 的直接寻址位。,(11),A,:,累加器,ACC,。,(12),B,:,专用寄存器,用于,MUL,和,DIV,指 令中。,(13),:为间址寄存器或基址寄存器的前 缀。如,Ri,A+PC,,,A+DPTR,。,(14),/,:,位操数的前缀,表示对该位操作 数取反。如,/bit.,(15),$,:,当前指令的地址。,3.2,寻址方式,3.2.1,寄存器寻址,3.2.2,立即寻址,3.2.,3,直接寻址,3.2.,4,寄存器间接寻址,3.2.,5,相对寻址,3.2.,6,变址寻址,3.2.,7,位寻址,3.2,寻址方式,MCS-51,的指令系统共用了七种寻址方式。,3.2.1,寄存器寻址,以寄存器的内容为操作数的寻址方式。,可进行寄存器寻址的寄存器有:工作寄存器,R0R7,、,A,、,B,、,DPTR,和进位,CY,。,MOV A,R0 ;A R0,例如,:,R0(35H),A,结果,A=35H,35H,FF,E0,80,用户,RAM,区,位寻址区,通用寄存器区,7F,30,20,00,35H,3.2.1,寄存器寻址,说明,:,源,操作数,或目的操作数为寄存器,指令中寄存器操作数用寄存器名表示,寄存器操作数为寄存器名中的值,寻址范围:访问选定的工作寄存器,指令码中直接含有所需的操作数,操作数字前加“,#,”,符号为前缀。以区别直接地址。使用时一定要注意!,3.2.2,立即寻址,特点,功能:,(,1,),将片内,RAM,中,44H,单元,的内容送累加器,A,,,属于直,接寻址;,(,2,),则是把,44H,这个数本,身送到累加器,A,,,属于立即寻址。,(,1,),MOV A,,,44H ;A (44H),(,2,),MOV A,#44H ;A 44H,例,源操作数为立即数(即操作数本身),注:,51,系列单片机有,8,位立即数和,16,位地址,立即数,立即数不能作目的操作数。,寻址范围:程序寄存器,注:操作码下一单元。,例,:MOV A,,,#20H,MOV DPTR,,,#2000H,3.2.2,立即寻址,说明,直接寻址指令的指令码中含有操作数地址。,3.2.3,直接寻址,功能:,将片内,RAM,56H,单元中的内容,34H,送到累加器,A,中。,如左图,3.1,例:,MOV A,,,56H,;,A,(,56H,),机器码:,E5 56,34H,片内,RAM,34H,累加器,A,56H,图,3.1,指令传递,直接寻址可访问,128B,的,RAM,单元和特殊功能寄存器,SFR,。,对于,特殊功能寄存器既可以使用它们的地址,也可使用它们的代码。,如:,MOV A,,,P2,;,P2A,MOV A,,,0A0H,;,P2,的,地址为,0A0H,3.2.3,直接寻址,说明,3.2.4,寄存器间接寻址,指令指定寄存器中的内容为操作数的地址。,工作寄存器,R0,、,R1,和专用寄存器,DPTR,可用于间接寻址,在寄存器前加“,”,符号作前缀。,MOV A,,,R0;A R0,MOV A,R0;A(R0),例如:,R0,65H,,,65H,26H,如图,3.2,所示,,执行结果,A,65H,,,执行结果,A,26H,。,注意:是它区别寄存器寻址的标志。,26H,片内,RAM,A,65H,图,3.2,R0,65H,3.2.4,寄存器间接寻址,(,1,),R0,R1,可寻址内部,RAM 00 7FH,共,128B,单元内容,不能寻址特殊功能寄存器。,MOV A,R0,MOV A,R1,说明,3.2.4,寄存器间接寻址,(,2,),R0,R1,可寻址外部,RAM 00 FFH,共,256B,单元内容。,MOVX A,R0,MOVX A,R1,说明,3.2.4,寄存器间接寻址,(,3,),DPTR,寻址外部数据存储器的,64KB,空间,MOVX A,DPTR,;,A,(DPTR),MOVX DPTR,A,;,(DPTR),A,说明,3.2.5,相对寻址,相对寻址是将程序计数器,PC,中的当前内容与指令第二字节所给出的数相加,其和为跳指令的转移地址。,2000,8026H,SJMP,rel,;,PC PC+2+rel,程序存储器,A,图,3-3,指令过程,PC,26H,0000H,2000H,2001H,80H,26H,2028H,02H,20H,A L U,2002H,例,3.2.5,相对寻址,寻址空间:程序存储器,偏移量,rel,的范围是:,128 +127,转移公式:,PC,目的地址,=PC,当前地址,+,rel,说明,3.2.6,变址寻址,以,DPTR,和,PC,基址寄存器和累加器,A,变址寄存器的内容和为地址,寻址该地址单元,读取数据。,(1)MOVCA,APC,;A(APC),(2)MOVCA,ADPTR,;A(ADPTR),执行第一条时先取指,将该指令取完后的,PC,值和累加器,A,中的偏移量相加,作为操作数地址,从该地址中取出操作数送入,A,中。第二条过程与第一条指令类似,例如:,已知,:,片外,ROM,的,2006H,单元中有一数,34H,,,编写程序用变址寻址方法把这个数送入,A,中,试进行分析。,解:根据题目要求,基址可定为,2000H,,,地址偏移量则为,06H,,,程序如下:,MOV,DPTR,,,2000H,;,DPTR2000H,MOV,A,,,06H,;,A06H,MOVC,A,,,A,DPTR,;,A34H,例,程序存储器,A,图,3.4,DPTR,20,06H,0000H,34H,2006H,00H,A L U,如图,3.4,所示,这里,A,具有双重作用,在指令执行前用来存放地址偏移量,指令执行后为目的操作数。,3.2.6,变址寻址,说明,寻址范围:,64KB,程序存储器,变址,+,基址形成的,ROM,地址中的值为操作数,基址寄存器,DPTR 16,位数据指针,PC 16,位程序指针,变址寄存器,A 8,位累加器,3.2.7,位,寻址,当我们把八位二进制数中某一位作为操作数看待时,这个操作数的地址就称为位地址,对位地址寻址简称位寻址。,MOV 30H,,,C,;,30H,是位寻址位地址,MOV A,30h,;,30H,是直接寻址的字节地址,MOV,C,ACC.7,;,CyACC.7,由上面指令可知,位寻址的位地址与直接寻址的字节地址形式完全一样,主要由操作码来区分,使用时需应该特别注意。,例如,3.,2,.7,位,寻址,说明,位寻址仅对片内,RAM,的部分区域有效,片内通用,RAM,区,字节地址为,20H 2FH,,,16 Byte,单元共有,128 bit,位,片内专用,RAM,区,能被,8,整除的特殊功能寄存器单元的字节地址,3.,2,.7,位,寻址,说明,位地址表示,:,直接使用位地址。对于,20H2FH,的,16,个单元共,128,位的位地址分布是,00H7FH,。,单元地址,.,位地址,20H.1,。,对于特殊功能寄存器,可以直接用寄存器名字加位数或位名表示,如,PSW.3,,,位名:,CY,,,AC,。,序号,寻址方式,寻址空间,1,寄存器寻址,寄存器,R0,R7,、,A,、,B,、,DPTR,、,C,2,直接寻址,内部,RAM,低,128B,、,SFR,3,寄存器间接寻址,内部,RAM,低,128B,、外部,RAM,4,立即寻址,程序存储,ROM,5,变址寻址,程序存储器,(,A+DPTR,,,A+PC,),6,相对寻址,程序存储器,ROM,(,PC+127,-128,),7,位寻址,内部,RAM,的,20H,2F,单元和部分,SFR,课堂小结:,MOV 30H,R7 MOV A,55H MOV A,55HJMP A+DPTR MOV 30H,CMOV A,R0MOVX A,R0,练习一,答案:寄存器寻址方式,直接寻址方式,立即寻址方式,变址寻址方式,位寻址方式,间接寻址方式,间接寻址方式,说明下列指令中源操作数采用的寻址方式。,MOV R0,,,R3,MOVC A,,,R0+DPTR,ADD R0,,,R1,MUL AR0,练习二,改错题。,1.MOV R0,,,R3,间址寄存器不能使用,R2,R7,。,练习二,4.MUL AR0,乘法指令中的乘数应在,B,寄存器中,即乘法指令只可,使用,AB,寄存器组合,3.ADD R0,,,R1,运算指令中目的操作数必须为累加器,A,,,不可为,R0,。,2.MOVC A,,,R0+DPTR,变址寻址方式中的间址寄存器不可使用,R0,,,只可使用,A,。,答案,3.3,指令系统,3.3.1,数据传送指令,3.3.2,算逻运算和移位指令,3.3.3,控制转移和位操作指令,3.3.4,伪指令,数据传送指令是计算机中最基本、应用最广泛的指令类型。,MCS-51,单片机有,四类,29,条,数据传送指令。,内部数据传送指令(,15,条),外部数据传送指令(,7,条),数据交换指令(,5,条),堆栈操作指令(,2,条),3.3.5,数据传送指令,指令格式:,MOV ,,,注:,为源字节,,为,目的字节,指令功能:将源字节送到目的字节单元,且源字节单元中的源字节不变。,内部数据传送指令,MOV A,,,#data,;,A data,8,位立即数送累加器,A,MOV Rn,,,#data,;,Rn data,8,位立即数送工作寄存器,R0 R7,MOV ,Ri,,,#data,;,(,Ri,)data,8,位立即数送,R0,、,R1,表示的间接地址中,MOV direct,,,#data,;,(direct)data,8,位立即数送,direct,的直接地址中,立即寻址型,内部数据传送指令,已知:,R0,30H,,,试问执行如下指令后累加器,A,、,R3,、,30H,、,31H,单元中内容各是什么?,MOV,A,,,#20H,MOV R3,#45H,MOV R0,#46H,MOV 31H,#47H,例,执行后,结果为,:A=20H,R3=45H,(30H)=46H,(31H)=47H,内部数据传送指令,立即寻址型,已知:,R0,30H,,,试问执行如下指令后累加器,A,、,R3,、,30H,、,31H,单元中内容各是什么?,MOV,A,,,#50H,;,MOV R3,#65H,;,MOV R0,#68H;,MOV 31H,#70H;,练习,A50H,R3 65H,(R0)68H,(31H)70H,执行后,结果为:,A,50H,,,R3,65H,,,(,30H,),68H,,(,31H,),70H,立即寻址型,内部数据传送指令,.,目的操作数为寄存器寻址方式,二字节机器码,:一字节操作码,一字节源操作数,例,:MOV A,,,#20H,;,机器码,:74H,、,20H,例,:MOV R0,,,#20H,;机器码,:01111,000,B,、,20H,例,:MOV R7,,,#30H,;机器码,:01111,111,B,、,30H,说明,立即寻址型,内部数据传送指令,目的操作数为直接寻址方式,三字节机器码,:一字节操作码,一字节目的地址操作数,一字节源操作数,例,:MOV P1,,,#20H,;机器码,:75H,、,90H,、,20H,MOV A0H,,,#30H,;机器码,:75H,、,A0H,、,30H,说明,立即寻址型,内部数据传送指令,目的操作数为寄存器间址寻址方式,二字节机器码,:一字节操作码,一字节源操作数,例,:MOV R0,,,#20H,;机器码,:0111011,0,B,、,20H,MOV R1,,,#30H,;机器码,:0111011,1,B,、,30H,说明,立即寻址型,内部数据传送指令,MOV A,,,direct,;,A (direct),MOV direct,,,A,;,(direct)A,MOV Rn,,,direct,;,Rn (direct),MOV ,Ri,,,direct,;,(Ri)(direct),MOV direct1,,,direct2,;,(direct1)(direct2),直接寻址型,内部数据传送指令,已知:,R1=20H,、,(21H)=54H,、,(22H)=55H,、,(30H)=56H,,,试问执行如下指令后,结果,A,、,40H,、,R2,、,20H,、和,P2,口中的内容各是什么?,MOV A,,,21H;,MOV 40H,,,A;,MOV R2,22H;,MOV R1,21H;,MOV P2,30H;,例,A(21H)=54H,(40H)A,R2(22H)=55H,(R1)(21H)=54H,P2(30H)=56H,结果为:,A=54H,,,(40H)=54H,,,R2=55H,,,(20H)=54H,,,P2=56H,直接寻址型,内部数据传送指令,已知:,R2=20H,、,(21H)=23H,、,(22H)=45H,、,(30H)=78H,,,试问执行如下指令后,结果,A,、,40H,、,R1,、,20H,、和,P2,口中的内容各是什么?,MOV A,,,21H;,MOV 40H,,,A;,MOV R1,22H;,MOV R2,21H;,MOV P2,30H;,练习,A(21H)=23H,(40H)A,R1(22H)=45H,(R2)(21H)=23H,P2(30H)=56H,结果为:,A=23H,,,(40H)=23H,,,R1=45H,,,(20H)=23H,,,P2=78H,直接寻址型,内部数据传送指令,另一操作数为寄存器寻址方式,二字节机器码:一字节操作码,一字节地址操作数,例,:MOV A,,,20H,;机器码,:E5H,、,20H,MOV 20H,,,A,;机器码,:F5H,、,20H,MOV R0,,,20H,;机器码,:10101,000,B,、,20H,MOV R7,,,30H,;机器码,:10101,111,B,、,30H,MOV 20H,,,R0,;机器码,:10001,000,B,、,20H,MOV 30H,,,R7,;机器码,:10001,111,B,、,30H,说明,直接寻址型,内部数据传送指令,另一操作数为直接寻址方式,三字节机器码:一字节操作码,一字节源地址操作数,一字节目的地址操作数,例,:MOV ACC,,,20H,;机器码,:85H,、,E0H,、,20H,MOV E0H,,,30H,;机器码,:85H,、,E0H,、,30H,MOV 60H,,,30H,;机器码,:85H,、,60H,、,30H,说明,直接寻址型,内部数据传送指令,另一操作数为寄存器间接寻址方式,二字节机器码:一字节操作码,一字节地址操作数,例,:MOV R0,,,20H,;机器码,:1010011,0,B,、,20H,MOV R1,,,30H,;机器码,:1010011,1,B,、,30H,MOV 20H,,,R0,;机器码,:1000010,0,B,、,20H,MOV 30H,,,R1,;机器码,:1000010,1,B,、,30H,说明,直接寻址型,内部数据传送指令,MOV A,,,Rn,;,A,Rn,MOV,Rn,,,A,;,Rn,A,MOV direct,,,Rn,;,(direct),Rn,寄存器寻址型,内部数据传送指令,已知,:R1=30H,、,R2=31H,、,(56H)=23H,,,试问执行以下指令后,结果各是什么?,MOV A,R1,MOV R2,A,MOV 56H,R1,结果为:,A=30H,,,R2=30H,,,(56H)=30H,例,已知,:R1=1EH,、,R2=2FH,、,(56H)=3DH,,,试问执行以下指令后,结果各是什么?,MOV A,R2 ;,MOV R1,A ;,MOV 56H,R1;,练习,AR2=2FH,R1 A=2FH,(56H)R1=2FH,结果为:,A=2FH,,,R2=2FH,,,(56H)=2FH,寄存器寻址型,内部数据传送指令,另一操作数为寄存器寻址方式,一字节机器码:仅有操作码,操作数隐含在操作码中,例,:MOV A,,,R0,;机器码,:11101,000,B,MOV R1,,,A,;机器码,:11111,001,B,说明,寄存器寻址型,内部数据传送指令,另一操作数为直接寻址方式,二字节机器码:一字节操作码,一字节地址操作数,例,:,MOV 30H,,,R0,;机器码,:10001,000,B,、,30H,MOV R1,,,30H,;机器码,:10101,001,B,、,30H,说明,寄存器寻址型,内部数据传送指令,MOV A,,,Ri,;,A (Ri),MOV ,Ri,,,A,;,(,Ri,)A,MOV direct,,,Ri,;,(direct)(,Ri,),注,:,源、目的操作数中仅有一个为间址,寄存器间接寻址型,内部数据传送指令,已知:,(30H)=12H,、,(31H)=13H,、,R0=30H,、,R1=31H,,,试问执行以下指令后,A,、,30H,、,31H,和,32H,各是什么?,MOV A,,,R0;,MOV R1,,,A;,MOV R0,#34H;,MOV 32H,,,R1;,例,A(R0)=12H,(R1)A=12H,(R0)34H,(32H)(R1),结果为:,A=12H,,,(30H)=34H,,,(31H)=12H,,,(32H)=12H,寄存器间接寻址型,内部数据传送指令,已知:,(40H)=56H,、,(41H)=78H,、,R0=40H,、,R1=41H,,,试问执行以下指令后,A,、,40H,、,41H,和,32H,各是什么?,MOV A,,,R0;,MOV R1,,,A;,MOV R0,#34H;,MOV 32H,,,R1;,练习,A(R0)=56H,(R1)A=56H,(R0)34H,(32H)(R1),结果为:,A=56H,,,(40H)=34H,,,(41H)=56H,,,(32H)=56H,寄存器间接寻址型,内部数据传送指令,另一操作数为累加器,A,一字节机器码:仅有操作码,操作数隐含在操作码中,例,:MOV A,,,R0,;机器码,:1110011,0,B,MOV R1,,,A,;机器码,:1111011,1,B,讨论,寄存器间接寻址型,内部数据传送指令,另一操作数为直接寻址方式,二字节机器码:一字节操作码,一字节地址操作数,例,:MOV 30H,,,R0,;机器码,:1000010,0,B,、,30H,MOV 30H,,,R1,;机器码,:1000010,1,B,、,30H,讨论,寄存器间接寻址型,内部数据传送指令,MOV A,,,#data,MOV A,,,direct,MOV direct,,,A,MOV A,,,Rn,MOV Rn,,,A,MOV A,,,Ri,MOV ,Ri,,,A,MOV Rn,,,#data,MOV direct,,,#data,MOV ,Ri,,,#data,MOV Rn,,,direct,MOV direct,,,Rn,MOV ,Ri,,,direct,MOV direct,,,Ri,MOV direct,,,direct,小结,内部数据传送指令,累加器,A,寻址,Ri,间接寻址,direct,直接寻址,Rn,工作寄存器寻址,#data,立即数寻址,内部数据传送指令,MOV R0,R1,MOV R1,R7,MOV R0,R1,MOV A,R1,MOV R0,A,MOV A,R7,MOV R1,A,MOV R6,R0,MOV A,R0,MOV R6,A,MOV A,R1,MOV R0,A,错误,正确,练习,判断下列指令的正误,将错误的更正,.,外部数据传送指令,16,位数据传送指令,MOV DPTR,,,#data16,;,DPTR,外部,RAM,、,ROM,的,16,位地址值,16,位数据传送指令(,1,条),60H 90,61H 20,62H 30,程序存储器,30,20,00H,7FH,80H,81H,82H,83H,片内数据 存储器,例,:,MOV DPTR,#2030H,访问外部,ROM,存储器的指令(,2,条),MOVC A,,,A+DPTR,;,A,(,A+DPTR,),数据指针,MOVC A,,,A+PC,;,PC PC+1,、,A,(,A+PC,),程序指针,注:,PC,不能随便改变,称为近程查表,DPTR,可随时赋值,称远程查表,故,A+DPTR,比,A+PC,更常用,外部数据传送指令,访问外部,ROM,指令,60H 90,61H 20,62H 30,63H 93,程序存储器,30,20,访问外部,ROM,指令,例,:CLR A,MOV DPTR,#2030H,MOVC A,A+DPTR,2030H AA,00H,7FH,80H,81H,82H,83H,片内数据 存储器,E0H,AA,2000H 74,2001H 05,2002H 83,2003H,程序存储器,访问外部,ROM,指令,2008H AA,00H,7FH,80H,81H,82H,83H,片内数据 存储器,E0H,AA,例,:MOV A,#05H,MOVC A,A+PC,05,AA,已知:,1000H,:,MOV A,,,#10H,;,A=10H,1002H,:,MOVC A,,,A+PC,表项,1010H:02H,1011H:04H,1012H:06H,1013H:08H,A(A+PC)、A=08H,结果,;,取指后,PC=1003H,、,A+PC=1013H,注,:,表项地址范围为,1003H 1003H+FFH,外部数据传送指令,访问外部,ROM,指令,例,已知,:,片外,ROM,的,2008H,单元中有一数,34H,,,试用两条外部,ROM,数据传送指令各编写一个程序,把数送到片,7FH,单元。,解:采用,DPTR,作为基址寄存器,基址可定为,2000H,,,地址偏移量则为,08H,,,程序如下:,MOV,DPTR,,,2000H,;,DPTR2000H,MOV,A,,,08H,;,A08H,MOVC,A,,,A,DPTR,;,A34H,MOV,7FH,,,A,;(,7FH,),A,例,程序存储器,A,DPTR,20,08H,0000H,34H,2008H,00H,A L U,如图所示,这里,A,具有双重作用,在指令执行前用来存放地址偏移量,指令执行后为目的操作数。,34H,34H,采用,PC,作为基址寄存器,程序如下:,ORG 0000H,SJMP START,ORG 2000H,START,:,MOV,A,,,05H,;,A05H,MOVC,A,,,A,PC,;,A34H,MOV,7FH,,,A,;(,7FH,),A,例,外部,RAM,存储器的指令(,4,条),MOVX A,,,Ri,;,外部,RAM,的,00H FFH,单元读,MOVX ,Ri,,,A,;,外部,RAM,的,00H FFH,单元写,MOVX A,,,DPTR,;,外部,RAM,的,64K,单元读,MOVX DPTR,,,A,;,外部,RAM,的,64K,单元写,注:,MOVC,指令仅读操作,,MOVX,指令可读写操作,访问外部存储器仅用间址,不用直接地址,外部数据传送指令,访问外部,RAM,指令,已知外部,RAM,的,60H,单元中有一个数为,30H,,,试编程把,30H,送到片外,RAM,的,2000H,单元中。,例,外部数据传送指令,访问外部,RAM,指令,解:,MOV R1,#60H ;R1=60H,MOVX A,R1 ;A=30H,MOV DPTR,#2000H ;DPTR=2000H,MOVX DPTR,A ;2000H30H,SJMP$;,停止,分析:上面虽都是片外,RAM,的地址单元,但不能直接传送,必须经过累加器,A,的转送,才能实现。,MOVX A,2000H,MOVX A,20H,错误,MOV DPTR,#2000H,MOVX A,DPTR,错误,MOV R0,#20H,MOVX A,R0,练习,判断下列指令的正误,将错误的更正,.,访问外部,RAM,指令,字节,数据交换指令,XCH,XCH A,,,Rn,;,A Rn,XCH A,,,direct,;,A,(,direct,),XCH A,,,Ri,;,A,(,Ri,),数据交换指令,00H,FF,E0,80,用户,RAM,区,位寻址区,通用寄存器区,7F,30,20,00,已知,:A=AAH,R0=00H,执行如下指令后,结果如何,?,XCH A,R0,结果,:A=00H,R0=AAH,AAH,例,低,4,位数据交换指令,XCHD,累加器,A,中高低,4,位,交换,指令,SWAP,XCHD A,,,Ri,;,A,03,(,Ri,),03,SWAP A ;A,03,A,47,注:交换指令均与累加器,A,有关,数据交换指令,已知,:,片内,20H,单元有一个数为,30H,,,片外,20H,单元有一个数为,03H,,,编程把二个数相互交换。,例,解:,MOV R0,#20H,;,R020H,MOVX A,,,R0,;,A03H,XCH A,R0,;,A30H,,,20H03H,MOVX R0,A,;,30H20H,(,外部,RAM,),SJMP$,;,停止,分析:片内、片外没有直接的交换指令,必须经过累加器,A,的中转,才能实现。,数据交换指令,堆栈操作的规则,:,先进后出,后进先出。,PUSH direct,;SP SP+1、(SP)(direct),POP direct,;(direct)(SP)、SP SP 1,堆栈操作指令,61H,PUSH A,已知,:A=AAH,SP=60H,执行如下指令后,结果如何,?,结果,:,SP=61H,(,61H,),=AAH,例,FFH,E0H,81H,80H,AAH,位寻址区,通用寄存器区,2FH,20H,00H,7FH,62H,61H,60H,60H,SP,AAH,PUSH A,61H,61H,POP A,已知,:A=00H,SP=61H,(,61H,),=AAH,,,执行如下指令后,结果如何,?,结果,:,SP=60H,A=AAH,例,00H,FFH,E0H,81H,80H,位寻址区,通用寄存器区,2FH,20H,00H,7FH,62H,61H,60H,60H,SP,61H,AAH,例,已知,:,(,20H)=M1,、(,50H,),=M2,、,编写程序用堆栈,指令把,20H,和,50H,单元中的内容相交换。,解:由堆栈所具备的原则,程序为:,MOV SP,,,#60H,;,设置栈底首址为,60H,PUSH 20H,;,SPSP+1,,,61 M1,PUSH 50H,;,SPSP+1,,,62 M2,POP 20H,;,(20H)M2,,,SP SP-1=61H,POP 50H,;,(50H)M1,,,SP SP-1=60H,在,MCS-51,指令系统中,该类指令为其核心,共,48,条可分为三大类,:,算术运算指令,(24,条,),逻辑运算指令,(20,条,),移位指令,(4,条,),3.3.6,算逻运算和移位指令,加法指令(,13,条):,减法指令(,8,条):,十进制调整指令(,1,条):,乘法和除法指令(,2,条):,ADD、ADDC、INC、DA,SUBB、DEC,DA,MUL、,DIV,算术运算指令,不带,Cy,加法指令(,4,条):,ADD A,,,Rn,;,A A+,Rn,ADD A,,,direct,;,A A+,(,direct,),ADD A,,,Ri,;,A A+,(,Ri,),ADD A,,,#data,;,A A+data,算术运算指令,注:指令的目的操作数为累加器,A,执行指令后将影响标志位,Cy,。,加法指令,试分析执行如下指令后,累加器,A,和,PSW,中各标志的变化情况如何?,MOV,A,#5AH,ADD A,#6BH,解:第一条指令先向累加器,A,传送一个数,5AH,,,第二条为加法指令,机器执行加法指令时按带符号数运算。,例,竖式表示如下图:,A=0 1 0 1 1 0 1 0 B,data=0 1 1 0 1 0 1 1 B,107,1 1 1 0 0 0 1 0 1 B,1,CS,90,+),197,1,AC,0,0,CP,执行结果:,A=5A+6B=C5H,,,PSW=44H,0 1 0 0 0 1 0 0,Cy AC F0 RS1 RS0 OV -P,5A+6B=?,C7,C6,试分析执行如下指令后,累加器,A,和,PSW,中各标志的变化情况如何?,MOV,A,#78H,ADD A,#9AH,解:第一条指令先向累加器,A,传送一个数,5AH,,,第二条为加法指令,机器执行加法指令时按带符号数运算。,练习,竖式表示如下图:,120 A=0 1 1 1 1 0 0 0 B,+)154 data=1 0 0 1 1 0 1 0 B,274 1 0 0 0 1 0 0 1 0 B,-)256,18,1,C6,1,AC,1,C7,执行结果:,A=78+9A=12H,,,PSW=C0H,1 1 0 0 0 0 0 0,Cy AC F0 RS1 RS0 OV -P,78+9A=?,带,Cy,加法指令(,4,条):,ADDC A,,,Rn,;,A A+,Rn,+,Cy,ADDC A,,,#data,;,A A+data+,Cy,ADDC A,,,direct,;,A A+(direct)+,Cy,ADDC A,,,Ri,;,A A+(,Ri,)+,Cy,算术运算指令,注:若,Cy=0,,则,ADD,等于,ADDC,加法指令,已知:,A,8FH,、,R1,20H,、,(20H),12H,、,(21H),0FEH,和,Cy,1,,,试问,CPU,依次执行以下指令后累加器,A,和,Cy,中的值是多少。,a.,ADDC A,R1,b.,ADDC A,21H,c.,ADDC A,R1,d.,ADDC A,#7FH,解:操作结果应为:,a.A=8F+20+1=0B0H,Cy=0,b.A,=8F+FE+1=8EH,Cy=1,c.A,=8F+12+1=0A2H,Cy=0,d.A,=8F+7F+1=0FH,Cy=1,例,已知:,A,7DH,、,R0,30H,、,(30H),35H,、,(31H),0DCH,和,Cy,1,,,试问,CPU,依次执行以下指令后累加器,A,和,Cy,中的值是多少。,a.,ADDC A,R0,b.,ADDC A,31H,c.,ADDC展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




单片机原理及应用第03章.ppt



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/12785016.html