关于串口工作方式

发布时间: 2024-07-31
来源: 电子工程世界

单片机89C51的串行端口有4种工作方式,通过编程设计,可以使其工作在任一方式,以满足不同场合的需要。其中,

方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;

方式1主要用于双机之间或外设电路的通信;

方式2、3除有方式1的功能外,还可用作多机通信,以构成多微机系统,方式2、3的区别在于波特率的不同。

 

单片机的串行通信的波特率可以程控设定,在不同的工作方式下,由时钟振荡频率的分频值或由定时器T1的定时溢出时间确定。


单片机的串行端口有2个控制寄存器,用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率以及中断标志TI和RI。单片机的串行端口有1个数据寄存器SBUF,该寄存器为发送和接收所共有,在一定条件下,向SBUF写入数据就启动了发送过程,读SBUF就启动了接收过程。 


波特率如标准9600 不是每秒种可以传送9600个字节,而是指每秒可以传送9600 个二进位,而一个字节8 个二进位,如用串口模式1 来传输那么加上起始位和停止位,每个数据字节就要占用10 个二进位,9600 波特率用模式1 传输时,每秒传输的字节数是9600÷10=960 字节。


如我们要得到9600 的波特率,晶振为11.0592M ,定时器1 为模式2,SMOD 设为1,看看那所要求的TH1 为何值。代入公式:

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

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


文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。