求10分钟8051延时程序?

2020-02-04 09:30发布

怎样编写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;   
           
        }   
    }   
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
mcu_lan
1楼-- · 2020-02-04 14:40
初始化一次就好了,没必要for (c=0;c<=10;c++) 吧!
feeson
2楼-- · 2020-02-04 14: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--);
}

一周热门 更多>