痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 6635|回復: 8

AT89C2051, 12MHz XTAL, 可以設定 UART 57600 BAUD 嗎

[複製鏈接]
發表於 2011-8-15 09:55:18 | 顯示全部樓層 |閱讀模式
想請教, 以下是人家寫好的 C51 原碼, 用 11.0592MHZ XTAL, 因為有寫好的 PC HOST PROGRAM, 固定 57600 BAUD, C51 程式不改的話, 12M XTAL 出的 BAUD RATE 變成 62500 BAUD, 無法與 PC 端溝通, 但是 PC 端並不提供原碼.

手上沒有 11.0592MHZ, 想改用 12M XTAL, 怎樣改, 可以讓 AT89C2051 出來 57600呢,

用 Keil C 免費版成功編譯, 剩下的要改.
https://www.keil.com/download/product/


//串口初始化 晶振為11.0592M 方式1 波特率57600
void InitCom(void)
{
        SCON = 0x50; //串口方式1,允許接收
        TMOD = 0x21; //定時器1定時方式2,定時0為模式1,16位模式
        TCON = 0x40; //設定時器1開始計數
        TH1 = 255;        //設波特率為57600
        TL1 = 255;
        PCON = 0x80; //波特率加倍控制,SMOD位
        RI = 0;        //清收發標誌
        TI = 0;
        TR1 = 1; //啟動定時器
        EA = 1; //開總中斷
        ES = 1; //開串口中斷
}
發表於 2011-8-15 10:21:57 | 顯示全部樓層
本帖最後由 legion 於 2011-8-15 10:23 AM 編輯

回復 xiaolaba 的帖子

去買棵11.0592的XTAL比較實際一點,
1棵不到10元而已,
原因是因為892051是12T的MCU,工作週期的關係
換成12MHZ的XTAL再怎麼算都跑不了57600BPS的
不止57600而己,任何的串列傳輸值誤差都太大
所以只能使用11.0592或22.1184的XTAL
不然是無解的
 樓主| 發表於 2011-8-15 11:34:37 | 顯示全部樓層
回復 legion 的帖子

這樣啊....看來要想其他辦法..
 樓主| 發表於 2011-8-15 11:46:12 | 顯示全部樓層
回復 legion 的帖子

再來請教, 如果用 24MHz, XTAL, 可以設成這位網友所描述的嗎....他的計算 %0.16 速度誤差, 估計可以允許正常通訊

AT89C51RD2 Internal BRG
http://tw.myblog.yahoo.com/jl082 ... &l=f&fid=16
發表於 2011-8-15 12:00:57 | 顯示全部樓層
回復 xiaolaba 的帖子

我想在上面我有提到892051是12T的MCU
而AT89C51RD2是1T的MCU所以才會有0.16%的誤差
但是1T的MCU在程式中的所有DELAY要全部修改
加上1T的MCU又一定比標準12T的MCU來的貴
如果使用標準12T的MCU在12MHZ時的誤差應有8.51%左右
原始11.0592的程式跑12M時還要注意內部的DELAY容許值
換成24MHZ的話,你的所有DELAY參數大概又要大變動
所以換棵XTAL簡單又方便,除非你還有其他特殊用途,
不然換棵110.592比較實際,而且0.16%的誤差其實也是很大的
跑久一點你就知道問題會出現的
發表於 2011-8-15 16:55:52 | 顯示全部樓層
legion大哥說的對換棵XTAL比較快
發表於 2011-8-15 17:20:12 | 顯示全部樓層
回復 legion 的帖子

legion大:
    蝦咪是 1T  12T ?
發表於 2011-8-15 19:38:04 | 顯示全部樓層
回復 antlu 的帖子

如果可以的話請把手上的書從第一頁看起
如果有介紹時序及機械週期的話,就會知道1t和12T的差別
12個振盪週期=1個機械週期
有的指令1個機械週期可完成,有的要3個
如果很在意準確性,速度及時序時,這個會變的很重要
如果不太在意時,頂多就是速度的影响而已.
大部份寫C的人這個地方會比較直接跳過
發表於 2011-8-16 12:51:55 | 顯示全部樓層
回復 legion 的帖子

LEGION大:
    感謝!!
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-11-21 09:27 PM , Processed in 0.281205 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.