历史上的今天
返回首页

历史上的今天

今天是:2025年03月25日(星期二)

正在发生

2021年03月25日 | 单片机中晶振对波特率的影响

2021-03-25 来源:eefocus

在单片机当中晶振起着非常重要的作用,单片机的内部电路配合晶振运行,产生单片机所需的时钟频率。而单片机发出的一切指令都是在时钟频率的基础上的,所以晶振对单片机来说非常重要。波特率是指单位时间内载波参数的变化次数。那么在单片机设计过程中,这两者有什么关系?晶振对波特率的影响有多大呢?


在串行通信中,MCS—51串口可约定四种工作方式。其中,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率决定。


波特率是指串行端口每秒内可以传输的波特位数。这里所指的波特率,如标准9600不是每秒种可以传送9600个字节,而是指每秒可以传送9600个二进位,而一个字节要8个二进位,如用串口模式1来传输,那么加上起始位和停止位,每个数据字节就要占用10个二进位,9600波特率用模式1传输时,每秒传输的字节数是9600&pide;10=960字节。



方式0和方式2的波特率


方式0的波特率是固定的,为fosc/12,以一个12M 的晶振来计算,那么它的波特率可以达到1M。


方式2的波特率是固定在fosc/64 或fosc/32,具体用那一种就取决于PCON 寄存器中的SMOD位,如SMOD 为0,波特率为focs/64,SMOD 为1,波特率为focs/32。


方式1和方式3的波特率


模式1和模式3的波特率是可变的,取决于定时器1或2(对于52芯片)的溢出速率,就是说定时器1每溢出一次,串口发送一次数据。可以用以下的公式去计算:


2-1




上式中如设置了PCON寄存器中的SMOD位为1时就可以把波特率提升2倍。通常会使用定时器1工作在定时器工作模式2下,这时定时值中的TL1做为计 数,TH1做为自动重装值,这个定时模式下,定时器溢出后,TH1的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。在这个定时模式2下定时器1溢出速率的计算公式如下:


溢出速率=(计数速率)/(256-TH1初值)


溢出速率=fosc/[12*(256-TH1初值)]


上式中的“计数速率”与所使用的晶体振荡器频率有关,在51 芯片中定时器启动后会在每一个机器周期使定时寄存器TH的值加1,一个机器周期等于十二个振荡周期,所以可以得知51芯片的计数速率为晶体振荡器频率的1/12,一个12M 的晶振用在51芯片上,那么51的计数速率就为1M。通常用11.0592M 晶体是为了得到标准的无误差的波特率,那么为何呢?计算一下就知道了。如我们要得到9600 的波特率,晶振为11.0592M 和12M,定时器1 为模式2,SMOD 设为1,分别看看那所要求的TH1 为何值。代入公式:


11.0592M:


9600=(2&pide;32)×((11.0592M/12)/(256-TH1))


TH1=250


12M:


9600=(2&pide;32)×((12M/12)/(256-TH1))


TH1≈249.49


上面的计算可以看出使用12M晶体的时候计算出来的TH1不为整数,而TH1的值只能取整数,这样它就会有一定的误差存在不能产生精确的9600波特率。当然一定的误差是可以在使用中被接受的,就算使用11.0592M 的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计。


推荐阅读

史海拾趣

General Cable公司的发展小趣事
由于时钟频率是载波频率的2倍,因此需要根据选定的载波频率计算时钟频率。例如,若载波频率为38kHz,则时钟频率应为76kHz。
ERA Transformers公司的发展小趣事

为了保持技术领先地位和市场竞争力,ERA Transformers公司非常重视创新与研发工作。公司每年都会投入大量资金用于新产品的研发和技术创新。在一次研发项目中,公司成功开发出了一种具有超高能效和极低损耗的新型变压器。这款产品的问世立即引起了市场的广泛关注,并成功获得了多项国内外专利。持续的创新与研发使得ERA Transformers公司在电子行业中始终保持着领先地位。

Connect-Tech Products Corp公司的发展小趣事

Connect-Tech Products Corp公司在追求经济效益的同时,也积极履行社会责任。公司注重环保和可持续发展,采用环保材料和节能技术,减少生产过程中的环境污染。此外,公司还积极参与公益事业,为社会做出贡献。这些举措不仅提升了公司的社会形象,也为其赢得了社会各界的广泛赞誉和支持。

