找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4073|回復(fù): 5
收起左側(cè)

51單片機串口發(fā)送數(shù)字實驗為什么改了一下波特率就不對了?

[復(fù)制鏈接]
ID:237065 發(fā)表于 2018-4-3 21:59 | 顯示全部樓層 |閱讀模式
51單片機為什么串口,根據(jù)例程將4800改成了9600就不對了(我是根據(jù)圖片上配置的)(功能:串口發(fā)送一個數(shù)字,串口助手上顯示出來)感覺是配置上哪里出了點問題???

  1. #include<reg52.h>


  2. typedef unsigned char u8;

  3. void UsartInit()
  4. {
  5.   SCON=0x50;
  6.   TMOD=0x20;                //定時器1方式2
  7.   PCON=0x80;
  8.   TH1=0xF9;                  //自動重裝載8位計數(shù)器
  9.   TL1=0xF9;                         //9600
  10.   TR1=1;                          
  11.   ES=1;                        //開串口中斷
  12.   EA=1;



  13. }


  14. void Usart() interrupt 4
  15. {
  16. u8 ReceiveData;
  17.           ReceiveData=SBUF;
  18.           RI=0;
  19.         SBUF=ReceiveData;
  20.          while(!TI);
  21.    TI=0;

  22. }





  23. void main()
  24. {

  25. UsartInit();

  26.   while(1);

  27. }
復(fù)制代碼



顯示結(jié)果

顯示結(jié)果

波特率配置

波特率配置
回復(fù)

使用道具 舉報

ID:237065 發(fā)表于 2018-4-3 22:06 | 顯示全部樓層
是12Mhz晶振,下載軟件也是9600,com4,就是調(diào)不出來
回復(fù)

使用道具 舉報

ID:285069 發(fā)表于 2018-4-4 06:48 | 顯示全部樓層
使用12Mhz晶振,一開始就不好.買不到11.0592M?甚至買22.1184M.
計算波特率誤差最小.
回復(fù)

使用道具 舉報

ID:164602 發(fā)表于 2018-4-4 07:32 | 顯示全部樓層
Hazard 發(fā)表于 2018-4-3 22:06
是12Mhz晶振,下載軟件也是9600,com4,就是調(diào)不出來

這就對了。。。!
12M晶振,最大只能是4800的波特率且要加倍。不然誤差很大,串口就收不到正確的信息。 1.jpg

2.jpg

3.jpg

4.jpg


評分

參與人數(shù) 1黑幣 +5 收起 理由
浪子knight + 5 很給力!

查看全部評分

回復(fù)

使用道具 舉報

ID:287575 發(fā)表于 2018-4-4 08:42 | 顯示全部樓層
程序沒錯,錯的是12M 不應(yīng)該在9600波特率工作,你仔細看看后邊的誤差率6.99%
用11.0592在大多數(shù)波特率工作下,誤差很小
回復(fù)

使用道具 舉報

ID:237065 發(fā)表于 2018-4-4 16:46 | 顯示全部樓層
謝謝大牛們們
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表