位操作指令
扫描二维码
随时随地手机看文章
位操作指令
MCS-51单片机的特色之一是具有很强的位处理功能。位操作指令又称为布尔指令,其功能是对内部RAM中可进行位操作的区域进行位操作。
在进行位操作时,位累加器C即进位标志Cy,位地址是片内RAM字节地址20H~2FH单元中连续的128个位(位地址00H~7FH)和部分功能寄存器。凡SFR中字符等地址能被8整除的特殊功能寄存器都具有可寻址的位地址,其中ACC(位地址E0H~E7H),B(位地址F0H~F7H)和片内RAM中128个位都可作软件标志或存储位变量。
1. 位数据传送类指令(2条)
MOV C , bit ;(bit) →C,寻址位的状态送入C
MOV bit , C ;C→(bit),C的状态送入位地址中
2. 位修正指令(6条)
CLR C ;0→C, 清0累加器
CLR bit ;0→(bit);清0寻址位
CPL C ;/C→C,取反
CPL bit ;(/bit) →(bit),寻址位取反
SETB C ;1→C,C置1
SETB bit ;1→ (bit),寻址位置1
3. 位逻辑运算指令(4条)
ANL C , bit ;C∩(bit) →C,寻址位和C“与”,结果放在C
ANL C , /bit ;C∩(/bit) →C,寻址位的非和C“与”,结果放在C
ORL C , bit ;C∪(bit) →C,寻址位和C“或”,结果放在C
ORL C , /bit ;C∪(bit) →C,寻址位和C的非“或”,结果放在C
4. 位条件转移指令(5条)
JC rel ;C=1转向PC+2+rel→PC
C=0顺序执行PC+2→PC
JNC rel ;C=0转向PC+2+rel→PC
C=1顺序执行PC+2→PC
JB bit , rel ;(bit) =1转向PC+3+rel→PC
(bit) =0顺序执行PC+3→PC
JNB bit , rel ;(bit) =0转向PC+3+rel→PC
(bit) =1顺序执行PC+3→PC
JBC bit , rel ;(bit) =1转向PC+3+rel→PC;同时0→(bit)
(bit) =0顺序执行PC+3→PC
注意:JBC与JB指令区别,前者转移后并把寻址位清0,后者只转移不清0寻址位。
例1 设P1为输入口,P3.0作输出线,执行下列指令:
MOV C , P1.0 ;(P1.0) →C
ANL C , P1.1 ;(C)∩(P1.1) →C
ANL C , /P1.32 ;(C)∩(/P1.2) →C
MOV P3.0 , C ;C→P3.0
结果是:P3.0=(P1.0) ∩(P1.1) ∩(/P1.2)
例2 用位操作指令编程计算逻辑方程
P1.5=ACC.0 ∩ (B.0∪P1.2) ∪P1.3
解: MOV C , B.0 ;B.0→C
ORL C , P1.2 ;C∪P1.2→C 即B.0+P1.2→C
ANL C , ACC.0 ;C∩ACC.0→C 即ACC.0∩(B.0∪P1.2)→C
ORL C , P1.3 ;C∪P1.3→C 即 ACC.0∩(B.0∪P1.2)∪P1.3→C
MOV P1.5 , C ;C→P1.5