#include
unsigned int i=0;
void main()
{
TMOD=0x01;
TH0=0x7d; //定时100ms
TL0=0xca;
ET0=1;
EA=1;
TR0=1;
while(1);
}
void timer0() interrupt 1
{ TH0=0x7d;
TL0=0xca;
i++;
if(i==600)
{
i=0;
P0=~P0; //可修改为你想要的功能
}
}
如果精度要求不太高的话试一试以下程序,希望有帮助,请参考。
void Delay()
{
unsigned int i,j;
for(i=0;i<1500;i++)
for(j=0;j<2550;j++);
}
delay1m:
mov r2,#200
delay1:
mov r3,#200
delay2:
mov r4,#250
djnz r4,$
djnz r3,delay2
djnz r2,delay1
ret
误差率为0.4%