原创 如何在6M晶振下得到更高的波特率

2007-10-14 20:27 4810 6 7 分类: MCU/ 嵌入式

在一些对电磁干扰要求严格的电路中尽量降低晶体的振荡频率是必要的,而如果又需要获得更高的串口通信频率,这时可以考虑使用8052中的T2作波特率发生器来解决问题,仅仅只有6M的晶振却可以得到38400b/s的波特率。


 


下面先来看看用T1做波特率发生器时的情况,晶振为6M:


若用T1作波特率发生器,它只能作为8位定时器使用,为得到更高的波特率,可以设置SMOD=1,则它的波特率公式为:BAUND=2*fOSC/(32*12*(256-X)),其中X为定时器T1的初值。若BAUND=4800,则X=249.5,取整为0xf9,或舍入为0xfa,发送10个s,在超级终端观察,得到一个字母k或空。在选择BAUND=9600,则X=252.7,取整为0xfc 或舍入为0xfd,在超级终端得到“]iM”或“^^”,而且出现的结果也不是必然的,可以预期用T1作波特率发生器不能得到4800及以上稳定的波特率。


 


仍然以6M晶振来讨论,而改用T2作波特率,情况大有改观:


先写出T2一段初始化程序:


 void InitialSerialPort()
{SCON=0x50;//方式1,允许接收
C_T2=0;
RCLK=1;
TCLK=1;


RCAP2H=0xff;
RCAP2L=0xd8 ;//波特率=4800的设置值


TR2=1;
}


T2的波特率公式为:BAUND=fOSC/[32*65536-(RCAP2H,RCAP2L)],以下是各种波特率下RCAP2L的取值:


RCAP2H=0xff;
RCAP2L=0xd8 ;//波特率=4800
//RCAP2L=0xec;//波特率=9600
//RCAP2L=0xf6;//波特率=19200
//RCAP2L=0xfb;//波特率=38400


上述各种波特率情况下串口超级中断显示接收数据正常:都为10个s。


选用8952中的T2作波特率发生器可以得到比T1高得多的波特率。


以上讨论是以KEIL Uvision2 为编译环境,以89S52和MAX232为硬件平台,串口调试终端从http://www.gjwtech.com/下载。


以下为相关文件压缩包:rar


                                


                                           writed by eleclike  2007-10-14


 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户302607 2012-9-23 09:22

附件呢?

用户302607 2012-9-23 09:20

看不到啊?

eleclike 2007-10-16 18:36

谢谢你们的捧场
相关推荐阅读
eleclike 2010-12-03 00:07
mark 一下
2010 mark...
eleclike 2009-05-13 15:34
GSM PDU格式短信解析器
 本软件用于解析GSM PDU格式短信,显示DCS=8BIT和DCS=16BIT两种编码方式的短信内容。下载地址为:https://static.assets-stash.eet-china.com/...
eleclike 2009-04-27 16:55
Unicode与ASCII转换工具
Unicode字符在许多场合都会经常使用到,比如GPRS模块的开发和USB字符串描述符的定义,本软件是一个Unicode与ASCII编码的转换工具v1.0版本.1.可以将IRA格式的Unicode数据...
eleclike 2009-04-03 12:40
TUSB3210复位系统
TUSB3210采用标准的8052内核,但因为其更多的片上外设使得复位电路比普通的8051单片机更复杂。复位电路图如下图所示:从图中可以分析:1.  复位源:a)         USB-FUNCTO...
eleclike 2009-03-31 13:43
MC55使用的串口工具介绍
MC55使用的串口工具介绍:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />1.使用...
eleclike 2009-03-22 15:54
QuickARM片内RAM调试
 QuickARM片内RAM调试<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />1....
我要评论
1
6
关闭 站长推荐上一条 /3 下一条