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; |