MCS-51单片机串行异步通信详解

下载需积分: 16 | PPT格式 | 2.42MB | 更新于2024-08-22 | 15 浏览量 | 0 下载量 举报
收藏
“MCS-51单片机原理及应用教程,清华大学出版社,刘迎春主编,内容包括单片机基础知识、指令系统、程序设计、中断系统、定时/计数器、串行通信及接口、系统扩展、接口技术、串行总线扩展。” 串行异步通信是一种通信方式,主要用于单片机之间或单片机与其他设备之间的数据传输。这种方式中,数据以串行形式一位一位地传输,每帧数据前后都有特定的时钟同步信号,但数据的每一位并不严格与时钟同步,因此称为异步。其主要作用在于节省通信线路,降低硬件成本,尤其适用于长距离通信或低速率通信。 8051单片机的串行口由多个功能部件组成,包括移位寄存器、发送缓冲器(TXD)、接收缓冲器(RXD)、串行控制寄存器(SCON)等。移位寄存器用于数据的串行输入/输出,发送和接收缓冲器分别用于暂存待发送和接收到的数据,而SCON则用于设置串行口的工作模式和控制选项。 8051串行口有四种工作方式:方式0、方式1、方式2和方式3。方式0主要用于实现简单的波特率可变的串行通信;方式1是标准的8位UART(通用异步收发传输器)模式;方式2用于波特率固定的半双工通信;方式3则将串行口分为两个独立的4位UART。帧格式主要有5位、6位、7位和8位数据位,加上起始位、停止位,以及可选的奇偶校验位。 以10位帧格式为例,一个字符的传输开始于一个起始位(0),接着是8个数据位(对于ASCII码字符“T”,数据位为01010100),然后是1位奇偶校验位(如果选择奇校验,校验位使得数据位中1的个数为奇数),最后是1位停止位(1)。奇偶校验位的计算确保了数据传输的正确性。 SCON中的SM2位用于多机通信的地址接收控制,TB8和RB8则在方式2和方式3中作为第九位数据传输的标志位,分别用于发送和接收时的额外数据位。 PCON中的SMOD位是一个波特率倍增位,当该位被设置为1时,串行口的波特率会翻倍,这对于某些需要更高波特率但晶振频率较低的情况非常有用。 UART(通用异步收发传输器)是串行通信接口芯片,其主要功能是将并行数据转换为串行数据,反之亦然,同时处理起始位、数据位、校验位和停止位,提供串行通信所需的时序控制。 单片机多机通信的基本原理是通过设置特定的通信协议和地址识别机制,使得多台单片机能够在同一通信线上相互通信,而不会产生冲突。这通常涉及到地址帧的发送和接收,以及应答机制。 以下是一个基于8051单片机,工作于方式1,波特率为1200b/s的初始化程序示例(伪代码): ```c void init_serial_port() { SCON = 0x50; // 设置SM0=1, SM1=1, SM2=0, REN=1, TB8=0, RB8=0 TMOD = 0x20; // 设置T1为8位定时器模式 TH1 = (65536 - fosc / 16 / 1200) / 2 - 1; // 计算波特率发生器初值 TL1 = TH1; TR1 = 1; // 启动T1 ES = 1; // 开启串行中断 } ``` 这个程序初始化了串行口为方式1,并设置了适当的波特率。在读取接收缓冲器并回送到发送缓冲器时,通常需要循环等待RI标志位被置位,表示接收缓冲器中有新数据,然后读取数据并清除RI标志,再将数据写入发送缓冲器。 通过以上内容,我们可以理解串行异步通信在单片机应用中的重要性,以及8051单片机在实现串行通信时的具体配置和操作。这些知识对于进行单片机系统设计和开发是至关重要的。

相关推荐