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

2019-07-15 16:45发布

本帖最后由 自学单片机 于 2015-6-26 23:08 编辑

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;
    }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
自学单片机
1楼-- · 2019-07-15 21:41
n--;
if(n==0)
这的n应该改为n[i],上传错误。
有没有人帮忙看看。。
lihuafei7
2楼-- · 2019-07-16 00:16
 精彩回答 2  元偷偷看……

一周热门 更多>