50ms延時;一般書上的程序 DEL: MOV R7,#200 LO: MOV R6,#123 NOP L1: DJNZ R6,L1 DJNZ R7,L0 RET 但是這個程序實際上延時50.001ms,多了一個機器周期, 其實這個問題是不可能由一個二重循環實現精確延時的,必須采用三重循環 我的程序; DEL: MOV R5,#29 L0: MOV R7,#22 L1: MOV R6,#6 L2: DJNZ R6,L2 DJNZ R7,L1 DJNZ R5,L0 RET此時精確延時50ms,并且三個寄存器里的數值是可以變化的,這里要討論的是,為什么不能,或說不容易用一個二重循環去實現一些精確的延時程序,而三重循環確一般是可以的,在數學上,是一些函數數值的遍歷性,他與連續函數的因連續而具有的介值性有所不同,是不是也存在一些值,用三重循環也不能實現呢?于是我們開始使用四重?充要條件是什么呢?