导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→帮忙看看这段程序[tonyjzit]

 *第13981篇: 帮忙看看这段程序

  
楼 主:tonyjzit 2003年7月1日16:53
 帮忙看看这段程序
关于延时的问题
以下程序是一个延时子程序,使用6MHz晶振。

DEL: MOV R5,#100
DEL0:MOV R6,#200
DEL1:MOV R7,#248
DEL2:DJNZ R7,DEL2
     DJNZ R6,DEL1
     DJNZ R5,DEL0
     RET

我认为用近似算法:s=100*200*248为运行DJNZ指令的次数,该指令为两个机器周期,每
个机器周期为2us,所以延时时间t=s*2*2(us),结果应该为20s。可书上说是延时10s。

请大家帮我分析一下吧。多谢!

  
2楼:guest 2003年7月1日18:43
 没错是10S,这样计算!

总时间约等于=((248*2+2)*200+2)*100
                  =9960200 (微妙)


  
3楼:tonyjzit 2003年7月1日19:59
 总时间约等于=((248*2+2)*20
总时间约等于=((248*2+2)*200+2)*100
                  =9960200 (微妙)

248*2中的2是指执行djnz指令需要两个机器周期呢,还是一个机器周期需要2us?反正我觉得少乘了一个2。你说呢?

  
4楼:红心j 2003年7月1日19:50
 DEL: MOV R5,#100    
DEL: MOV R5,#100    ;1t
DEL0:MOV R6,#200    ;1t
DEL1:MOV R7,#248    ;1t
DEL2:DJNZ R7,DEL2   ;2t
     DJNZ R6,DEL1   ;2t
     DJNZ R5,DEL0   ;2t
     RET            ;2t

time=1t+{1t+[(1t+2t*248+2t)*200]+2t}*100+2t
    =3t+{3t+[499t*200]}*100
    =3t+100*{3t+99800t}
    =3t+9980300t
    =9980303t
    =9980303*2us
    =19960606us
    =19.960606s


>>>>>>对该主题发表你的看法

本主题贴数4,分页: [第1页]


[上一篇主题]:http://www.31ic.com/

[下一篇主题]:请教各位无线网卡的芯片有哪些,介绍下?