51单片机DJNZ指令循环次数问题

LOOP:MOVRO,#3DJNZRO,LOOP这条指令循环了几次?应该是三次但是我怎么想都觉得是两次。因为DJNZ是减一判断,当第二次循环完成之后,R0变为1,这样减一... LOOP:MOV RO,#3
DJNZ RO,LOOP
这条指令循环了几次?应该是三次但是我怎么想都觉得是两次。因为DJNZ是减一判断,当第二次循环完成之后,R0变为1,这样减一之后为零不进行循环了,所以循环了两次啊
好吧程序我改了
LOOP:MOV RO,#3
DJNZ RO,LOOP
SJMP $
展开
 我来答
bxf0817
推荐于2018-04-14 · TA获得超过2163个赞
知道小有建树答主
回答量:1348
采纳率:0%
帮助的人:1157万
展开全部
这是个死循环吧,R0永远不能减到0的。每次减1不为零就跳到loop那继续执行,然后R0又是3了,所以永远跳不出去吧!
更多追问追答
追问
我问的是次数。我现在把程序补完了。
追答
虽然你写了一句没啥用的语句,但是我大概理解了你的意思。实际上是循环3次的,R0分别是3,2,1时各执行1次,R0为1后,减1便是0,就跳出了。正确的写法是R0的赋值不能放在LOOP循环里,否则就是个死循环!
意法半导体
2025-04-09 广告
STM32是ARM Cortex内核单片机和微处理器市场和技术方面的佼佼者,目前提供16大产品线 (F0, G0, F1, F2, F3, G4, F4, F7, H7, MP1, L0, L1, L4, L4+,L5, WB),超过100... 点击进入详情页
本回答由意法半导体提供
朝酒晚舞8031
2013-05-22 · TA获得超过469个赞
知道答主
回答量:269
采纳率:0%
帮助的人:140万
展开全部
是死循环。
正确的写法是:

MOV R0,#3
LOOP:

……
DJNZ R0,LOOP

循环三次。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式