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