关于proteus的仿真问题

2025-01-04 14:46:38
推荐回答(2个)
回答1:

呵呵,当然有问题了,你的DELAY10MS,不是调用,而是转移,但却用RET返回,当然会有很大的问题,程序只能首次其作用,之后就飞走了。
ORG 0000H
AJMP START
ORG 0030H
START:
MOV SP,#5FH
SETB P2.0
SETB P2.1
CHECK:
JB P1.0,CHECK1
LCALL DELAY10MS
JB P1.0,CHECK1
CLR P2.0
LCALL DELAY5MS
SETB P2.0
SJMP CHECK
CHECK1:
JB P1.1,CHECK
LCALL DELAY10MS
JB P1.1,CHECK
CLR P2.1
LCALL DELAY5MS
SETB P2.1
SJMP CHECK

DELAY10MS:
MOV R6,#04H
DELAYLOOP:
MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,DELAYLOOP
RET

DELAY5MS:
MOV R4,#01H
DELAYLOOP1:
MOV R5,#07FH
DJNZ R5,$
DJNZ R4,DELAYLOOP1
RET
END

回答2:

可以的呀 只是不能 两个同时 按下。
单独任意 按下一个 都是可以的,检查一下吧。