美文网首页
51单片机波特率计算公式和定时器初值

51单片机波特率计算公式和定时器初值

作者: 岳海龙 | 来源:发表于2019-02-13 12:46 被阅读0次

51单片机芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON 寄存器。它的各个位的具体定义如下: 

SM0 SM1 SM2 REN TB8 RB8 TI RI 

SM0、SM1 为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。串行口工作模式设置。 

波特率在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的波特位数。这里所指的波特率,如标准9600 不是每秒种可以传送9600个字节,而是指每秒可以传送9600 个二进位,而一个字节要8 个二进位,如用串口模式1 来传输那么加上起始位和停止位,每个数据字节就要占用10 个二进位,9600 波特率用模式1 传输时,每秒传输的字节数是9600÷10=960 字节。 

    51芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12M 的晶振来计算,那么它的波特率可以达到1M。模式2的波特率是固定在fosc/64 或fosc/32,具体用那一种就取决于PCON 寄存器中的SMOD位,如SMOD 为0,波特率为focs/64,SMOD 为1,波特率为focs/32。 

    模式1和模式3的波特率是可变的,取决于定时器1或2(52芯片)的溢出速率,就是说定时器1每溢出一次,串口发送一次数据。那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算。 

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

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

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

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

11.0592M 

               9600=(2÷32)×((11.0592M/12)/(256-TH1)) 

TH1=250 

12M 

               9600=(2÷32)×((12M/12)/(256-TH1)) 

TH1≈249.49 

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

相关文章

  • 51单片机波特率计算公式和定时器初值

    51单片机芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON 寄存器。它的各个位的具体定义...

  • 命题_第十三章_计算题

    MCS-51单片机的时钟晶振频率为6MHz,若要求定时为0.2ms和20ms,定时器0工作为0,其定时器初值各位多...

  • 命题-第十四章-简答

    MCS-51单片机串口四种工作方式的波特率是如何计算? 【解析】 波特率是串行口每秒钟发送或接受的位数。波特率和串...

  • 51单片机常用波特率初值表(12M晶振)

    为什么51单片机的晶振一般使用11.0592? 用11.0592晶振的原因是51单片机的定时器导致的。用51单片机...

  • 第十四章出题

    若AT89S51单片机的时钟振荡频率为11.0592MHZ,选用T1的方式2定时作为波特率发生器,波特率为4800...

  • proteus 串口通信乱码问题解决

    困扰了我很久,原来是个小问题,记录一下。 首先选定波特率的初值表,找到对应的初值,我们本次设计的波特率是9600,...

  • 命题-第十三章-填空

    对于AT89S51单片机的定时器/计数器来说,它有( )和( )两种工作模式,有( ...

  • 命题-十四章-填空

    一般情况下在51单片机中,使用_______是为了获取精准的波特率 【解析】 单片机的晶振频率一般为12T,也就是...

  • 51定时器和计数器

    一、MCS-51单片机的定时器/计数器概念 单片机中的定时器和计数器其实是同一个物理的电子元件,只不过计数器记录的...

  • 命题-第13章-计算(1)

    单片机计数初值的计算(一) ...

网友评论

      本文标题:51单片机波特率计算公式和定时器初值

      本文链接:https://www.haomeiwen.com/subject/jforeqtx.html