设8051单片机的晶振频率为4MHZ,编写延时一分钟的子程序问题

2025-03-23 07:01:42
推荐回答(3个)
回答1:

#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; //可修改为你想要的功能
}

}

回答2:

如果精度要求不太高的话试一试以下程序,希望有帮助,请参考。
void Delay()
{
unsigned int i,j;
for(i=0;i<1500;i++)
for(j=0;j<2550;j++);
}

回答3:

delay1m:
mov r2,#200
delay1:
mov r3,#200
delay2:
mov r4,#250
djnz r4,$
djnz r3,delay2
djnz r2,delay1
ret
误差率为0.4%