lichcct 发表于 2010-10-7 13:53:20

求10分钟8051延时程序?

怎样编写8051 10分钟的延时程序?下面可以吗?
void Delay10()    // 延时,系统主频为11.0592MHz   
{       
// while(flag!=0)
   for (c=0;c<=10;c++)

    {
        TMOD=0x01;//设置定时器0为工作方式1
    TH0= 0xB1;
    TL0=0xEB;
        IE =0x81; //开IE中断允许控制寄存器。其中包括EA EX0 EX1 ET0 ET1 ES
//        EA=1;//开总中断,EA(IE.7)CPU中断运行总控制位
    ET0=1;//开定时器0中断
    TR0=1;//启动定时器0       
        }
   
}

void Time0(void) interrupt 1 using 1   
{   
    TH0=0xB1; //20 ms断点 (1)   
    TL0=0xDF; //设定时值   
    MScond= MScond+ 1;   
    if(MScond == 50)   
    {   
      MScond=0;   
      Scond= Scond+ 1;   
      if (Scond == 60)   
      {   
            Scond=0;   
         
      }   
    }   
}

mcu_lan 发表于 2010-10-7 16:11:38

初始化一次就好了,没必要for (c=0;c<=10;c++) 吧!

feeson 发表于 2012-3-3 15:29:58

试试下这个程序,没有用中断,只是普通的延时程序;
void delay(void)   
{
    unsigned char a,b,c,d;
    for(d=89;d>0;d--)
      for(c=155;c>0;c--)
            for(b=133;b>0;b--)
                for(a=162;a>0;a--);
}
页: [1]
查看完整版本: 求10分钟8051延时程序?