汇编语言延时时间的计算:
DELAY: MOV R0,#0FFH ;当晶振为12MHz时 MOV R1,#0FFH ;一个机器周期为1微秒 DLY_LP: NOP ;1 周期 NOP ;1 周期 DJNZ R0,DLY_LP ;2 周期 ;内循环延时时间为(1+1+2)255 MOV R0,#0FFH ;1 周期 DJNZ R1,DLY_LP ;2 周期 ;外循环延时时间=[内循环延时时间+1+2]255 RET 晶振为12MHz时: 延时时间=[(1+1+2)255+1+2]255×12/12=260.865ms 晶振为11.0592MHz时: 延时时间=[(1+1+2)255+1+2]255×12/11.0592=283.056ms 一个机器周期共有12个振荡器周期。 如果振荡器的频率为12MHz,一个振荡器周期为1/12微秒,一个机器周期为12/12=1微秒。 如果振荡器的频率为11.0592MHz,一个振荡器周期为1/11.0592微秒,一个机器周期为12/11.0592=1.085微秒。 |
|