写了一个51单片机的汇编程序,用keil调试没问题,但是proteus仿真的结果就不对,麻烦大家给哪错了

主要实现一个开关控制流水灯的左移和右移,开关闭合,流水灯左移;开关断开,流水灯右移。ORG0000HLJMPMAINORG0100HMAIN:MOVR7,#02HMOVA... 主要实现一个开关控制流水灯的左移和右移,开关闭合,流水灯左移;开关断开,流水灯右移。
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV R7,#02H
MOV A,#0FEH
MOV C,P3.0
MOV P1,A
S1: JC L1
RR A
MOV P1,A
LCALL DELAY
LJMP S1
L1:
RL A
MOV P1,A
LCALL DELAY
LJMP S1

SJMP $

DELAY:
MOV R6,#0FFH
D0:
MOV R5,#0FFH
DJNZ R5,$
DJNZ R6,D0
DJNZ R7,DELAY
RET

END
展开
 我来答
做而论道
高能答主

2015-10-24 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
    ORG   0000H
    MOV   A, #127
S1: JB    P3.0, L1
    RR    A
    JMP   S2
L1: RL    A
S2: MOV   P1, A
    CALL  DELAY
    JMP   S1

DELAY:
    DJNZ  R5, $
    DJNZ  R5, $
    DJNZ  R6, DELAY
    RET

END
追问
谢谢!!!!!!!!!!
可不可以再问一句,我的程序到底哪里有问题?
追答
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV R7,#02H
MOV A,#0FEH
MOV C,P3.0--仅仅开始时,读了一次 P3.0
MOV P1,A

S1: JC L1---以后再判断,并没有读 P3.0
RR A
MOV P1,A
LCALL DELAY
LJMP S1---反复去判断
L1:

RL A
MOV P1,A
LCALL DELAY
LJMP S1---反复去判断
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式