1. 程式人生 > >51微控制器組合語言--延時程式的延時時間

51微控制器組合語言--延時程式的延時時間

請高手幫我分析以下延時程式所佔的時鐘週期。

提問時間:| 2011-4-22 23:36

求解釋:

DELAY:  MOV  R6, #13
DELAY1: MOV  R5, #250
DELAY2: NOP
        DJNZ  R5, DELAY2
        DJNZ  R6, DELAY1
        RET

問題補充:晶振為12MHz,機器週期即是1us。
;-----------------------------------------------------
最佳答案:


DELAY:  MOV  R6,#13     ;1
DELAY1: MOV  R5,#250    ;1
DELAY2: NOP              ;1
        DJNZ  R5,DELAY2 ;2      250 * (1 + 2) = 750
        DJNZ  R6,DELAY1 ;2      13 * (1 + 750 + 2) = 9789
        RET              ;2      1 + 9789 + 2 = 9792

加上呼叫指令,共用 9794 個機器週期。

當晶振頻率為 12MHz,則延時時間為 9794 us。
;-----------------------------------------------------
回答時間:2011-4-23 13:01
回答者: 做而論道 | 十四級 採納率:43% 名人 達人
提問者對於答案的評價:夠詳細!!
原題網址:http://zhidao.baidu.com/question/256771736.html
;-----------------------------------------------------