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,并且三个寄存器里的数值是可以变化的,这里要讨论的是,为什么不能,或说不容易用一个二重循环去实现一些精确的延时程序,而三重循环确一般是可以的,在数学上,是一些函数数值的遍历性,他与连续函数的因连续而具有的介值性有所不同,是不是也存在一些值,用三重循环也不能实现呢?于是我们开始使用四重?充要条件是什么呢?