用定时器吧,可以精确控制9000秒。主程序你自己做。
void t0_isr() interrupt 1
{
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
times1++;
if(times1==20)
{
times2++;
times1=0;
if(times2>=9000)Relay=1; //断开
}
}
你的晶振是多大频率的?必须有你晶振的频率,才能计算出设定多大的定时器初值。
定时器中断写个9000秒的延迟,然后断开继电器就行了啊。