微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 请教一下,单片机2个定时器,为什么只能播放1次数组循环?

请教一下,单片机2个定时器,为什么只能播放1次数组循环?

时间:10-02 整理:3721RD 点击:

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;
    TL0=b;
    TH1=0x06;
    TL1=0x06;
    while(1)
    {
    }
}
void t0(void) interrupt 1 using 0
{
        BEEP=~BEEP;
        TH0=a;
        TL0=b;
}
void t1(void) interrupt 3 using 0
{
    t++;
    if(t==1000)
    {
        t=0;
        n--;//这俩句去掉可以循环
        if(n==0)//
        {
            TR0=0;
            i++;
            if(i==6)
            {
                i=0;
            }
            TR0=1;
        }
        TH1=0x06;
        TL1=0x06;
    }
}

n--;
if(n==0)
这的n应该改为n[i],上传错误。
有没有人帮忙看看。

看过,路过,留给后来人

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top