你好!欢迎来到深圳市颖特新科技有限公司!
语言
当前位置:首页 >> 技术中心 >> 单片机入门 >> AT89S52单片机的串行接口

AT89S52单片机的串行接口

作者:admin 来源:不详 发布时间:2018-05-08  浏览:9

本文主要学习AT89S52单片机的串行接口结构以及相关的寄存器。要求在掌握串行口结构的基础上,学会合理的设置控制寄存器来控制串行口的工作。AT89S52单片机内部的串行接口能同时发送和接收数据。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入。串行口还有接收缓冲作用,即从接收寄存器中读出前一个已收到的字节之前就能开始接收第二字节。 

一、AT89S52单片机串行口的结构

AT89S52单片机的串行接口主要由两个物理上独立的串行数据缓冲器SBUF、发送控制器、接收控制器、输入移位寄存器和输出控制门组成。

对外表现为两个引脚:RXD(P3.0)串行输入线和TXD(P3.1)串行输出线,串行口的结构如图1所示。



图1 串行口的结构

1.波特率发生器

主要由T1、T2及内部的一些控制开关和分频器所组成。它提供串行口的时钟信号TXCLOCK(发送时钟)和 RXCLOCK(接收时钟)。相应的控制波特率发生器的特殊功能寄存器有TMOD、TCON、T2CON、PCON、TL1、TH1、TL2、TH2等。

2.串行数据缓冲寄存器SBUF

串行口数据缓冲器(实际上是两个寄存器)通过特殊功能寄存器SBUF来访问。两个缓冲器在物理上是隔离的,共用一个地址99H(特殊功能寄存器SBUF的地址)。

写入SBUF的数据储存在发送缓冲器,用于串行发送;从SBUF读出的数据来自接收缓冲器。串行发送时,从片内总线向发送缓冲器SBUF写入数据;串行接收时,从接收缓冲器SBUF中读出数据。因此可通过两条指令来表示:

MOV   SBUF, A   ; 启动一次数据发送,可向SBUF再发送下一个数据

MOV   A, SBUF    ; 完成一次数据接收,SBUF可再接收下一个数据

3.串行数据输入/输出引脚

接收方式:串行数据从RXD(P3.0)引脚输入

发送方式下:串行数据通过TXD(P3.1)引脚输出。

4.串行口控制逻辑

发送控制器在波特率作用下,将发送SBUF中的数据由并行转换成串行,逐位地传输到发送端口;同理接收控制器将接收端口的数据由串行转换成并行,存入接收SBUF。如图2。



图2 串行口的控制逻辑

二、串行口控制寄存器SCON

特殊功能寄存器SCON可以位寻址,用于定义串行口的操作方式和控制它的某些功能,字节地址为98H。其各位的定义如图3所示。


图3 SCON

SM0,SM1(D7,D6):串行口操作方式选择位

SM2(D5):串行口多机通信控制位。

SM2=1:如果接收的一帧数据的第九位为1,且原RI=0,则硬件置RI=1,接收数据有效;如果第九位为0,则RI不置1,接收数据无效。

SM2=0:只要接收完一帧数据,不管第九位为1还是0,硬件都置RI=1,接收数据有效。多机通信时,SM2必须置1;双机通信,SM2通常置0。

REN(D4):串行口接收允许控制位。REN = 1 表示允许接收;REN = 0 禁止接收。

TB8(D3):方式2和方式3中要发送的第9位数据。

RB8(D2):是方式2和3中已接收到的第9位数据。

TI(D1):发送中断标志。由软件清0。

RI(D0):接收中断标志。由软件清0。
三、电源控制寄存器PCON 

电源控制寄存器PCON中,仅有最高位SMOD与串行口控制有关,PCON的地址为87H,只能字节寻址。

SMOD(D7):波特率加倍控制位。

SMOD=1,波特率加倍;

SMOD=0,则不加倍。

编辑:admin  最后修改时间:2018-05-08

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright © 2014-2023 颖特新科技有限公司 All Rights Reserved.  粤ICP备14043402号-4