导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→初学者:谢谢常散人,那这个程序是延时多少?[zb2]

 *第7736篇: 初学者:谢谢常散人,那这个程序是延时多少?

  
楼 主:zb2 2003年1月16日16:51
 初学者:谢谢常散人,那这个程序是延时多少?
DELAY: MOV R7,#250   ;

D1: MOV R6,#250   ; 

D2: DJNZ R6,D2    ;

DJNZ R7,D1   ;    

RET        ;

   

  
2楼:常散人 2003年1月16日18:43
 12M晶振下大约125毫秒
                              以下是一个二重循环
DELAY: MOV R7,#250   ;   1周期,执行1次
                              以下三句为外循环做250次
   D1: MOV R6,#250   ;  1周期,执行250次
   D2: DJNZ R6,D2    ;  2周期,这一句是一个循环,做250次
                             也就是说,外循环一次它就做250次
                             共执行250 * 250次
        DJNZ R7,D1   ;  2周期,执行250次
   
        RET        ;  2个周期,执行1次
所以一共需要 1 + (1 + 2 * 250 + 2 ) * 250  + 2 
          =  1 + 503 * 250 + 2
          =  125753 个周期
如果晶振为12M,共耗时125753微秒,可近似看作125毫秒。 
  
3楼:红心J 2003年1月17日10:58
 参考
DELAY: MOV R7,#250 ;1T
D1: MOV R6,#250   ;1T 
D2: DJNZ R6,D2    ;2T
DJNZ R7,D1        ;2T    
RET            ;2T

1T+(1T+2T*R6+2T)*R7+2T=125753
IF Fosc=12MHz THEN T=1uS


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

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


[上一篇主题]:初学者:请高手回答我

[下一篇主题]:初学者:游戏机摇杆的问题