第8章串行口的工作原理及应用1AT89S51集成一个全双工通用异步收发(UART)串行口
全双工:两个单片机之间串行数据可同时双向传输
异步通信:收、发双方使用各自时钟控制发送和接收,省去收、发双方的1条同步时钟信号线,使异步串行通信连接更简单且易实现
1串行口结构AT89S51串行口内部结构见图8-1
有两个物理上独立的接收、发送缓冲器SBUF(特殊功能寄存器),可同时收发数据
发送缓冲器只写不读,接收缓冲器只读不写,两个缓冲器共用一个特殊功能寄存器字节地址(99H)
控制寄存器共有2个:特殊功能寄存器SCON和PCON
下面详细介绍各位功能
3图8-1串行口的内部结构8
1串行口控制寄存器SCON串行口控制寄存器SCON,字节地址98H,可位寻址,位地址为98H~9FH,即SCON的所有位都可用软件来进行位操作清“0”或置“1”
SCON格式见图8-2
4图8-2串口控制寄存器SCON格式寄存器SCON各位功能:(1)SM0、SM1—串口4种工作方式选择SM0、SM12位编码对应4种工作方式见表8-1
5表8-1串口4种工作方式表8-1(2)SM2—多机通信控制位多机通信是在方式2和方式3下进行,因此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
6(3)REN—允许串行接收位,由软件置“1”或清“0”
REN=1,允许串行口接收数据
REN=0,禁止