预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共52页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第7章AT89S51单片机的串行口内容概要 介绍AT89S51串行口的基本工作原理、4种工作方式以及串行口多机通信的工作原理,还介绍各种常用的串行通信的接口标准,以及串行通信的C51编程。串行通信的一般概念并行通信与串行通信串行通信的两种基本方式在异步数据传送中,CPU与外设之间事先必须约好两项事宜: 第一、字符格式。双方要约好字符的编码形式、奇偶校验形式、以及起始位和停止位的规定。 第二、波特率(Baudrate)。波特率是衡量数据传送速率的指标,它要求发送站和接收站都要以相同的数据传送速率工作。 假设串行数据的速率是120字符/秒,而每一个字符假如为10位,则其传送的波特率为: 10位/字符×120字符/秒=1200位/秒(二进制) 简而言之,传送采用二进制电平时,“波特”就是每秒传送多少位。2.同步传送(了解) 所谓同步传送就是去掉异步传送时每个字符的起始位和停止位的成帧标志信号,仅在数据块开始处用同步字符来指示。 同步传送的有效数据位传送速率高于异步传送,可达50千波特。其缺点是硬件设备较为复杂,因为它要求要有时钟来实现发送端和接收端之间的严格同步,而且对时钟脉冲信号的相位一致性还要求非常严格,为此通常还要采用“锁相器”等措施来保证。 AT89S51的串行口为全双工的通用异步收发(UART)的串行口。 全双工就是两个单片机之间串行数据可同时双向传输。 异步通信是指收、发双方使用各自的时钟控制发送和接收过程,这样可省去收、发双方的一条同步时钟信号线,使得异步串行通信连接更加简单且容易实现。7.1串行口的结构7.1串行口的结构 两个物理上独立的接收、发送缓冲器SBUF(属于特殊功能寄存器),可同时发送、接收数据。 发送缓冲器只写不能读。 接收缓冲器只读不能写。 两个缓冲器共用一个特殊功能寄存器字节地址(99H)。 控制寄存器两个:特殊功能寄存器SCON和PCON。7.1.1串行口控制寄存器SCON 字节地址98H,可位寻址,位地址为98H~9FH。 SCON中各位功能。 (1)SM0、SM1—串行口4种工作方式选择位 SM0、SM1两位编码所对应的4种工作方式如表7-1。 (2)SM2—多机通信控制位 多机通信仅在方式2和方式3下进行。当串口以方式2或方式3接收时,如果SM2=1,则只有当接收到的第9位数据(RB8)为“1”时,才使RI置“1”,产生中断请求,并将接收到的前8位数据送入SBUF。 当接收到的第9位数据(RB8)为“0”时,则将接收到的前8位数据丢弃。 当SM2=0时,则不论第9位数据是“1”还是“0”,都将前8位数据送入SBUF中,并使RI置“1”,产生中断请求。 方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI。 方式0时,SM2必须为0。 (3)REN—允许串行接收位。 由软件置“1”或清“0”。 REN=1,允许串行口接收数据。 REN=0,禁止串行口接收数据。 (4)TB8—发送的第9位数据 方式2和方式3,TB8是要发送的第9位数据,由软件置“1”或清“0”。双机串行通信时,一般作为奇偶校验位;在多机通信中用来表示主机发送的是地址帧还是数据帧,TB8=1为地址帧,TB8=0为数据帧。 (5)RB8—接收的第9位数据 方式2和方式3,RB8存放接收到的第9位数据。在方式1,如SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。 (6)TI—发送中断标志位 方式0,串行发送的第8位数据结束时TI由硬件置“1”,在其他方式中,串行口发送停止位的开始时置TI为“1”。 TI=1,表示一帧数据发送结束。TI状态可供软件查询,也可申请中断。CPU响应中断后,在中断服务程序中向SBUF写入要发送的下一帧数据。TI必须由软件清“0”。 (7)RI—接收中断标志位 方式0时,接收完第8位数据时,RI由硬件置“1”。在其他工作方式中,串行接收到停止位时,该位置“1”。RI=1,表示一帧数据接收完毕,并申请中断,要求CPU从接收SBUF取走数据。该位的状态也可供软件查询。RI必须由软件清“0”。 SCON的所有位都可进行位操作清“0”或置“1”。 7.1.2特殊功能寄存器PCON 字节地址为87H,不能位寻址。格式图7-3。 7.2串行口的4种工作方式 4种工作方式由SCON中SM0、SM1位定义。 7.2.1方式0(了解) 同步移位寄存器输入/输出方式。该方式并不用于两个AT89S51单片机之间的异步串行通信,而是用于串行口外接移位寄存器,扩展并行I/O口。 8位数据为一帧,无起始位和停止位,先发送或接收最低位。波特率为fosc/12。帧格式如图。 1.方式0输出 (1)方式0输出的工作原理 当执行一条将数据写入发送缓冲器SBUF指令时,产生一个正脉冲