×
嵌入式 > 技术百科 > 详情

用单片机实现位逻辑运算

发布时间:2020-06-15 发布时间:
|

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


Q = XYZF + XYF + XYZF + XYZF   (Y表示Y非,表示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


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





『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
实时控制.安全.如何加速实现未来工厂落地?