STC90C51RC/RD+串行口工作模式解析

需积分: 50 45 下载量 96 浏览量 更新于2024-08-10 收藏 4.63MB PDF 举报
"串行口工作模式-beginning python(中文)" 本文主要介绍了STC90C51RC/RD+系列单片机的串行口工作模式,该系列单片机支持四种不同的工作模式,这些模式可以通过设置SCON寄存器中的SM0和SM1来选择。在这些模式中,模式1、模式2和模式3用于异步通信,每个发送和接收的字符都包含起始位和停止位,而模式0则作为简单的移位寄存器使用。 在模式0下,串行口工作在同步移位寄存器模式。当单片机工作在6T模式时,波特率固定为SYSclk/6;而在12T模式下,波特率则是SYSclk/12。数据通过RxD(P3.0)输入,同步移位脉冲SHIFTCLOCK由TxD(P3.1)输出,数据传输是从低位到高位进行的。 发送过程如下:当执行写数据到发送缓冲器SBUF的指令时启动发送,串行口会以SYSclk/12或SYSclk/6的波特率从RxD引脚输出数据(低电平到高电平)。发送完成后,中断标志T1被置为"1",TxD输出同步移位脉冲SHIFTCLOCK。当写信号有效后,一个时钟周期后,SEND控制端变为高电平,允许RxD发送数据,并且TxD输出同步移位脉冲。一帧数据发送完毕后,所有控制端恢复原始状态,只有T1保持高电平,表示中断请求。再次发送数据前,必须通过软件将T1清零。 接收过程如下:在模式0接收时,需先清除接收中断请求标志RI(即RI=0),并设置接收允许控制位REN=1,此时启动串行口模式0的接收。RxD作为串行输入,TxD输出同步脉冲,波特率为SYSclk/12或SYSclk/6。接收一帧数据后,控制信号恢复,RI被置"1",进入中断请求状态。再次接收时,需要通过软件将RI清零。 在模式0中,多机通信控制位SM2必须清零,以免影响TB8和RB8。因为波特率固定,不需要定时器提供,而是由单片机的时钟作为同步移位脉冲。图中展示了模式0的工作流程,TI和RI中断请求标志由TX和RX控制单元产生,并通过与非门送到主控器请求中断。因此,主控器响应中断后,必须通过软件判断是TI还是RI中断请求,并相应地清零这两个标志。 STC90C51RC/RD+系列单片机因其低功耗、高速度、高可靠性以及强大的抗干扰能力,被广泛应用于各种嵌入式系统中。它们是STC89系列的升级版本,可以直接替换89系列,软硬件无需修改。此外,STC90C51RC/RD+系列还支持在线升级软件STC-ISP,为开发和调试提供了便利。