我用STC89C52单片机和12MHZ晶振怎么产生9600的波特率

2019-07-15 19:56发布

求哪位大神可以在这个基础上帮我改一下吗?
        PCON = 0x80;                     
        SCON = 0x50;            
        TMOD = 0x21;                     
        TH1 = 0xfa;
        TL1 = 0xfa;
        TR1 = 1;
        TH0 = 0x00;
        TL0 = 0x01;
        ET0 = 1;        
        TR0 = 1;        
        EA = 1;
        SerDTvalid = FALSE;                         
    REN = 1;
         ES = 1;

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
liuyj124
1楼-- · 2019-07-15 20:04
这段程序应该是用11.0592M的晶振正好产生9600的波特率,但是我只有12M的晶振没有办法啊
依然落叶飘零
2楼-- · 2019-07-16 01:23
初值设为0xF9,不过误差很大,不建议使用。可以将波特率改为4800,或换11.0952M.
发烧友之麒麟
3楼-- · 2019-07-16 03:26
你还是换个晶振的好
liuyj124
4楼-- · 2019-07-16 08:57
liuyj124 发表于 2014-4-30 21:46
这段程序应该是用11.0592M的晶振正好产生9600的波特率,但是我只有12M的晶振没有办法啊 ...

好吧,谢谢了,52是不是提供个timer2,用这个方式误差也是很大吗?
liuyj124
5楼-- · 2019-07-16 12:23
 精彩回答 2  元偷偷看……
依然落叶飘零
6楼-- · 2019-07-16 14:49
liuyj124 发表于 2014-5-1 09:44
好吧,谢谢了,52是不是提供个timer2,用这个方式误差也是很大吗?

52是有timer2.不过波特率和用哪个定时器没有关系的。都一样。

一周热门 更多>