第1个回答 推荐于2017-10-22
你用C语言来编制有精度要求的延时子程序,这太不现实了。不过可以用定时器来做。
void delay1s()
{
int i;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)*256;
TR0=1;
for(i=0;i<20;i++)
{
TH0=(65536-50000)/256;
TL0=(65536-50000)*256;
while(TF0==0);
TF0=0;
}
}本回答被网友采纳
第2个回答 2011-09-12
首先定一个2ms基准时钟,然后设定相应的寄存机计数;
第3个回答 2011-09-13
11.0592的晶振,很熟悉,51系列单片机经常用,建议多看下书,我说下大致的原理,fosc=11.0592m,一条指令的时间是多少?可能有分频,可以设置,具体的单片机不一样,反正你要得到执行一条指令的时间,比如是1us,那么1usx1000=1ms,例如:
for(i=0;i<998,i++)
{
nop;
}
第4个回答 2011-09-12
用定时器来定时,就可以了。