proteus仿真流水灯的问题(+20分)

ORG0000HLJMPSTARTORG0030HSTART:MOVP1,#0FEHMOVP1,#0FDHMOVP1,#0FBHMOVP1,#0F7HMOVP1,#0EF... ORG 0000H
LJMP START

ORG 0030H
START:MOV P1 , #0FEH
MOV P1 , #0FDH
MOV P1 , #0FBH
MOV P1 , #0F7H
MOV P1 , #0EFH
MOV P1 , #0DFH
MOV P1 , #0BFH
MOV P1 , #7FH
CALL DELAY
SJMP START

DELAY:NOP
NOP
NOP
RET
END

上面是源程序,编译的HEX文件放到proteus的单片机内执行,结果会出现一圈中有一个灯被隔过去没亮的现象,有时是第一个,有时是其他的灯,单步调试发现有一句会隔过去执行,到底是为什么?
展开
 我来答
☆赫赫有名☆8c6
2008-10-14 · TA获得超过182个赞
知道小有建树答主
回答量:69
采纳率:0%
帮助的人:77.6万
展开全部
晕!这个程序当然不会看到效果!
不知道你选的是多少的晶振!一般12M晶振,运行一条MOV指令也就1u秒的时间!你这个程序运行一圈也就10多u秒。灯还没全亮或是全灭就换了!当然看不到效果!找本程序的书好好看看吧!你的延时也不够,试试下面的:
ORG 0000H
LJMP START

ORG 0030H
START:
MOV P1 , #0FEH
ACALL DELAY
MOV P1 , #0FDH
ACALL DELAY
MOV P1 , #0FBH
ACALL DELAY
MOV P1 , #0F7H
ACALL DELAY
MOV P1 , #0EFH
ACALL DELAY
MOV P1 , #0DFH
ACALL DELAY
MOV P1 , #0BFH
ACALL DELAY
MOV P1 , #7FH
ACALL DELAY
AJMP START

DELAY:MOV R0,#255 ;延时,约65毫秒
DEL1: MOV R1,#255
DEL2: DJNZ R1,DEL2
DJNZ R0,DEL1
RET
END
徐经理
2025-05-09 广告
采用聚丙烯塑料单元模块组合,在水池周围包裹防渗土工布,形成地下贮水池。由于表面光滑,不滋生藻类,可使储存的水体水质保持较长时间稳定。再有,模块式的组合,可使雨水集蓄池极大的适应场地的限制,组成各种形状,同时具有安装方便,承载力大,可拆除迁移... 点击进入详情页
本回答由 徐经理提供
jianxiang54321
2008-10-06 · TA获得超过191个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:232万
展开全部
可以肯定的是你的程序有问题,至少每一句MOV间要加一定延时,而且不能过短,短了看不出效果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式