单片机2个定时器同时工作,为什么只能播放1个循环?

2019-07-15 16:40发布

uchar a[]={252,252,252,252,253,253};
uchar b[]={68,68,173,68,52,10};
uchar n[]={1,1,2,2,2,4};
sbit  BEEP=P3^6;
void main()
{
    TMOD=0x21;
    EA=1;
    ET0=1;
    ET1=1;
    TR1=1;
    TR0=1;
    i=0;
    t=0;
    TH0=a[i];
    TL0=b[i];
    TH1=0x06;
    TL1=0x06;
    while(1)
    {
    }
}
void t0(void) interrupt 1 using 0
{
        BEEP=~BEEP;
        TH0=a[i];
        TL0=b[i];
}
void t1(void) interrupt 3 using 0
{
    t++;
    if(t==1000)
    {
        t=0;
        n[i]--;
        if(n[i]==0)
        {
            TR0=0;
            i++;
            if(i==6)
            {
                i=0;
            }
            TR0=1;
        }
        TH1=0x06;
        TL1=0x06;
    }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。