首页 理论教育 单片机控制技术(C语言版):串行通信波特率设置

单片机控制技术(C语言版):串行通信波特率设置

时间:2023-11-24 理论教育 版权反馈
【摘要】:在串行通信中,收发双方对传送的数据速率即波特率要有一定的约定。串行口每秒钟发送(或接收)的位数就是波特率。其中方式0和方式2的波特率是固定的,方式1和方式3的波特率可变,由定时器T1的溢出率决定,下面加以具体分析。为了避免溢出而产生不必要的中断,此时应禁止T1中断。例8-1若已知波特率为4800,则可求出T1的计数初值:表8-3列出了各种常用的波特率及获得办法。表8-3定时器T1产生的常用波特率

单片机控制技术(C语言版):串行通信波特率设置

在串行通信中,收发双方对传送的数据速率即波特率要有一定的约定。串行口每秒钟发送(或接收)的位数就是波特率。51单片机的串行口通过编程可以有4种工作方式。其中方式0和方式2的波特率是固定的,方式1和方式3的波特率可变,由定时器T1的溢出率决定,下面加以具体分析。

·方式0和方式2:在方式0中,波特率为时钟频率的1/12,即,固定不变。在方式2中,波特率取决于PCON中的SMOD值,当SMOD=0时,波特率;当SMOD=1时,波特率,即波特率=

·方式1和方式3:在方式1和方式3下,波特率由定时器T1的溢出率和SMOD共同决定,即方式1和方式3的波特率=溢出率。其中,T1的溢出率取决于单片机定时器T1的计数速率和定时器的预置值。计数速率与TMOD寄存器中的位有关,当C/时,计数速率;当时,计数速率为外部输入时钟频率。

实际上,当定时器T1做波特率发生器使用时,通常工作在模式2,即自动重装载的8位定时器,此时TL1作计数用,自动重装载的值在TH1内。设计数的预置值(初始值)为X,那么每过256-X个机器周期,定时器溢出一次。为了避免溢出而产生不必要的中断,此时应禁止T1中断。溢出率为溢出周期的倒数,所以

而T1的定时时间t就是T1溢出一次所用的时间。在此情况下,一般设T1工作在模式2(8位自动重装载初值)。

(www.xing528.com)

其中,t为定时时间,T为机器周期,N为初值(TH1)。

例8-1 若已知波特率为4800,则可求出T1的计数初值:

表8-3列出了各种常用的波特率及获得办法。

表8-3 定时器T1产生的常用波特率

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