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

描述

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

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

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分