微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > C51中怎么同时应用串口中断和两个定时器中断

C51中怎么同时应用串口中断和两个定时器中断

时间:10-02 整理:3721RD 点击:
大家好,我原来用两个定时器中断控制时钟显示和闹钟铃声,初始化如下:
void InitTimer0(void)
{
        unsigned long T0_temp;   
        
        T0_temp = 65536-((INT_CLOCK *CRY_FREQUENCY /1000)/12);  
        TL0_temp = T0_temp & 0xff;
        TH0_temp = T0_temp >> 8;
        TL0 = TL0_temp;
        TH0 = TH0_temp;
       TH1=0xd8;
       TL1=0xef;
        
        TMOD |= 0x11;
        
        EA = 1;                     
        
        ET0 = 1;  
        ET1=1;
        TR0 = 1;                     
        }

想增加一个蓝牙模块控制,所以需要对串口中断有以下声明:
void init()        //串口初始化  
{  
       ES=0;                                 //关中断  
       SCON = 0x50;                        // REN=1允许串行接受状态,串口工作模式1,  
                                            //10位UART(1位起始位,8位数据位,1位停止位,无奇偶校验),波特率可变  
       TMOD = 0x20;                        //定时器1工作于方式2,8位自动重载模式,用于产生波特率  
       TH1=TL1=0xFD;                       //波特率9600 (本次测试采用晶振为11.0592)  
       PCON &= 0x7f;                       //波特率不倍增  
       TR1 = 1;                            //定时器1开始工作,产生波特率  
                                           //发送标志位置0  
       TI=0;                               //接收标志位置0  
       RI=0;  
       ES=1;  
       led1=0;                                    //初始化设置3个指示灯全亮  
       led2=0;  
       led3=0;  
}  

请问怎么整合成一个声明内,或者怎么设置互不影响,谢谢!

跪求大神,帮忙修改下,谢谢。

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

网站地图

Top