看到许多同行用的定时方式.让我想起了当初刚入行时,我自己对于定时的把握,那时,我的定时老是不够精确,看了编译后的汇编代码,老是觉得不够精简,后来无意之间看到了一篇文章,是一位对C51编译器有相当研究的高人所写的,他说:其实要让定时的精确度提高,最本质的一点,就是如何让编译器编译出DJNZ这个汇编代码来,当时我也试写了很多种C代码的延时子程序,但始终都不能编译出DJNZ代码来,最后还是这位高人试出来,原来是WHILE(--i);,当然这是对于unsigned char 类型的.
另外,还应注意:实际的延时时间,还应该加上一个三字节的跳转指令和一个单字节的RET返回指令的执行时间.