【发布时间】:2016-04-28 11:36:02
【问题描述】:
对于一个问题,我们需要比较两个端口的三位,然后使用另一个端口的三位作为输出。如果存储在第一个端口中的三位等于第二个端口中的三位,则输出的第一位设置为 1。如果大于则 p2.1 设置为高。如果小于 p2.2 则设置为高。我的问题是,可以通过这种方式以及使用门(和/或但这需要一点一点地解决这个问题,这很痛苦)。有没有更简单的方法?
ORG 000H
MOV A, P1; x is p1 and y is p3
MOV R5, P3;
MOV P2, #0;
CJNE A,05H, CHECK; if it isn't equal we go to check routine
SETB P2.0; Equal output set high
SJMP HERE; End progam
CHECK:
MOV A, P1
SUBB A, P3 ; Subtract
JC HM;
SETB P2.1;
SJMP HERE;
HM: SETB P2.2;
SJMP HERE;
HERE: CLR A;
END;
【问题讨论】: