波特率基本概念:波特率是一个衡量通讯速度的参数,它表明每秒钟传送的bit的个数(来自:http://baike.haosou.com/doc/5430972-5669264.html)。
在单片机串口通讯的设置中,绝大多数情况下,波特率是经过编程人员编写程序设定的。那么咱们怎么去了解波特率的核算原理呢。
传统51单片机串口通讯时(定时器1作为波特率发生器)波特率的核算公式是这样的:
首要咱们要彻底了解这个公式,然后咱们才干更好的去运用它。其间,‘SMOD’是PCON寄存器中的一个bit,能够经过对PCON赋值,设置‘SMOD’为0(波特率不加倍)或1(波特率加倍);再看上式中的‘32’,‘32’指的是溢出信号经过32分频,当然,并不是一切的单片机的溢出信号都要经过32分频。对上式的了解要害的当地是‘T1的溢出率’,这儿的溢出率指的是定时器在单位时间内溢出的次数,所谓溢出,便是定时器从开端计数到计数到达最大值时,假如再加1,定时器就会溢出。这样就有以下的溢出率核算公式:
传统51单片机(12T)计数时钟是晶振的12分频,所以关于传统的51单片机而言,单位时间内单片机能够计数的次数=晶振频率/12;定时器溢出一次单片机计数的次数=定时器计数的最大值-初值;举个比方阐明:现在咱们选用的晶振为12M,定时器是8位的,计数的最大值为256(2的8次方),咱们赋予定时器的初值为156,那么就有:
这样,咱们就能够依据第一个式子核算出相应的波特率了。同理,假如一开端咱们就确认了波特率,那么咱们也能够经过以上第一和第二个式子把定时器的初值核算出来。其实许多时分,波特率的核算,其实便是定时器初值的核算。
最终烦琐几句,波特率的核算不能混为一谈,比方有些单片机对定时器的溢出信号的处理不是32分频而是4分频(比方STC15系列单片机),并且用12T单片机时单位时间内单片机能够计数的次数=晶振频率/12;假如用的是1T单片机时,则有:单位时间内单片机能够计数的次数=晶振频率。所以咱们依据实际情况动身,脚踏实地。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/256790.html