




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、凌宏江-单片微型计算机原理单片微型计算机原理与应用单片微型计算机原理与应用主讲教师:凌宏江华中科技大学材料学院材料学院本科生用电子教案2012-2013学年第一学期凌宏江-单片微型计算机原理 2目目 录录第一章第一章 概述概述第二章第二章 MCS-51的内部结构的内部结构第三章第三章 MCS-51的指令系统的指令系统第四章第四章 汇编语言程序设计汇编语言程序设计第五章第五章 存储器及扩展技术存储器及扩展技术第六章第六章 中断系统中断系统第七章第七章 I/O口扩展及应用口扩展及应用 第八章第八章 定时器定时器/计数器计数器第九章第九章 串行通信及其接口串行通信及其接口 第十章第十章 A/D和和D
2、/A转换器接口转换器接口第十一章第十一章 显示器、键盘、打印机接口显示器、键盘、打印机接口凌宏江-单片微型计算机原理 3第三章第三章 MCS-51的指令系统的指令系统3.1 指令及其表示方式指令及其表示方式3.2 寻址方式寻址方式3.3 指令系统指令系统凌宏江-单片微型计算机原理 43.1 指令及其表示方式指令及其表示方式凌宏江-单片微型计算机原理 51. 指令的格式指令的格式 MCS-51采用变长字节的指令,其指令格式为:操作码操作码 操作数操作数1,操作数操作数2其中:单字节指令49条,NOP,DA A 双字节指令46条,ADD A, #DATA 三字节指令16条:MOV DPTR, #D
3、ATA凌宏江-单片微型计算机原理 62. 指令表示方法指令表示方法二进制二进制0010010000000111 16进制进制2407H凌宏江-单片微型计算机原理 73. 指令分类指令分类MCS-51共共111条指令条指令字节数字节数运算速度运算速度单字节指令:单字节指令:49条条双字节指令:双字节指令:45条条三字节指令:三字节指令:17条条单周期指令:单周期指令:64条条双周期指令:双周期指令:45条条四周期指令:四周期指令: 2 条条功能功能数据传送类:数据传送类:29条条算术运算类:算术运算类:24条条逻辑运算类:逻辑运算类:24条条控制转移类:控制转移类:17条条位操作类:位操作类:
4、17条条凌宏江-单片微型计算机原理 83.2 寻址方式寻址方式 寻址方式:CPU寻找操作数或操作数地址的方法。寻址方式越多,计算机指令功能越强,灵活性越大。 MCS-51单片机有七种寻址方式:n 立即寻址n 直接寻址n 寄存器寻址n 寄存器间接寻址n 变址寻址(基址寄存器+变址寄存器间接寻址)n 相对寻址n 位寻址凌宏江-单片微型计算机原理 9常用符号Rn:工作寄存器中的寄存器R0、R1R7之一Ri:工作寄存器中的寄存器R0或R1#data:8位立即数#data16:16位立即数direct:片内RAM或SFR的地址(8位):间接寻址寄存器bit:片内RAM或SFR的位地址addr11:11位
5、目的地址(2K范围)addr16:16位目的地址(64K范围)rel:补码形式的8位地址偏移量。偏移范围为-128127/:位操作指令中,该位求反后参与操作,不影响该位X:片内RAM的直接地址或寄存器(X):相应地址单元中的内容凌宏江-单片微型计算机原理 101. 立即寻址立即寻址 立即寻址方式是操作数包括在指令字节中,指令操作码后面字节的内容就是操作数本身,其数值由程序员在编制程序时指定,以指令字节的形式存放在程序存储器中。立即数只能作为源操作数,不能当作目的操作数。 例如: MOV A,#52H ;A52H MOV DPTR,#5678H ;DPTR5678H凌宏江-单片微型计算机原理 1
6、12. 直接寻址直接寻址 在指令中含有操作数的直接地址,该地址指出了参与操作的数据所在的字节地址或位地址。例如: 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。凌宏江-单片微型计算机原理 12直接寻址直接寻址-示意图示意图凌
7、宏江-单片微型计算机原理 133. 寄存器寻址寄存器寻址 由指令指出某一个寄存器中的内容作为操作数,这种寻址方式称为寄存器寻址。寄存器一般指累加器A和工作寄存器R0R7。例如:MOV A,Rn ;A(Rn) MOV Rn,A ;Rn(A) MOV B,A ;B(A)MOV A,R7A凌宏江-单片微型计算机原理 144. 寄存器间接寻址寄存器间接寻址 由指令指出某一个寄存器的内容作为操作数,这种寻址方式称为寄存器间接寻址。寄存器间接寻址只能使用寄存器R0或R1作为地址指针,来寻址内部RAM(00HFFH)中的数据。例如: MOV R0,#60H ;R060H MOV A, R0 ;A (R0)
8、MOV A ,R1 ;A (R1) 寄存器间接寻址也适用于访问外部RAM,可使用R0,R1或DPTR作为地址指针。寄存器间接寻址用符号“”表示。例如:MOV DPTR,#3456H ;DPTR3456H MOVX A,DPTR ;A (DPTR) 是把DPTR寄存器所指的那个外部数据存储器(RAM)的内容传送给A,假设(3456H)=99H,指令运行后(A)=99H。凌宏江-单片微型计算机原理 15寄存器间接寻址寄存器间接寻址-示意图示意图凌宏江-单片微型计算机原理 165. 变址寻址变址寻址 这种寻址方式用于访问程序存储器中的数据表格,它以基址寄存器(DPTR或PC)的内容为基本地址,加上变
9、址寄存器A的内容形成16位的地址,访问程序存储器中的数据表格。例如: MOVC A,A + DPTR MOVC A,A + PC JMP DPTRMOVC A,A+DPTR 凌宏江-单片微型计算机原理 17基址寄存器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址-示意图示意图MOVC A,A + DPTR凌宏江-单片微型计算机原理 186. 相对寻址相对寻址 相对寻址以程序计数器PC的当前值作为基地址,与指令中给出的相对偏移量rel进行相加,把所得之和作为程序的转移地址。例如:JZ LOOPDJNZ R0,DISPLAY 凌宏江-单片微型计算机原理 197. 位寻址位寻址单片机中设有独立的
10、位处理器。位操作指令能对内部RAM中的位寻址区(20H2FH)和某些有位地址的特殊功能寄存器进行位操作。 SETB TR0 ;TR01 CLR 00H ;(00H)0 MOV C,57H ;将57H位地址的内容传送到位 累加器C中 ANL C,5FH ;将5FH位状态与进位位C相与 结果在C中 凌宏江-单片微型计算机原理 20寻址方式涉及的存储器空间寻址方式涉及的存储器空间凌宏江-单片微型计算机原理 213.3 指令系统指令系统 MCS-51指令系统有42种助记符,代表了33种功能,指令助记符与各种可能的寻址方式相结合,共构成111条指令。 按指令的功能,51指令系统可分为下列5类:(1)数据
11、传送类指令(29条)(2)算术运算类指令(24条)(3)逻辑运算及移位类指令(24条)(4)位操作类指令(17条)(5)控制转移类指令(17条)凌宏江-单片微型计算机原理 221. 数据传送类指令(数据传送类指令(29条)条) 数据传送类指令一般的操作是把源操作数传送到指令所指定的目标地址。指令执行后,源操作数保持不变,目的操作数为原操作数所替代。 数据传送类指令用到的助记符有:MOV,MOVX,MOVC,XCH,XCHD,PUSH,POP,SWAP。 数据一般传送指令的助记符“MOV”表示。 格式: MOV 目的操作数,源操作数 功能:目的操作数(源操作数中的数据) 源操作数可以是:A、Rn
12、、direct、Ri、#data 目的操作数可以是:A、Rn、direct、Ri 数据传送指令一般不影响标志,只有一种堆栈操作可以直接修改程序状态字PSW,这样,可能使某些标志位发生变化。凌宏江-单片微型计算机原理 231) 以累加器为目的操作数的指令(以累加器为目的操作数的指令(4条)条) MOV A,Rn ;RnA MOV A,direct ;(direct)A MOV A,Ri ;(Ri)A MOV A,#data;dataA 将源操作数指定内容送到将源操作数指定内容送到A中,源操作数中,源操作数不变。不变。凌宏江-单片微型计算机原理 242) 以寄存器以寄存器Rn为目的操作数的指令(为
13、目的操作数的指令(3条)条)MOV Rn,A ;ARnMOV Rn,direct ;(direct)RnMOV Rn,#data ;dataRn 这组指令功能是把源操作数指定的内容这组指令功能是把源操作数指定的内容送入当前工作寄存器,源操作数不变。送入当前工作寄存器,源操作数不变。凌宏江-单片微型计算机原理 253) 以直接地址为目的操作数的指令(以直接地址为目的操作数的指令(5条)条)MOV direct,A ;A(direct)MOV direct,Rn ;Rn(direct)MOV direct1,direct2 ;(direct2)(direct1)MOV direct,Ri ;(Ri
14、)(direct)MOV direct,#data ;data(direct) 这组指令功能是把源操作数指定的内容送入由直接地址这组指令功能是把源操作数指定的内容送入由直接地址指出的片内存储单元。例:指出的片内存储单元。例: MOV 20H,A MOV 20H,R1MOV 20H,30HMOV 20H,R1MOV 0A0H,#34HMOV P2,#34H MOV P2,P1凌宏江-单片微型计算机原理 264) 以间接地址为目的操作数的指令(以间接地址为目的操作数的指令(3条)条)MOV Ri,A ;A (Ri) MOV Ri,direct ;(direct) (Ri)MOV Ri,#data;
15、data (Ri) 功能:把源操作数指定的内容送入以功能:把源操作数指定的内容送入以R0或或R1为地址指针的片内存储单元中。例:为地址指针的片内存储单元中。例:MOV R0,AMOV R1,20HMOV R0,#34H凌宏江-单片微型计算机原理 27凌宏江-单片微型计算机原理 285) 十六位数的传递指令(十六位数的传递指令(1条)条)MOV DPTR,#data16 MCS-51是一种是一种8位机,这是唯一的一条位机,这是唯一的一条16位位立立即数传递指令。功能:将一个即数传递指令。功能:将一个16位的立即数送入位的立即数送入DPTR中去。其中高中去。其中高8位送入位送入DPH,低,低8位送
16、入位送入DPL。例:例:MOV DPTR,#1234H执行完了之后执行完了之后DPH中的值为中的值为12H,DPL中的值为中的值为34H。如果我们分别向。如果我们分别向DPH,DPL送数,则结果也送数,则结果也一样。如下面两条指令:一样。如下面两条指令:MOV DPH,#35H MOV DPL,#12H 则就相当于执行了则就相当于执行了 MOV DPTR,#3512H凌宏江-单片微型计算机原理 296) 累加器累加器A与片外与片外RAM传递类指令传递类指令(4条条)MOVX A,Ri ;(Ri)AMOVX Ri,A ;A(Ri)MOVX A,DPTR ;(DPTR)AMOVX DPTR,A ;
17、A(DPTR)说明: 1. 在51中,与外部存储器RAM打交道的只可以是A累加器。所有需要送入外部RAM的数据必需要通过A送去,而所有要读入的外部RAM中的数据也必需通过A读入。内部RAM间可以直接进行数据的传递,而外部则不行。比如,要将外部RAM中某一单元(设为0100H单元的数据)送入另一个单元(设为0200H单元),必须先将0100H单元中的内容读入A,然后再送到0200H单元中去。凌宏江-单片微型计算机原理 30 2. 使用时应先将要读或写的地址送入DPTR或Ri中(DPHP2,DPLP0; RiP0),然后再用读写命令。例:将数据10H送入外部RAM3210H单元中。MOV A,10
18、H MOV A,10H MOV DPTR,#3210H 或 MOV P2,32HMOVX DPTR,A MOV R0,10H MOVX R0,A凌宏江-单片微型计算机原理 317) 读程序存储器指令(读程序存储器指令(2条)条)MOVC A,A+DPTR ;(A+DPTR)A MOVC A,A+PC ;(PC+1)PC,(A+PC)A 本组指令是将ROM中的数送入A中。本组指令也被称为查表指令,常用此指令来查一个已做好在ROM中的表格。说明:查找到的结果被放在A中,因此,本条指令执行前后,A中的值不一定相同。例:有一个数在R0中,要求用查表的方法确定它的平方值(此数的取值范围是0-5) MOV
19、 DPTR,#2000H ;表始址DPTRMOV A,R0 ;待查表的数AMOVC A,A+DPTR ;(A+DPTR)A . ORG 2000HDB 0,1,4,9,16,25凌宏江-单片微型计算机原理 32PC当前值当前值+data=平方表始址平方表始址PC当前值当前值=1FFEH,平方表始址,平方表始址2000Hdata2000H-1FFEH02H在上述程序中,用在上述程序中,用02H为为data代真。代真。采用采用PC作为基址寄存器实现上例:作为基址寄存器实现上例: ORG 1FFAH 1FFAH MOV A,R0 ;待查表的数;待查表的数A 1FFBH ADD A,#data ;A+
20、dataA 1FFDH MOVC A,A+PC ;(PC+1)PC,(A+PC)A 1FFEH SJMP ;停机;停机 2000H DB 0 2001H DB 1 2002H DB 4 2003H DB 9 2004H DB 16 2005H DB 25 END凌宏江-单片微型计算机原理 338) 堆栈操作(堆栈操作(2条)条)PUSH direct ;SPSP+1,(SP)(direct)POP direct ;(direct)(SP), SPSP-1 第一条为压入压入指令,就是将direct中的内容送入堆栈中,第二条为弹弹出出指令,就是将堆栈中的内容送回到direct中。例:例:MOV S
21、P,#5FHMOV A,#100MOV B,#20PUSH ACCPUSH B 则执行第一条PUSH ACC指令是这样的:将SP中的值加1,即变为60H,然后将A中的值送到60H单元中,因此执行完本条指令后,内存60H单元的值就是100,同样,执行PUSH B时,是将SP+1,即变为61H,然后将B中的值送入到61H单元中,即执行完本条指令后,61H单元中的值变为20。凌宏江-单片微型计算机原理 349) 交换指令(交换指令(5条)条)XCH A,Rn ;ARnXCH A, direct;A(direct)XCH A, Ri;A(Ri)XCHD A, Ri;A.3A.0(Ri).3(Ri).0
22、SWAP A;A.3A.0A.7A.4例:例: 已知已知A中的内容为中的内容为34HMOV R6, #29H ;R6=29HXCH A, R6 ;A=29H, R6=34HSWAP A;A=92HXCH A, R6;A=34H, R6=92H XCHD A, R0;A=36H, (R0)=54H (设原来R0;指向的单元的内容为56H)凌宏江-单片微型计算机原理 352. 算术运算类指令算术运算类指令(24条条) 主要对主要对8位无符号数;也可用于带符号数位无符号数;也可用于带符号数运算。包括:加、减、乘、除、加运算。包括:加、减、乘、除、加1、减、减1运运算指令影响算指令影响PSW有关位。有
23、关位。 凌宏江-单片微型计算机原理 361) 加法指令加法指令-不带进位位的加法指令(不带进位位的加法指令(4条)条)ADD A,#data;AdataAADD A,direct ;A(direct )AADD A,Rn ;ARnAADD A,Ri ;A(Ri)A用途:用途:将将A中的值与源操作数所指内容相加,最终结果存在中的值与源操作数所指内容相加,最终结果存在A中。例:中。例:MOV A,#0AEH ;-82DADD A,#81H ;-127D则执行完本条指令后,则执行完本条指令后,A中的值为中的值为2FH;C=1,AC=0,OV=1,P=1。对无符号数:结果为对无符号数:结果为12FH;
24、带符号数运算:带符号数运算:OV=1,有错。,有错。凌宏江-单片微型计算机原理 372) 加法指令加法指令-带进位位的加法指令(带进位位的加法指令(4条)条)ADDC A,Rn;ARnCYAADDC A,direct;A(direct )CYAADDC A,Ri;A(Ri)CYAADDC A,#data;AdataCYA用途:用途:将将A中的值和其后面的值以及进位位中的值和其后面的值以及进位位C中的值相加,中的值相加, 最终结果存在最终结果存在A,常用于多字节数运算中。,常用于多字节数运算中。说明:说明:由于由于51单片机是一种单片机是一种8位机,所以只能做位机,所以只能做8位的数学运位的数学
25、运算,但算,但8位运算的范围只有位运算的范围只有0255,这在实际工作中是不够,这在实际工作中是不够的,因此就要进行扩展,一般是将的,因此就要进行扩展,一般是将2个个8位位(两字节两字节)的数学运的数学运算合起来,成为一个算合起来,成为一个16位的运算,这样,可以表达的数的范位的运算,这样,可以表达的数的范围就可以达到围就可以达到065535。凌宏江-单片微型计算机原理 38 先做先做67H+A0H=107H,而,而107H显然超过了显然超过了0FFH,因此最终保存在,因此最终保存在A中的是中的是07H,而,而1则到了则到了PSW中的中的CY位了。换言之,位了。换言之,CY就相当于是就相当于是
26、100H。 然后再做然后再做10H + 30H + CY,结果是,结果是41H,所以,所以最终的结果是最终的结果是4107H。例:1067H+30A0H1067H+30A0H0001 0000 0110 0111 0011 0000 1010 0000 0100 0001 0000 0111 1067H1067H30A0H30A0H4107H4107H凌宏江-单片微型计算机原理 393) 加1指令(5条)INC A;A+1A,影响,影响P标志标志INC Rn;Rn+1RnINC direct;(direct)+1(direct)INC Ri;(Ri)+1(Ri)INC DPTR;DPTR+1D
27、PTR功能很简单,就是将后面目标中的值加功能很简单,就是将后面目标中的值加1。例:例:A=12H,R0=33H,(21H)=32H,(34H)=22H,DPTR=1234H。连续执行下面的指令:连续执行下面的指令: INC A;A=13H INC R0 ;R0=34H INC 21H ;(21H)=33H INC R0;(34H)=23H INC DPTR;DPTR=1235H凌宏江-单片微型计算机原理 404) 十进制调整指令(十进制调整指令(1条)条)DA A在进行在进行BCD码加法运算时,跟在码加法运算时,跟在ADD和和ADDC指令之后,用来对指令之后,用来对BCD码加法运算结码加法运算
28、结果进行果进行自动修正自动修正。例:例:A=0001 0101BCD(代表十进制数(代表十进制数15) ADD A,#8; A=1DH,按二进制规律加,按二进制规律加DA A ; A=23H,按十进制规律加,按十进制规律加凌宏江-单片微型计算机原理 415) 减法指令减法指令-带借位的减法指令(带借位的减法指令(4条)条)SUBB A,Rn;ARnCYASUBB A,direct ;A(direct )CYASUBB A,Ri;A(Ri)CYASUBB A,#data;AdataCYA将将A中的值减去源操作数所指内容以及进位位中的值减去源操作数所指内容以及进位位C中的中的值,最终结果存在值,最
29、终结果存在A中。中。如:如: SUBB A,R2设:设: A=C9H,R2=55H,CY=1,执行指令之后,执行指令之后,A中的值为中的值为73H。说明说明:没有不带借位的减法指令,如果需要做不带位的减法:没有不带借位的减法指令,如果需要做不带位的减法指令(在做第一次相减时),只要将指令(在做第一次相减时),只要将CY清零即可。清零即可。凌宏江-单片微型计算机原理 426) 减减1指令(指令(4条)条)DEC A;A-1A,影响影响P标志标志DEC Rn;Rn-1RnDEC direct;(direct)-1(direct)DEC Ri;(Ri)-1(Ri)与加与加1指令类似指令类似,少少DP
30、TR。凌宏江-单片微型计算机原理 437) 乘法指令(乘法指令(1条)条)MUL AB ;ABBA此指令的功能是将此指令的功能是将A和和B中的两个中的两个8位位无符号无符号数相乘,两数相乘结果一般比较大,因此最数相乘,两数相乘结果一般比较大,因此最终结果用终结果用1个个16位数来表达,其中高位数来表达,其中高8位放在位放在B中,低中,低8位放在位放在A中。在乘积大于中。在乘积大于FFH时,时,0V置置1,否则,否则OV为为0;而;而CY总是总是0。例:例: A=4EH,B=5DH,执行指令,执行指令MUL AB后,乘积是后,乘积是1C56H,所以在,所以在B中放的是中放的是1CH,而而A中放的
31、则是中放的则是56H。 OV=1, P=0凌宏江-单片微型计算机原理 448) 除法指令(除法指令(1条)条)DIV AB;AB的商的商A,余数,余数B此指令的功能是将此指令的功能是将A中的中的8位无符号数除位无符号数除B中中的的8位无符号数(位无符号数(A/B)。除了以后,商放在)。除了以后,商放在A中,余数放在中,余数放在B中。中。CY和和OV都是都是0。如果。如果在做除法前在做除法前B中的值是中的值是00H,也就是除数为,也就是除数为0,那么那么OV=1。如如:A=11H,B=04H,执行指令,执行指令DIV AB后,后,结果结果:A=04H,B=1。 CY=0,OV=0,P=1凌宏江-
32、单片微型计算机原理 453. 逻辑运算类指令(逻辑运算类指令(24条)条) 主要用于对主要用于对2个操作数按位进行逻辑操作,个操作数按位进行逻辑操作,结果送到结果送到A或直接寻址单元。或直接寻址单元。 主要操作主要操作: 与、或、异或、移位、取反、清零与、或、异或、移位、取反、清零等。等。 对标志位的影响对标志位的影响: 除了目的操作数为除了目的操作数为ACC的指令影响奇偶的指令影响奇偶标志标志P外,一般不影响标志位。外,一般不影响标志位。凌宏江-单片微型计算机原理 461) 逻辑或指令(逻辑或指令(6条)条)ORL A,Rn ;ARnAORL A,direct ;A(direct)AORL
33、A,Ri ;A(Ri)AORL A,#data ;AdataAORL direct,A ;(direct)A(direct)ORL direct,#data ;(direct)data(direct)例:例:71H和和56H相或:相或:01110001 (71H) ) 01010110 (56H) 01110111 即即77H常用于某些位的置位凌宏江-单片微型计算机原理 47例:MOV A,#45H ;A=45HMOV R1,#25H;R1=25HMOV 25H,#39H ;(25H)=39HORL A,R1 ;45H39H = 7DHAORL 25H,#13H;39H13H = 3BH (2
34、5H)ORL 25H,A ;3BH7DH =7FH (25H)凌宏江-单片微型计算机原理 482) 逻辑与指令逻辑与指令 (6条)条)ANL A,Rn ;ARnAANL A,direct ;A(direct)AANL A,Ri ;A(Ri)AANL A,#data ;AdataAANL direct,A ;(direct)A(direct)ANL direct,#data ;(direct)data(direct)例:例:71H71H和和56H56H相与:相与:01110001 01110001 (71H71H) )01010110 01010110 (56H56H) 01010000 010
35、10000 即即50H50H常用于屏蔽某些位常用于屏蔽某些位凌宏江-单片微型计算机原理 493) 逻辑异或指令(逻辑异或指令(6条)条)XRL A,Rn ;A RnAXRL A,direct ;A (direct)AXRL A,Ri ;A (Ri)AXRL A,#data ;A dataAXRL direct,A ;(direct) A(direct)XRL direct,#data ;(direct) data(direct)例:例:71H71H和和56H56H相异或:相异或: 01110001 01110001 (71H71H) ) 01010110 ) 01010110 (56H56H)
36、 00100111 00100111 即即27H27H某些位的取反凌宏江-单片微型计算机原理 504) 清清0与取反指令(与取反指令(2条)条)取反:取反:CPL A ;/AA例:例:若若A=5CH,执行,执行CPL A 结果:结果:A=A3H清清0:CLR A ;0A凌宏江-单片微型计算机原理 515) 循环移位指令(循环移位指令(4条)条)RL ARR ARLC ARRC A后两条指令,影响后两条指令,影响P标志和标志和CY。A.7 A.0A.7 A.0A.7 A.0CYCYA.7 A.0凌宏江-单片微型计算机原理 52综合举例:综合举例: 把累加器把累加器A中的低中的低4位状态,通过位状
37、态,通过P1口的口的高高4位输出,位输出, P1口的低口的低4位状态不变。位状态不变。ANL A,#0FH;屏蔽;屏蔽A的高的高4位位SWAP AANL P1,#0FH ;清;清P1口高口高4位位ORL P1,A;P1口高口高4位输出位输出A的低的低4位;位;凌宏江-单片微型计算机原理 534. 控制转移类指令(控制转移类指令( 17条)条) 控制程序转移类指令(不包括位操作类控制程序转移类指令(不包括位操作类的转移指令)。此类指令一般不影响的转移指令)。此类指令一般不影响PSW。包括以下类型:包括以下类型: 无条件转移和条件转移无条件转移和条件转移 相对转移和绝对转移相对转移和绝对转移 长转
38、移和短转移长转移和短转移 调用与返回指令调用与返回指令凌宏江-单片微型计算机原理 54l短转移类指令:短转移类指令: AJMP addr11l 长转移类指令:长转移类指令:LJMP addr16l 相对转移指令:相对转移指令:SJMP rell 间接转移指令:间接转移指令:JMP A+DPTR凌宏江-单片微型计算机原理 55(1) 前三条指令的区别前三条指令的区别PC值改变,即跳转到一个标号处。值改变,即跳转到一个标号处。区别?区别?跳转的范围不同。跳转的范围不同。 短转移类指令:短转移类指令:AJMP addr11 2KB 长转移类指令:长转移类指令:LJMP addr16 64KB 相对转
39、移指令:相对转移指令:SJMP rel-128+127B指令构成不同。指令构成不同。AJMP、LJMP后跟的是后跟的是绝对地址绝对地址,而而SJMP后跟的是后跟的是相对地址相对地址。指令长度不同指令长度不同原则上,所有用原则上,所有用SJMP或或AJMP的地方都可以用的地方都可以用 LJMP来替代。来替代。凌宏江-单片微型计算机原理 56(2) 间接转移指令:间接转移指令:JMP A+DPTR 转移地址由转移地址由A+DPTR形成,并直接送入形成,并直接送入PC。指令对。指令对A、DPTR和标志位均无影响。本指令可代替众多的判别跳转指和标志位均无影响。本指令可代替众多的判别跳转指令,又称为散转
40、指令,多用于多分支程序结构中。令,又称为散转指令,多用于多分支程序结构中。例例: MOV DPTR,#TAB ;将;将TAB代表的地址送入代表的地址送入DPTRJMP A+DPTR ;跳转;跳转TAB: AJMP ROUT0 ;A=0,跳转,跳转ROUT0开始的程序段开始的程序段TAB+2: AJMP ROUT1 ;A=2,跳转,跳转ROUT1开始的程序段开始的程序段TAB+4: AJMP ROUT2 ;A=4,跳转,跳转ROUT2开始的程序段开始的程序段 .ROUT0: .ROUT1: .ROUT2: .凌宏江-单片微型计算机原理 57 条件转移指令是指在满足一定条件转移指令是指在满足一定条
41、件条件时进行时进行相对相对转移转移,否则程序继续执行本指令的下一条指令。,否则程序继续执行本指令的下一条指令。 JZrel JNZrel CJNEA,#data,rel CJNE A,direct,rel CJNE Rn,#data,rel CJNE Ri,#data,rel DJNZ Rn,rel DJNZ direct,rel凌宏江-单片微型计算机原理 58(1) 判判A内容是否为内容是否为0转移指令(转移指令(2条)条)JZ rel ;如果;如果A=0,则转移,否则顺序执行。,则转移,否则顺序执行。JNZ rel ;如果;如果A0,就转移。,就转移。 转移到相对于当前转移到相对于当前PC
42、值的值的8位偏移量的地址去。即:位偏移量的地址去。即: 新新的的PC值值=当前当前PC+偏移量偏移量rel 我们在编写汇编语言源程序时,可以直接写成:我们在编写汇编语言源程序时,可以直接写成:JZ 标号标号 ;即转移到标号处。;即转移到标号处。MOV A,R0JZ L1 MOV R1,#00H AJMP L2 L1: MOV R1,#0FFH L2: SJMP L2 END凌宏江-单片微型计算机原理 59CJNE A,#data,rel CJNE A,direct,relCJNE Rn,#data,relCJNE Ri,#data,rel 此类指令的功能是将两个操作数比较,如果两者此类指令的功
43、能是将两个操作数比较,如果两者相等相等,就就顺序执行顺序执行,如果,如果不相等不相等,就,就转移转移。 利用这些指令,可以判断两数是否利用这些指令,可以判断两数是否相等,相等,以及两数比较以及两数比较之后之后哪个大哪个大,哪个小哪个小? 如果两数不相等,则如果两数不相等,则CPU还会用还会用CY(进位位)来反映(进位位)来反映哪个数大,哪个数小。如果前面的数大,则哪个数大,哪个数小。如果前面的数大,则CY=0,否则,否则CY=1。 因此在程序转移后再次利用因此在程序转移后再次利用CY就可判断出哪个数大,就可判断出哪个数大,哪个数小了。哪个数小了。凌宏江-单片微型计算机原理 60DJNZ Rn,
44、relDJNZ direct,rel DJNZ指令的执行过程是这样的指令的执行过程是这样的:它将第它将第一个参数中的值一个参数中的值减减1,然后看这个值是否等于,然后看这个值是否等于0,如果,如果等于等于0,就往下执行,如果,就往下执行,如果不等于不等于0,就转移到第二个参数所指定的地方去。就转移到第二个参数所指定的地方去。例:例: DJNZ 10H,LOOP .LOOP: .凌宏江-单片微型计算机原理 61(1) 调用指令调用指令(2条)LCALL addr16 ;长调用指令;长调用指令(3字节字节) ACALL addr11 ;短调用指令;短调用指令(2字节字节) 上面两条指令都是在主程序
45、中调用子程序,两上面两条指令都是在主程序中调用子程序,两者的区别:对短调用指令,被调用子程序入口地址者的区别:对短调用指令,被调用子程序入口地址必须与调用指令的下一条指令的第一字节在相同的必须与调用指令的下一条指令的第一字节在相同的2KB存储区之内。使用时可以用:存储区之内。使用时可以用: LCALL 标号标号 ;标号表示子程序首地址;标号表示子程序首地址 ACALL 标号标号 指令的执行过程是:当前指令的执行过程是:当前PC压栈,子程序首地压栈,子程序首地址送址送 PC,实现转移,实现转移。凌宏江-单片微型计算机原理 62RET;子程序返回指令;子程序返回指令RETI;中断子程序返回指令;中
46、断子程序返回指令 子程序执行完后必须回到主程序,如何返回呢?子程序执行完后必须回到主程序,如何返回呢?只要执行一条返回指令就可以了。两者不能互换使只要执行一条返回指令就可以了。两者不能互换使用。用。 RET指令的执行过程是:堆栈栈顶内容(2字节,调用时保存的当前PC值)弹出给PC,实现返回。 RETI指令除了具有RET指令的功能实现程序返回外,还有对中断优先级状态触发器的清零。凌宏江-单片微型计算机原理 634) 空操作指令(空操作指令(1条)条)NOP 空操作,就是什么事也不干,停一个周空操作,就是什么事也不干,停一个周期,一般用作短时间的延时。期,一般用作短时间的延时。凌宏江-单片微型计算机原理 645. 位操作指令(位操作指令( 17条)条) 在在MCS-51中,有一部份中,有一部份RAM和一部份和一部份SFR是具有位寻是具有位寻址功能的。在单片机的硬件结构中,有一个位处理器(又称址功能的。在单片机的硬件结构中,有一个位处理器(又称布尔处理器),它有一套位变量处理的指令集
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药物分析考试模拟题及答案
- 医疗核心制度练习题(附答案)
- 广告制作及发布代理合同
- 战略合作协议策划及合同书
- 工业废气治理工程合同
- 乐至县乾润招商服务有限公司招聘岗位工作人员(8人)笔试参考题库附带答案详解
- 2025辽宁沈阳市城市建设投资集团有限公司所属企业沈阳新基发展有限公司招聘16人笔试参考题库附带答案详解
- 2025广东湛江经济技术开发区建设投资发展集团有限公司招聘1人笔试参考题库附带答案详解
- 2025宁夏银川威力传动技术股份有限公司招聘811人笔试参考题库附带答案详解
- 2025中国电气装备集团数字科技有限公司招聘28人笔试参考题库附带答案详解
- 2021年河北高中学业水平合格性考试历史试题真题(含答案)
- 【工程法规】王欣 教材精讲班课件 36-第6章-6.2-施工安全生产许可证制度(一)
- 2024年中小学生航天知识竞赛试题题库及答案
- 预算绩效评价管理机构入围投标文件(技术方案)
- 期末完形填空试题人教PEP版英语五年级上册(无答案)
- 2024中考语文备考重点难点复习:小说阅读(七大考点七种技巧)
- 保密工作 人人有责
- 2024-2030年中国捡石机行业市场发展趋势与前景展望战略分析报告
- 大学生心理健康调查分析报告
- 夜场女孩合同协议书
- 《GNSS定位测量》课件-GNSS坐标系统
评论
0/150
提交评论