低4位与外部中断有关,高4位功能如下:
TF1:T1计数溢出标志位。当T1计数溢出时,由硬件置1,申请中断。进入中断服务程序后被硬件自动清0
TR1:T1计数运行控制位。由软件置1或清0.当GATE位(TMOD第7位)=0,TR1=1时允许T1计数。当TR1=0时禁止计数
TF0:T0计数溢出标志位。当T0计数溢出时,由硬件置1,申请中断。进入中断服务程序后被硬件自动清0
TR0:T0计数运行控制位。由软件置1或清0.当GATE位(TMOD第3位)=0,TR0=1时允许T0计数。当TR1=0时禁止计数
二、串行口
串行口有4种工作方式。波特率可用软件设置,由片内的定时器/计数器产生。
MCS-51单片机内部的串行口有2个物理上独立的接收、发送缓冲器SBUF,可同时发送、接收数据。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器共用一个字节地址(99H)。
控制MCS-51单片机串行口的控制寄存器共有两个:特殊功能寄存器SCON和PCON
串行口控制寄存器SCON(地址98H)
D7 D6 D5 D4 D3 D2 D1D0
SM0SM1SM2RENTB8RB8TI RI
SM0、SM1:串行口4种工作方式的选择位
SM2:允许方式2和3的多机通讯控制位。 在方式2或3中,如果SM2置为1,则接收到的第9位数据(RB8)为0时不激活RI。在方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI。在方式0时SM2必须清0。
REN:允许串行接收位。由软件置1或清0.REN=1允许接收,REN=0则禁止接收。
TB8:是工作方式2和3时,要发送的第9位数据。需要时由软件置1或清0。在多机通讯中用来表示是地址帧还是数据帧。TB8=1为地址帧,TB8=0为数据帧
RB8:当工作在方式2和3时,为接收到的第9位数据。在多机通讯中为地址帧或数据帧的标识位。在方式1如果SM2=0,RB8是接收到的停止位。在方式0不使用RB8.
TI:发送中断标志位,在方式0串行发送第8位数据结束时由硬件置1,或在其它方式串行发送停止位的开始时置1.TI=1时申请中断,CPU响应中断后,发送下一帧数据。TI必须由软件清0.
RI:接收中断标志位。在方式0串行接收到第8位数据结束时,由硬件置1.在其它方式中,串行接收到停止位的中间点时置1.RI=1时申请中断,要求CPU取走数据。但在方式1中,SM2=1时,若未收到有效的停止位,不会对RI置1.RI必须由软件清0.
特殊功能寄存器PCON(地址87H)
D7 。..。..D0
SMOD 。..。..。.
SMOD波特率系数选择位。
串行口的工作方式
SM0 SM1 方式 功能说明
0 0 0 移位寄存器方式(用于扩展I/O口)
0 1 1 8位UART,波特率可变(T1溢出率/n)
1 0 2 9位UART,波特率为 Fosc/64 或Fosc/32
1 1 3 9位UART,波特率可变(T1溢出率/n)