void delay(uint n)
{
uint i,j;
for(i=n;i>0;i--)
{
for(j=110;j>0;j--);
}
}
当n=1是延时大约是1ms,就是说n等于都少就延时多少ms,当然n的值不超过uint的最大值。
头文件下请定义宏
#define uchar unsigned char
#define uint unsigned int
11.0592的晶振,很熟悉,51系列单片机经常用,建议多看下书,我说下大致的原理,fosc=11.0592m,一条指令的时间是多少?可能有分频,可以设置,具体的单片机不一样,反正你要得到执行一条指令的时间,比如是1us,那么1usx1000=1ms,例如:
for(i=0;i<998,i++)
{
nop;
}
void delay(char x)
{
int i;
while(x--)
for(i=0;i<114;i++);
}
void delay(uint)
{
uint x,y;
for(x=1000;x>0x--)
for(y=1000;y>0y--);
}
void delay1ms()
{
unsigned int x,y;
for(x=1000;x>0;x--)
for(y=110;y>0;y--);
}