|
設(shè)51系列單片機(jī)晶振頻率Fosc為12MHz
則每個機(jī)器周期 =12/Fosc =1μs
每條MOV Rn,#data指令耗用1個機(jī)器周期
每條DJNZ Rn,rel指令耗用2個機(jī)器周期,
每條NOP指令執(zhí)行耗用1個機(jī)器周期
=======================================
;;延時1ms, 多用于數(shù)碼管掃描顯示方式的視覺暫留延時:
DLY1ms: MOV R6,#5
MOV R7,#100
DLY1msB: DJNZ R7,$
DJNZ R6,DLY1msB
RET
;;解釋:5x100x2μs =1000μs =1ms
=======================================
;;延時4ms:
DLY4ms: MOV R6,#20
DLY4msB: MOV R7,#100
DJNZ R7,$
DJNZ R6,DLY4msB
RET
;;解釋:20[100(2μs)] =4000μs =4ms
=======================================
;延時125ms
DLY125ms: MOV R6,#250
DLY125msB: MOV R5,#250
DJNZ R5,$
DJNZ R6,DLY125msB
RET
;;解釋:250*250*2μs=125000μs =125ms
=======================================
;;延時500ms
DLY500ms: MOV R7,#250
D1: MOV R6,#250
D2: NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R6,D2
DJNZ R7,D1
RET
;;解釋:
6條NOP指令執(zhí)行耗用6個機(jī)器周期
250{250(6μs+2μs)]} =500 000μs =500ms
========================================
;;延時2000ms =2S
DLY2s: MOV R7,#16
DLY2sA: MOV R6,#250
DLY2sB: MOV R5,#250
DJNZ R5,$
DJNZ R6,DLY2sB
DJNZ R7,DLY2sA
RET
;;解釋:16x250{250(2μs)]} =2 000 000μs =2s
======================================
|
評分
-
查看全部評分
|