打印

延时的循环,怎么变成死循环!

[复制链接]
1949|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangloong|  楼主 | 2008-5-26 16:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    org 000h
main: 
      clr p1.0
    lcall delay
    setb p1.0
    lcall delay
    sjmp main

delay:mov r0,#20      ;延时1s子程序,使用参数r0,r7,r6.
delay0:mov r7,#100    
delay1:mov r6,#229      
      djnz  r6,$
      djnz r7,delay0
      djnz r0,delay1
      ret
     end

晶振是11.0592mhz,p1.0脚控制一个二极管亮灭。低电平时,二极管亮!
使用伟福e6000仿真,延时程序停留在
delay1:mov r6,#229      
      djnz  r6,$
这中间循环,出不来。这是怎么回事?
下载到单片机中去,二极管一直亮。
大家指点下,谢谢!

相关帖子

沙发
FOXFOX| | 2008-5-26 16:26 | 只看该作者

死的当然是死的

delay0:mov r7,#100    
delay1:mov r6,#229      
      djnz  r6,$
      djnz r7,delay0

R7 永远在99,100变化。

使用特权

评论回复
板凳
t.jm| | 2008-5-26 16:30 | 只看该作者

不死才怪.

delay:mov r0,#20      ;延时1s子程序,使用参数r0,r7,r6.
delay0:mov r7,#100    
delay1:mov r6,#229      
      djnz  r6,$
      djnz r7,delay0  -->djnz r7,delay1  
      djnz r0,delay1  -->djnz r0,delay0 

使用特权

评论回复
地板
xinghan| | 2008-5-26 16:31 | 只看该作者

不能那么设

r7每次减了1跳到delay0,你又给它设成100了.

使用特权

评论回复
5
yangloong|  楼主 | 2008-5-26 19:04 | 只看该作者

谢谢了,没想到是这么小的问题

 向foxfox,t.jm,xinghan道声谢谢!
  这个程序是昨天写的,当时只是验证几个延时的程序,但烧录到单片机中去,这个灯一直在亮。以为是延时的时间太少,反复在计算指令周期。
  以后得更加细心,谢谢大家的指导!
  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

151

帖子

2

粉丝