51 单片机的简介——串行口、SCON
51 单片机有一个全双工串行通讯口,它即可作为 UART(Universal Asynchronous
Receiver/Transmitter),也可作为一个同步移位寄存器。而且作为 UART 时,其具有多机通讯
能力。
51 单片机的串行口由发送控制、接收控制、波特率输入管理和发送/接收缓冲区 SBUF(地
址为 99H)组成。SBUF 作为发送和接收缓冲区其实际是分开的两个器件,数据不会相互覆
盖,但在对其寻址时都是 99H,51 单片机会根据读或者写指令操作相应的器件。
站在汇编角度来看,51 单片机的串行口通讯操作体现为累加器 Acc(地址 E0H)和发送/接
收缓冲区 SBUF 之间的数据传递。当我们要发送数据时,对串行口完成初始化设置后,数据
由累加器 A 传入 SBUF,然后在发送控制器的控制下组成帧结构,并自动从 TXD 端口发出,
发送结束后置位 TI(TI 是特殊功能寄存器 SCON 的可独立寻址位,参见 SCON 介绍),如
果要继续发送就在指令中将 TI 清 0。接收数据时,相当于对串口完成初始化设置后,数据
由 SBUF 传入累加器 Acc,在置位允许位(即设置 SCON 的独立寻址位 REN 为 1)后才开
始进行串行接收操作,在接收控制器控制下,通过移位寄存器将串行数据输入SBUF,接收
结束后将 RI(SCON 中可独立寻址位)置位,最后将数据送累加器 Acc。
特殊功能寄存器 SCON 是串行口控制寄存器,用于存放串行口的控制和状态信息,其地址
为 98H,具有位寻址功能,其各位的结构如下图所示:
其中各个位的功能及含义如下:
SM0、SM1:串行口工作方式选择位,其组合含义如下图所示:
SM2:多机通讯控制位。在方式2 和方式 3 中用于多机通讯控制,在方式 2、方式 3 的接收