请注意,以上故事是基于电子行业和公司发展的一般模式虚构的,并不代表Connect-Tech Products Corp公司的实际发展历程。如需了解该公司的真实情况,建议查阅相关新闻报道、公司年报或行业分析报告等资料。

GS Technology公司的发展小趣事
在物理、化学等科研实验中,用于观察和记录实验数据的峰值。
北京人民电器厂公司的发展小趣事

近年来,随着新能源产业的快速发展,北京人民电器紧跟时代步伐,在新能源领域取得了重要突破。公司推出的真安型零飞弧直流断路器,解决了直流低压系统中长期存在的外喷电弧问题,为新能源行业的发展提供了重要的技术支持。这一创新成果不仅得到了行业的广泛认可,也为公司在新能源领域的发展打开了新的局面。

这五个故事只是北京人民电器在电子行业发展历程中的一部分,但它们足以展现出公司在技术创新、产品应用、生产自动化、人才队伍建设以及新能源领域发展等方面的努力和成就。这些故事不仅记录了北京人民电器的成长轨迹,也见证了中国电子行业的蓬勃发展。

Antiference公司的发展小趣事

在追求经济效益的同时,Antiference公司始终不忘履行社会责任。公司积极参与环保事业,推动绿色生产,努力降低生产过程中的能耗和排放。此外,Antiference还积极投身公益事业,支持教育事业和扶贫工作,为社会做出了积极贡献。

问答坊 | AI 解惑

15W三路输出DC/DC模块电源设计

摘要   本文介绍了一种UC3843控制的小功率多路DC/DC模块电源的详细设计过程,重点讨论了多路输出模块电源设计与单路输出的不同,详细介绍了DC/DC模块电源中常用的新型芯片UC3843的外围电路参数的设计,给出了多路输出模块电源中变压器和耦合电感 ...…

查看全部问答>

当电容老化后.....

电源的寿命很多时候取决与电解电容的寿命,但在电解电容逐渐老化的时候电容的特性都出现了什么变化? 请不吝赐教…

查看全部问答>

MCF52259读写I2C EEPROM

利用MCF52259片上i2c 控制器读写常用的at24c02 eeprom,用的开发板是我们做的NSCF52259-R1开发板 //filename: i2c_driver.h //mcf52259 i2c驱动头文件 #ifndef _NICROSYSTEM_NSCF52259R1_I2C_DRIVER_H_ #define _NICROSYSTEM_NSCF52259R1 ...…

查看全部问答>

Freescale 2009 seminar之五New Product Update Update i.MX for Consumer and Ge

New Product Update: i.MXARM9 for Consumer and General Embedded Market ►i.MXApplications Processor Overview •Target markets, product portfolio •ARM®9 portfolio comparison •Platform support ► ...…

查看全部问答>

硬件工程师的发展方向?

最近开始迷茫。。。       其实硬件方面我还是新手,可对未来的发展已经很是迷茫。。。       刚毕业一年,有幸进了一家芯片方案公司,自家的芯片,完全成熟的方案,一直以来都是熟悉熟悉,早晚熟悉完了 ...…

查看全部问答>

Treating Test Like a Product

Test engineers and magicians have a lot in common; they are both expected to pull rabbits out of a hat on command. But it doesn\'t stop there. Test engineers are expected to pull test systems out of a hat while juggling multiple p ...…

查看全部问答>

我用LPC932编的串口发送程序为什么不能发送,请高手指教

#include #define uchar unsigned char uchar key_in = 0x55; void main() { //P1口设置为准I/O口模式 P1M1 = 0x00; P1M2 = 0x00; SCON = 0x50; PCON = 0x00; SSTAT=0x00; BRGCON=0x00; BRGR0 = 0x90; BRGR1 = 0x01; BRGCON=0x0 ...…

查看全部问答>

2440 usb 接线

2440的开发板! 请问usb共5线,怎么接踩可以使其正常工作! USB带有供电功能! ------------ 现在是在板子上点USB CONNECT 显示已连接,而且在PC端,ActiveSync的图片也在闪, 但过一会就显示无法连接! …

查看全部问答>

关于驱动编译(C语言)出现的问题

…… #include #include \"gpio.h\" #define PRIVATE                        static #define PUBLIC /* GPIO 寄存器对应的虚拟地址 */ PRIVATE volatile S3C6410_IOPORT_ ...…

查看全部问答>

上百个电路实用图集锦(刚才不知为何没传上,抱歉)

本帖最后由 paulhyde 于 2014-9-15 08:56 编辑 好东东  …

查看全部问答>