基于单片机实现的逻辑运算程序详解

工程师a 发表于 2018-05-12 01:47:00 收藏 已收藏
赞(0) •  评论(0

基于单片机实现的逻辑运算程序详解

工程师a 发表于 2018-05-12 01:47:00

编写程序,完成下列逻辑功能:

Q = XYZ\F + XY\ZF + X\YZF + 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

;-----------------------

收藏

相关话题
文章来源专栏

评论(0)

加载更多评论

参与评论

分享到

QQ空间 QQ好友 微博
取消