⑴ 51單片機 設置串口波特率115200初值怎麼弄 呢 單片機是11.0592的晶振
void UartInit(void) //[email protected]
{
PCON &= 0x7f; //波特率不倍速
SCON = 0x50; //8位數據,可變波特率
AUXR |= 0x40; //定時器1時鍾為Fosc,即1T
AUXR &= 0xfe; //串口1選擇定時器1為波特率發生器
TMOD &= 0x0f; //清除定時器1模式位
TMOD |= 0x20; //設定定時器1為8位自動重裝方式
TL1 = 0xFD; //設定定時初值
TH1 = 0xFD; //設定定時器重裝值
ET1 = 0; //禁止定時器1中斷
TR1 = 1; //啟動定時器1
}
void UartInit(void) //[email protected]
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位數據,可變波特率
AUXR &= 0xbf; //定時器1時鍾為Fosc/12,即12T
AUXR &= 0xfe; //串口1選擇定時器1為波特率發生器
TMOD &= 0x0f; //清除定時器1模式位
TMOD |= 0x20; //設定定時器1為8位自動重裝方式
TL1 = 0xFF; //設定定時初值
TH1 = 0xFF; //設定定時器重裝值
ET1 = 0; //禁止定時器1中斷
TR1 = 1; //啟動定時器1
}
⑵ MCS-51單片機串口四種工作方式的波特率如何確定
1、串口屏和軟體成功聯機之後,左上角會顯示當前波特率。
⑶ 51單片機怎麼實現在rxd接受115200波特率的數據,在txd輸出9600波特率的數據呢。
用 T2 控制波特率,可實現不同的收發速度。
T2CON 中,有 RCLK、TCLK 兩個控制位。
當把 RCLK 置一後,將用 T2 控制串口接收的波特率。
當把 RCLK 清零後,將用 T1 控制串口接收的波特率。
當把 TCLK 置一後,將用 T2 控制串口發送的波特率。
當把 TCLK 清零後,將用 T1 控制串口發送的波特率。
就是說,串口的發送、接收波特率,可以用 T1、T2 分別控制。
樓主的要求,用一片普通的51單片機(52系列),即可滿足。
採納答案,是錯誤的。
⑷ 用51單片機串口實驗時波特率怎麼調才合適我覺得是不是就給它調高點就可以不是很理解,求解釋一下
一般而言,波特率的高低與串口傳輸距離和使用環境有關,距離越遠,波特率一般越低,使用環境干擾越大,波特率越低,如果是在同一塊板上的串口通訊,可以做到很高,比如115200bps,另外最好使用11.0592M之類的晶振,這樣標准波特率可以做到沒有誤差。
通過我的使用經驗,一般RS232傳輸距離在1米以內的話,115200bps的波特率是沒有什麼問題的。10米以內的話9600bps肯定可以穩定傳輸(關鍵是要保證電壓,也就是解決壓降的問題。)。超過10米的話最好用485了。