void DelayMS ( uint t) //延时1MS
{
uchar i;
while (t--) for ( i=0; i<120; i++ );
}
for (i=0;i<120;i++);需要循环执行120次才结束本次循环,每次循环需要执行“MOV传送指令(1-2机器周期)”“比较判断CJNE (2机器周期)”、“JNC判零转移(2机器周期)”、“INC加1指令(1机器周期)”、“SJMP短转移指令(2机器周期)”等大约8-9个机器周期。 执行“for (i=0;i<120;i++);”一次大约需要1000个机器周期,以晶振为12M的单片机系统(一个机器周期消耗时间大约是1μs),执行120次需要1MS的时间。
¥29.8
¥9.9
¥59.8