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

发布者:徽宗古泉最新更新时间:2016-06-20 来源: eefocus关键字:6M晶振  波特率 手机看文章 扫描二维码
随时随地手机看文章
在一些对电磁干扰要求严格的电路中尽量降低晶体的振荡频率是必要的,而如果又需要获得更高的串口通信频率,这时可以考虑使用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一段初始化程序:

voidInitialSerialPort()

{

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高得多的波特率。

关键字:6M晶振  波特率 引用地址:如何在6M晶振下得到更高的波特率

上一篇:单片机大侠是怎么样炼成的
下一篇:单片机秘籍之降龙十五掌

推荐阅读最新更新时间:2024-03-16 14:58

STC单片机11.0592晶振实现115200波特率串口通信
在8051系列单片机如:89S51、89C51 这些单片机上,用11.0592M晶振实现115200波特率通信,几乎是不可能的。 如果换了STC单片机,例如在STC12C5A60S2实现115200的高速通信就相当简单了。 因为,STC12单片机有独立的波特率发生器。 #include STC12C5A60S2.H #include stdio.h void init_uart() { PCON &= 0x7f; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率 BRT = 0xFD; //设定独立波特率发生器重装值 AUXR |= 0x04; //独立波特率发生器时钟为F
[单片机]
通信(通信方式\电平转换\波特率\串行口结构)
以下内容选自郭天祥的书籍: 串行通信方式: 串行通信的必要过程:发送时,要把并行数据变成串行数据发送到线路上去,接受时,要把串行信号再变成并行数据,这样才能被计算机及其他设备处理。 串行通信又有两种方式:异步串行通信和同步串行通信。 异步串行通信方式: 同步串行通信: TTL和RST232电平的转换: 波特率与定时器初值的关系: 也就必定很高。 串行口结构描述: 方式1的编程和实现:
[单片机]
通信(通信方式\电平转换\<font color='red'>波特率</font>\串行口结构)
51单片机中关于波特率的介绍
在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在8051串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。 方式0 方式0的波特率固定为主振频率的1/12。 方式2 方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示: 波特率=2的SMOD次方除以64再乘一个fosc,也就是当SMOD=1时,波特率为1/32fosc,当SMOD=0时,波特率为1/64fosc 方式1和方式3 定时器T1作为波特率发生器,其公式如下: 波特率= 定时器T1溢出率 T1溢出率= T1计数率/产生溢出所需的周期数 式中T1计数率取决于它工作在定时器状态还是计
[单片机]
51单片机中关于<font color='red'>波特率</font>的介绍
基于单片机的波特率变换器设计方案
在一些复杂的系统中,系统与分系统、分系统与设备等之间存在数据的传递问题,往往采用通信的方式来解决。由于分系统、没备等通信波特率的不同,特别是一些特殊波特率设备的存在,使得系统中设备间的相互通信不易实现。例如,在一个系统中,上位机接收某一设备的数据,如图1所示,设备l和设备2采用的是172.8 kbps的波特率,而上位机用VB编程,其通信波特率为115.2 kbps、128 kbps或256 kbps,等,这样设备之间就不能相互通信,给设计带来困难。为了解决上述问题,采用双单片机电路,设计了 波特率变换器 ,将接收波特率为172.8 kbps的数据,转换成波特率为115.2 kbps的输出,从而使不同波特率设备之间的通信成为可能。
[单片机]
基于单片机的<font color='red'>波特率</font>变换器设计方案
can总线(二)--如何测量can总线的波特率
这两天在研究车载can总线,因为对于车上的can总线的接口以及波特率没有对应的资料可查(不同的车接口都不一样,波特率也可能不同), 做一想要从车上测出can总线上的数据还不太容易。 于是我首先使用示波器(我使用的示波器型号是TDS 220)来找出汽车上can总线的接口,然后测出can总线的波特率,测量波特率的步骤如下: 1、将示波器的两个接口(接地和探头)分别接在can总线的两条线(CAN_H和CAN_L)上,这里需要注意如果CAN线上需要接一个120欧姆的负载电阻,否则波形是不规整方波,接上负载之后才是规整的方波。 2、此时如果can线上有数据,则会在示波器上显示出方波如图1所示。(这里使用示波器的RUN/STOP按
[测试测量]
can总线(二)--如何测量can总线的<font color='red'>波特率</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved