protues仿真 根据P0口输入的电平 P2口流水灯变化,求求大神帮我看看问题在哪
ORG 0000H LJMP MAIN
ORG 1000H
MAIN: CLR P0
MOV A,P0
JNB ACC.1,D0 ;X0X;
JNB ACC.2,LOOP2 ;011;
LJMP LOOP4 ;111;
D0: JNB ACC.0,LOOP ;000;
LJMP LOOP1 ;001;
LOOP: MOV A,#0FEH
MOV R0,#8
LOOP01:MOV P2,A
RL A
LCALL DELAY
DJNZ R0,LOOP01
LJMP MAIN
LOOP1:MOV A,#7FH
MOV R0,#8
LOOP11:MOV P2,A
RR A
LCALL DELAY
DJNZ R0,LOOP11
LJMP MAIN
LOOP2:MOV R0,#8
LOOP21:MOV A,#0FEH
MOV P2,A
RL A
RL A
LCALL DELAY
DJNZ R0,LOOP3
LJMP MAIN
LOOP3:
MOV P2,A
RR A
LCALL DELAY
DJNZ R0,LOOP21
LJMP MAIN
LOOP4:MOV R0,#8
MOV A,#0FFH
LOOP41:MOV P2,A
XRL A,#0FFH
LCALL DELAY
DJNZ R0,LOOP41
LJMP MAIN
DELAY:MOV R3,#20
D1: MOV R4,#50
D2: MOV R5,#250
DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1 ;2us*250*50*20=0.5S;
RET
END
这是我的程序,P0.0、P0.1、P0.2 电压,能 有000;001;011,111---4个电平状态,让8个LED灯有4种流水灯的花色变化:
流水灯顺序变化(D0亮0.5S暗,再 D1亮0.5S暗.。。。) 流水灯逆序变化(D7亮0.5S暗,再 D6亮0.5S暗.。交替闪烁(D0亮0.5S暗,再 D2亮0.5S暗,D1亮0.5S暗,再 D3 0.5S.。。。。)共同闪烁(D0-D7亮0.5S暗0.5S)
[code][/code]
如图 程序是共同反相端 三个不同输入同相端的比较器, 输出到P0.0 0.1 0.2口
仿真过程中只会有输入000,001顺序变化和011,111共同闪烁
也就是 001和011的流水灯变化错误的
protues里的观察P0端口的状态 全是1 没有变化