英特尔8051 EdSim51 7段显示器

问题描述 投票:0回答:1

为什么我把代码上二进制中的 "B "去掉后,显示数字时就乱了?

ORG 0000H
START:
    SETB P3.3
    SETB P3.4
    MOV P1, #11111001
    CALL DELAY
    CLR P3.3
    MOV P1, #10100100
    CALL DELAY
    CLR P3.4
    SETB P3.3
    MOV P1, #10110000
    CALL DELAY
    CLR P3.3
    MOV P1, #10011001
    CALL DELAY
    JMP START
DELAY: MOV R0, #45H
    DJNZ R0, $
    RET
END

谢谢您

assembly simulation cpu-registers 8051
1个回答
1
投票

因为汇编器会看最后一个字符来确定数字的基数。

如果你用。

MOV P1, #10B

它意味着二进制值10,给出一个十进制2。

如果你使用:它意味着二进制值10,给出一个小数点2。

MOV P1, #10

就是指十进制的10

如果你使用:它意味着十六进制值10,给出一个小数点2。

MOV P1, #10H

它意味着十六进制值10, 给出十进制16.

注意:你的汇编器应该已经警告你有数字溢出之类的情况。

© www.soinside.com 2019 - 2024. All rights reserved.