void Uart1Init() //串口1初始化;
{
SCON = 0x40; //串口1模1: 0100: 010模式1,可變波特率8位數據方式,0禁收只發(關鍵:原來0X50可收,平時斷開只發不收0X40才能杜絕收發串擾!已驗證ok!);
TMOD = 0x20; //T1模2: 8位自動重載模式;PCON:未設定,復位值0011,0000默認SMOD=0波特率不加速!;
TL1 = BRT; //T1: BRT:相當于串口1使用獨立波特率發射器為波特率發生器; 也可前面不定義直接賦值(如:0xDC);
TH1 = BRT; // 計數寄存器高低各一個,8位自動重載模式周期計算公式:定時器周期=(256–TH1)/SYSclk (自動重載);
TR1 = 1; // T1運行控制位:軟件置位和清零。TR1=1允許T1開始計數,TR1=0時禁止;
//AUXR = 0x40; //輔助寄存器(特殊,不可位尋址),建議分開寫成:AUXR |= 0x40;AUXR &= 0xFE;
AUXR |= 0x40; // B6(T1x12):T1速度控制位,"1"選T1且1T模式不分頻FOSC/1;
AUXR &= 0xFE; // B0(S1ST2):串口1波特率發射器選擇位,“0”選T1為波特率發射器);
//bufferPtr = 0; //只發不收可去掉!改0X00無變化;
Uart1Busy = 0; //
delay_ms(100); //延時0.1S; |