D1D2D4D5D7DOD3D6口口TALECLOCK串行移位时钟txHOXtoVXH数据输出2写发送缓冲寄存器SBUFoytxorET数据输出XXXXXXXXXXXXXXXALX清除接收中斯有效标志RISETRI图5-3-5串行口方式0操作时序1.方式0输出当CPU执行一条将数据写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口即把SBUF中的8位数据以fosc/12的固定波特率从RXD引脚串行输出,低位在先,TXD引脚输出同步移位脉冲,发送完8位数据置“1”中断标志位TI。时序如图5-3-6所示。S1~S6机器周期S1~S6写SBUF0RXD(数据)DOD1D2D3D4D5D6D7TXD(移位脉冲)TI图5-3-6方式0发送时序方式0应用:外接串入并出移位寄存器,如74LS164。CPU对发送数据缓冲器SBUF写入一个数据,就启动串行口从低位开始串行发送,经过8个机器周期,串行口输出数据缓冲器内容移入外部的移位寄存器74LS164,置位T1,串行口停止移位,完成一个字节输出。MD1RXD0+5VDz74LS16489C52TXDBLK34516110111213D72D
图 5-3-5 串行口方式 0 操作时序 1. 方式 0 输出 当 CPU 执行一条将数据写入发送缓冲器 SBUF 的指令时,产生一个正脉冲, 串行口即把 SBUF 中的 8 位数据以 fosc/12 的固定波特率从 RXD 引脚串行输出, 低位在先,TXD 引脚输出同步移位脉冲,发送完 8 位数据置“1”中断标志位 TI。 时序如图 5-3-6 所示。 图 5-3-6 方式 0 发送时序 方式 0 应用:外接串入并出移位寄存器,如 74LS164。 CPU 对发送数据缓冲器 SBUF 写入一个数据,就启动串行口从低位开始串 行发送,经过 8 个机器周期,串行口输出数据缓冲器内容移入外部的移位寄存器 74LS164,置位 T1,串行口停止移位,完成一个字节输出
图5-3-7方式0输出:连接移位寄存器2.方式0REN=1,接收数据,REN=0,禁止接收。REN=1,允许接收。向串口的SCON写入控制字(置为方式O,并置“1”REN位,同时RI=O)时,产生一个正脉冲,串行口即开始接收数据。RXD为数据输入端,TXD为移位脉冲信号输出端,接收器也以fosc/12的固定波特率采样RXD引脚的数据信息,当收到8位数据时置“1”RI。表示一顿数据接收完时序如下:S1~S6S1~S6机器周期11写SCON0RXD(数据)D2D3D4D5DOD1D6D7TXD(移位脉冲)RI图5-3-9方式0接收时序方式0下,SCON中的TB8、RB8位没有用到,发送或接收完8位数据由硬件置“1”TI或RI,CPU响应中断。TI或RI须由用户软件清“0”,可用如下指令:CLRTI;TI位清“0”CLRRI;RI位清“0”方式0时,SM2位必须为0。二、方式1SM0、SM1=01方式1一顿数据为10位,1个起始位(0),8个数据位,1个停止位(1),先发送或接收最低位。顿格式如下:方式1波特率=(2SMOD/32)X定时器T1的溢出率SMOD为PCON寄存器的最高位的值(O或1)。1.方式1发送
图 5-3-7 方式 0 输出:连接移位寄存器 2.方式 0 REN=1,接收数据,REN=0,禁止接收。 REN=1,允许接收。向串口的 SCON 写入控制字(置为方式 0,并置“1” REN 位,同时 RI=0)时,产生一个正脉冲,串行口即开始接收数据。RXD 为数 据输入端,TXD 为移位脉冲信号输出端,接收器也以 fosc/12 的固定波特率采样 RXD 引脚的数据信息,当收到 8 位数据时置“1” RI。表示一帧数据接收完, 时序如下: 图 5-3-9 方式 0 接收时序 方式 0 下,SCON 中的 TB8、RB8 位没有用到,发送或接收完 8 位数据由硬 件置“1”TI 或 RI,CPU 响应中断。TI 或 RI 须由用户软件清“0”,可用如下指 令: CLR TI ;TI 位清“0” CLR RI ;RI 位清“0” 方式 0 时,SM2 位必须为 0。 二、方式 1 SM0、SM1=01 方式 1 一帧数据为 10 位,1 个起始位(0),8 个数据位,1 个停止位(1), 先发送或接收最低位。帧格式如下: 方式 1 波特率=(2SMOD/32)×定时器 T1 的溢出率 SMOD 为 PCON 寄存器的最高位的值(0 或 1)。 1.方式 1 发送