用单片机实现位逻辑运算
扫描二维码
随时随地手机看文章
编写程序,完成下列逻辑功能:
Q = XYZF + XYZF + XYZF + XYZF (Y表示Y非,Z表示Z非、、、)
这个逻辑表达式,可以化简,就是:Q = XYZ + XYF + XZF
假设,各个变量对应的引脚如下:
X: P1.0
Y: P1.1
Z: P1.2
F: P1.3
Q: P1.7
程序如下:
MOV C, P1.0
ANL C, P1.1
ANL C, P1.2
MOV F0, C
MOV C, P1.0
ANL C, P1.1
ANL C, P1.3
ORL C, F0
MOV F0, C
MOV C, P1.0
ANL C, P1.2
ANL C, P1.3
ORL C, F0
MOV P1.7, C
END
=============================
单片机:请编写程序实现位X与位Y异或运算。
2010-10-12 22:03无敌的中国人 | 分类:其他编程语言 | 浏览1546次
设X、Y分别存放在00H、01H,结果Z存放在02H。
(注意:00H、01H、02H是位地址,属于内部RAM20H的D0、D1、D2位)
CLR 02H
MOV C, 00H
ANL C, 01H
JC _END_
MOV C, 00H
ORL C, 01H
JNC _END_
SETB 02H
_END_:
;完
END
=============================
单片机:请编写程序实现位X、位Y 的异或运算。
设X、Y分别存放在 00H、01H,结果 Z 存放在02H。
注意:00H,01H,02H是位地址,属于内部RAM20H的D0,D1,D2位
方法1:
;
MOV C, 00H
ANL C, /01H
MOV F0, C
MOV C, 01H
ANL C, /00H
ORL A, F0
MOV 02H, C
END
;-----------------------
方法2:
;
CLR 02H
JNB 00H, ZZZ
JNB 01H, EXIT
SJMP EXIT
ZZZ:
JB 01H, EXIT
SETB 02H
EXIT:
END
;-----------------------
方法3:
;
MOV A, 20H
RR A
XRL A, 20H
RL A
RL A
ANL A, #00000100B
JZ ZZZ
ORL 20H, A
SJMP EXIT
ZZZ:
CPL A
ANL 20H, A
EXIT:
END
;-----------------------