龙源期刊网 http://www.qikan.com.cn
MCS—51系列单片机串行通信波特率的研究
作者:李鹏
来源:《电脑知识与技术》2013年第28期
摘要:阐述了89C51单片机串行通信口的结构及波特率的计算方法,通过对89C52串行通信口波特率发生器结构的分析,指出了89C52产生波特率的两种方式。计算出了89C51和89C52产生波特率与初值的对应关系,找出了波特率的最大值,给出了初始化编程的实例。 关键词:波特率;串行通信口;单片机;89C52
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)28-6265-03
随着智能化控制仪表和网络设备的大力发展与使用,单片机的串行通信应用也无处不在,单片机作为前台计算机与其他计算机的通信,比如和PC微机的通信十分广泛,设计通信系统的首要问题是单片机串行通信口的正确使用,主要是波特率的设定以及串口的初始化编程,在单片机课程的教学中,单片机串口的应用是一个最具综合性的应用,也是一个难点,为此,结合教学与多年科研应用,特对MCS-51单片机的子51和子52单片机的波特率分别进行了分析与研究。
1 89C51单片机波特率的确定 1.1 89C51串行通信口的结构
89C51内部有2个16位定时/计数器,分别称为T0和T1,每个计数器均有四种工作方式:方式0(13位计数),方式1(16位计数),方式2(自动重装的1个8位计数),方式3(2个独立8位计数)。从图1可以看出,内部结构确定仅使用T1定时器的溢出频率去产生串行通信口的波特率。由于收、发时钟应该是周期性信号,所以T1工作在方式2,初值被装入TH1,由TL1计数并产生周期性溢出频率信号,溢出率是否除以2,由PCON中SMOD位的值确定,只有当SMOD=0时,才被除以2,上下输出的脉冲信号均被除以16,然后作为收、发时钟脉冲信号。 1.2 波特率的计算
单片机串行通信口有4种工作方式:方式0,波特率固定为fosc/12, 方式2,波特率固定为(2SMOD/64)×fosc ,方式1和方式3的波特率可以调整,在单片机与PC微机的RS-232C串口通信时,必须调整单片机串口通信的波特率,以达到与PC微机串口通信波特率相同。 T1工作在方式2,8位自动重装方式,溢出率取决于TH1中的初值:

