首页 理论教育 C51单片机波特率设置攻略

C51单片机波特率设置攻略

时间:2023-11-17 理论教育 版权反馈
【摘要】:在8051串行口的4种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。当工作于定时器状态时,T1计数率为fosc/12;当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于fosc/24。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。当时钟频率选用11.0592MHz时,极易获得标准的波特率,所以很多单片机系统选用这个看起来“怪”的晶振就是这个道理。

C51单片机波特率设置攻略

如前所述,在串行通信中,收发双方的数据传送率(波特率)要有一定的约定。在8051串行口的4种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。各种方式的波特率如下:

方式0:波特率=fosc/12

方式2:波特率=2SMODfosc/64

方式1和方式3(定时器T1作为波特率发生器):波特率=2SMOD(定时器1溢出率)/32

T1溢出率=T1计数率/产生溢出所需的周期数

式中,T1计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1计数率为fosc/12;当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于fosc/24。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。

定时器T1工作于方式0:溢出所需周期数=8192-XX为初值。

定时器T1工作于方式1:溢出所需周期数=65536-XX为初值。

定时器T1工作于方式2:溢出所需周期数=256-XX为初值。(www.xing528.com)

因为方式2为自动重装入初值的8位定时/计数器模式,所以用它来做波特率发生器最恰当。

当时钟频率选用11.0592MHz时,极易获得标准的波特率,所以很多单片机系统选用这个看起来“怪”的晶振就是这个道理。方式1和方式3的常用波特率的设置见表2-13。

有了上述表格,在C语言中可以很方便地对串口进行初始化。如在11.0592MHz晶振下,设置串行口用9.6K的传输率进行传输,工作于工作方式3,用C语言可进行如下设定:

978-7-111-30335-0-Chapter02-42.jpg

978-7-111-30335-0-Chapter02-43.jpg

表2-13 数据传输率与晶振频率的关系

978-7-111-30335-0-Chapter02-44.jpg

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

我要反馈