我用汇编写的四位共阴数码管动态显示,为什么仿真硬件电路上不对呢

2025-04-28 14:27:01
推荐回答(3个)
回答1:

TV:	 
    MOV DPTR,#TAB
    MOV R0,#30H
    MOV R1,#0FEH
    MOV R2,#4

tvloop:
    MOV P2,#0FFh;【消隐】
    MOV A,@R0
    MOVC A,@A+DPTR
    MOV P0,A
    MOV P2,R1  
    LCALL DELAY
    INC R0
    MOV A,R1
    RL A;【RR A 】
    MOV R1,A
    DJNZ R2,TVLOOP
    MOV R1,#0FEH;;【要重新赋值】
    RET

DELAY: MOV R3,#3
    DJNZ R3,$
RET

子函数TV修改如上所示,代码经过仿真,无误。

你主要是没有做消隐处理,另外位选信号的处理也有误。

不懂可追问。

回答2:

缺少消隐环节,改动如下:
void main()
{
uchar i = 0;
while(1) {
P1 = 0; //消隐.
P2 = control[i];//换位.
P1 = dofly[i]; //显示.
delay(200);
i++;
if(i == 8) i = 0;
}
}

回答3:

看插图,程序,还没有运行。