AT89S51单片机串行口工作方式与接收原理

需积分: 0 6 下载量 201 浏览量 更新于2024-08-19 收藏 1.25MB PPT 举报
"这篇资料主要介绍了AT89S51单片机的串行口,包括其工作原理、4种工作方式以及串行口多机通信。内容涵盖串行通信的接口标准和C51编程。" 在AT89S51单片机中,串行口是一个全双工通用异步收发(UART)接口,支持数据的双向同时传输,简化了通信过程。串行口由两个独立的接收和发送缓冲器SBUF组成,它们共享同一个特殊功能寄存器地址(99H)。发送缓冲器只能写入数据,而接收缓冲器只能读取数据。控制串行口操作的寄存器有SCON和PCON。 串行口控制寄存器SCON位于字节地址98H,可以通过位寻址访问其各个位(98H~9FH)。SCON寄存器的关键位包括: 1. SM0和SM1:这两个位用于选择串行口的4种工作方式。通过它们的二进制组合可以设置为方式0、1、2或3。方式0通常用于简单的波特率固定的通信,而方式2和3则支持多机通信。 2. SM2:此位用于多机通信控制。在方式2和3下,如果SM2置“1”,只有当接收到的第9位(RB8)为“1”时,才会产生中断请求并将前8位数据送入SBUF。若SM2为“0”,则不论第9位如何,都会接收并处理数据。 3. REN:允许串行接收位。设置REN为“1”启用接收,设置为“0”则禁用接收。在方式0中,REN必须保持为“0”。 4. TB8:在方式2和3中,TB8用于发送第9位数据,通常作为奇偶校验位或在多机通信中表示数据帧或地址帧。 5. RB8:接收的第9位数据,在多机通信中,根据其值判断接收的数据是地址帧还是数据帧。 此外,串行口的波特率在方式0下是固定的,为fosc/12,其他方式可以通过设置波特率发生器实现不同速率的通信。多机通信时,串行口可以实现多个设备之间的信息交换,而无需额外的同步时钟线,大大简化了硬件连接。 了解这些知识点后,开发者可以根据具体需求选择合适的工作方式,并通过C51编程语言进行串行通信的编程实现,以实现单片机之间的数据交换和通信协议。