单片机延时程序的计算

来源:百度知道 编辑:UC知道 时间:2024/07/04 01:06:04
延时10sm的程序,汇编编写,时钟是6MHz
DL10MS: MOV R7 ,#05H
LOOP1: MOV R6,#0F9#
LOOP2: NOP
NOP
DJNZ R6,LOOP2
DJNZ R7,LOOP1
RET

我计算了好几次都觉得是延时5sm的程序,是不是我算错了,帮忙算下...

本程序的耗时计算如下:
1 + [1 + (1 + 1 + 2) * 249 + 2] * 5 + 2 = 4998 T
如果再算上主程序中的调用指令的2T,总共延时5000T。

如果时钟频率是6MHz,那么正好延时10ms。

你算的是对啊~~~我算了,结果是4996μs啊~~~,就是大概5ms了~~~
1+[1+(1+1+2)]*249+2]*5

时钟6MHZ,则一个机器周期为2us,所以上式:
[4*249+2+1]*5*2+4=9994us
俺是新手来着,上面是自己的见解,有错误请大家多多指教。你自己都算出来了,一些细节问题就免啦。

应该是9996us