[STC单片机] STC12C5A定时器0与串口1同时使用冲突

[复制链接]
 楼主| 梦在那 发表于 2021-8-20 10:29 | 显示全部楼层 |阅读模式
现在想要用定时器0进行定时操作,定时器1作为串口中断进行串口打印,把定时器0屏蔽掉后可以正常串口打印,两个同时用就不行了,串口不输出了。
void SendData(char dat)
{
        SBUF = dat;
        while(TI ==0);
        TI = 0;
}
void UartInit(void)   //115200bps @11.0592MHz
{

        PCON = 0x80;                //波特率不倍速
        SCON = 0x50;                //8位数据,可变波特率
        AUXR = 0x40;                //串口1选择定时器1为波特率发生器,定时器1时钟为1T;定时器0时钟12T模式
        TMOD = 0x21;                //设定定时器1为8位自动重装方式,定时器0位16位
        TL1 = 0xFD;                //设定定时1初值
        TH1 = 0xFD;                //设定定时器1重装值
        TR1 = 1;                //启动定时器1
        Timer0Init();
        ES = 1;//开启串口中断
        PS = 1;//设计串口中断优先级
        ET0 = 1;
        EA = 1;//开启总中断
}
void Timer0Init(void)                //10毫秒@11.0592MHz
{
        TL0 = 0x00;                //设置定时0初始值
        TH0 = 0xDC;                //设置定时0初始值
        TR0 = 1;                //定时器0开始计时
}
void main()
{       
        UartInit();       
        while(1)
        {  
                if(timer0_count ==200){
                        timer0_count=0;
                Data_Process();
                        }
  }
}

void RSINTR() interrupt 4
{
        if(RI)
        {
                RI = 0;
                dat = SBUF;
        }
}

void Timer0() interrupt 1
{
        TL0 = 0x00;                //设置定时初始值
        TH0 = 0x4C;                //设置定时初始值
        timer0_count++;
}


 楼主| 梦在那 发表于 2021-8-23 15:28 | 显示全部楼层
来个人踩踩
 楼主| 梦在那 发表于 2021-8-26 09:02 | 显示全部楼层
没人吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

234

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

37

主题

234

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部