帮忙解释一下程序,谢谢!!!主要是if()内的。跪求

2019-03-24 19:50发布

void UART0_Init (void)                   //  串口初始化
{   
        SCON0 = 0x10;                          // 8-bit variable bit rate   
                                          // level of STOP bit is ignored   
                                          // RX enabled   
                                          // ninth bits are zeros   
                                          // clear RI0 and TI0 bits   
        if (SYSCLK/BAUDRATE/2/256 /1)   
        {   
        TH1 = -(SYSCLK/BAUDRATE/2);   
         CKCON |=  0x08;                     // T1M = 1; SCA1:0 = xx   
        }   
        else if (SYSCLK/BAUDRATE/2/256/4)   
        {   
        TH1 = -(SYSCLK/BAUDRATE/2/4);   
        CKCON &= ~0x0B;                     // T1M = 0; SCA1:0 = 01                     
        CKCON |=  0x01;   
        }   
        else if (SYSCLK/BAUDRATE/2/256/12)   
          {   
          TH1 = -(SYSCLK/BAUDRATE/2/12);   
          CKCON &= ~0x0B;                     // T1M = 0; SCA1:0 = 00   
          }   
        else   
          {   
            TH1 = -(SYSCLK/BAUDRATE/2/48);   
            CKCON &= ~0x0B;                     // T1M = 0; SCA1:0 = 10   
            CKCON |=  0x02;   
           }   
   
        TL1 = TH1;                             // init Timer1   
        TMOD &= ~0xf0;                         // TMOD: timer 1 in 8-bit autoreload   
        TMOD |=  0x20;                          
        TR1 = 1;                               // START Timer1   
        TI0 = 1;                               // Indicate TX0 ready   
} 此帖出自小平头技术问答
0条回答

一周热门 更多>