请DX帮助 程序BUG
请DX帮助
我是电气工程师,单片机菜鸟,未编过一个字的程序.
手里有一位朋友给作的AT89C51的一个应用程序,其中有双位拨码开关,比如定时输出,从00至99,线性递增,不仔细测试是没有问题的.
可是现在发现问题:77无输出(与00相当).请问错在哪里?如何解决?(*.hex--1.85k)
万望不吝赐教!谢谢!
下面是我以为的相关部分程序
;*** 单字节十进制转十六进制 ***
;程序使用A、B、R2、R3。
;将R2中的十进制数转换为十六进制数,结果送R3。
DTB:
MOV A,R2
SWAP A
ANL A,#0FH
MOV B,#10
MUL AB
MOV R3,A
MOV A,R2
ANL A,#0FH
ADD A,R3
MOV R3,A
RET
;*** 拨码数据转换 ***
;程序使用A、B。
;
CHANGE_DATA:
MOV C,ACC.0
CPL C
MOV B.7,C
MOV C,ACC.1
CPL C
MOV B.6,C
MOV C,ACC.2
CPL C
MOV B.5,C
MOV C,ACC.3
CPL C
MOV B.4,C
MOV C,ACC.4
CPL C
MOV B.3,C
MOV C,ACC.5
CPL C
MOV B.2,C
MOV C,ACC.6
CPL C
MOV B.1,C
MOV C,ACC.7
CPL C
MOV B.0,C
MOV R2,B
LCALL DTB
MOV B,R3
MOV A,#02H
MUL AB
RET
发表时间:2004年7月25日4:16:19