且0→CY;
若(Rn) 且1→CY; 若(Rn)=data,则程序顺序执行, 且0→CY。 CJNE @Ri,#data,rel ; (PC)+3→(PC) 1011 011i data 若((Ri))>data,则(PC)+rel→(PC), 且0→CY; 相对地址(rel) 若((Ri)) 且1→CY; 若((Ri))=data,则程序顺序执行, 且0→CY。 这组指令的功能是比较前面两个操作数的大小。如果它们的值不相等则转移。在PC加到下一条指令的起始地址后,通过把指令最后一个字节的有符号的相对偏移量加到PC上,并计算出转向地址。如果第一个操作数(无符号整数)小于第二个操作数(无符号整数)则进位标志CY置位,否则CY清“0”。不影响任何一个操作数的内容。 例3-5.根据A的内容大于80H,等于80H,小于80H三种情况作不同的处理程序: CJNE A,#80H,NEQ ? ;(A)不等于80H转移 ;(A)等于80H处理程序 ;(A)<80H转移 EQ: NEQ: JC LOW ;(A)>80H处理程序 ;(A)<80H处理程序 LOW: ? (3)减1不为0转移指令 汇编指令格式 机器码格式 操 作 36 1101 1rrr 相对地址(rel) DJNZ Rn,rel ; (PC)+2→(PC),(Rn)-1→(Rn) 若(Rn)≠0,则(PC)←(PC)+rel; 若(Rn)=0,则结束循环,程序向下执行。 1101 0101 DJNZ direct,rel ; (PC)+2→(PC),(direct)-1→(direct) 相对地址 (rel )若(direct)≠0,则(PC)←(PC)+rel; 若(direct)=0,则结束循环,程序向下执行。 这组指令把源操作数减1,结果回送到源操作数中去,如果结果不为0则转移。源操作数有寄存器寻址、直接寻址方式。通常程序员把内部RAM单元用作程序循环计数器。 例3-6.延时程序: START: SETB P1.1 ;P1.1←1 DL: MOV 30H,#03H ;(30H)←03H(置初值) DL0: MOV 31H,#0F0H ;(31H)←0F0H(置初值) DL1: DJNZ 31H,DL1 ;(31H)←(31H)-1,(31H)不为0重复执行 DJNZ 30H,DL0 ;(30H)←(30H)-1,(30H)不为0 转DL0 CPL P1.1 SJMP DL ;P1.1求反 ;转DL 这段程序的功能是通过延时,在P1.1输出一个方波,可以用改变30H和31H的初值,来改变延时时间实现改变方波的频率。 4. 空操作指令 汇编指令格式 机器码格式 操 作 NOP ; (PC)+1→(PC), 空操作也是一条单字节指令,它没有使程序转移的功能。通常,NOP指令常用来产生一 37 0000 0000 个机器周期的延时。 3.3.5 位 处 理 指 令 MCS-51单片机内部有一个布尔处理机,它具有一套处理位变量的指令集,包括位变量传送、逻辑运算、控制程序转移等指令。在进行位操作时,进位标志CY作为位累加器。位地址是片内RAM字节地址20H~2FH单元中连续的128个位(位地址00H~7FH)和部分特殊功能寄存器。 1. 数据位传送指令 汇编指令格式 机器码格式 操 作 MOV C,bit MOV bit,C 这组指令的功能是把由源操作数指出的布尔变量送到目的操作数指定的位中去。其中一个操作数必须为进位标志,另一个可以是任何直接寻址位,不影响其他寄存器和标志。 例如: MOV C,06H ;CY←(20H).6 ;P1.0←CY ; 1001 0010 位地址( bit ) (C)→(bit) ; 1010 0010 位地址( bit ) (bit)→(C) MOV P1.0,C 2. 位变量修改指令 汇编指令格式 机器码格式 操作 CLR C 38 1100 0011 ; 0→(C) 1100 0010 CLR bit ; 位地址(bit) 0→(bit) 1101 0011 SETB C ; 1→(C) 1101 0010 SETB bit ; 位地址(bit) 1→(bit) CPL C ; 1011 0011 (C)→(C) CPL bit ; 1011 0010 (bit)→(bit)位地址(bit) 这组指令将操作数指出的位清“0”、取反、置“1”,不影响其他标志。 例如: CLR C ;CY←0 CLR 27H ;(24H).7←0 CPL 08H ;(21H).0←(21H).0 SETB P1.7 ;P1.7←1 3. 位变量逻辑运算指令 (1)位变量逻辑与运算指令 汇编指令格式 机器码格式 操作 39 1000 0010 ANL C,bit ; (C)∧(bit)→(C) 1011 0000 ANL C,/bit ; (C)∧(bit)→(C) 这组指令功能是,把位累加器C的内容与直接位地址的内容进行逻辑“与”操作,结果再送回C中。直接寻址位前的斜线“/”表示对该位取反后再参与运算,但不改变直接寻址位原来的内容,不影响别的标志。 例如:设P1这输入口,P3.0作输出线,执行下列指令: MOV C,P1.0 ;(CY)←(P1.0) ANL C,P1.1 ANL C,/P1.2 MOV P3.0,C ;(CY)←(CY)∧(P1.1) ;(CY)←(CY)∧(P1.2) ;P3.0←CY 位地址(bit) 位地址(bit) 结果:P3.0=(P1.0)∧(P1.1)∧(P1.2) (2)位变量逻辑或指令 汇编指令格式 机器码格式 操 作 ORL C,bit ORL C,/bit 40 0111 0010 ; 位地址(bit) (C)∨(bit)→(C) ; 0101 0000 位地址(bit) (C)∨(bit)→(C) 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库单片机指令系统(8)在线全文阅读。
相关推荐: