首页 理论教育 STC15W4K32S4系列8051单片机串口控制寄存器

STC15W4K32S4系列8051单片机串口控制寄存器

时间:2023-11-02 理论教育 版权反馈
【摘要】:同样的,单片机的串口也要通过特殊功能寄存器的控制才能正常工作。当S3REN=0时,禁止串口3接收。响应中断后,S3RI必须由软件清0。S4CON寄存器的其他各位功能与S3CON或S2CON寄存器的相同,在此不再赘述。

STC15W4K32S4系列8051单片机串口控制寄存器

同样的,单片机串口也要通过特殊功能寄存器的控制才能正常工作。与串口2、串口3和串口4有关的特殊功能寄存器如下:

978-7-111-51881-5-Chapter08-44.jpg

1.串口2控制寄存器S2CON

串口2控制寄存器S2CON的字节地址为9AH,不可位寻址,系统复位后初值为00,其格式及各位的功能如下:

978-7-111-51881-5-Chapter08-45.jpg

S2CON寄存器用于设置串口2的工作方式和某些控制功能,各位功能如下:

(1)S2SM0:串口2工作方式设置位串口2的两种工作方式的功能配置见表8-3。

表8-3 串口2的两种工作方式

978-7-111-51881-5-Chapter08-46.jpg

串口2的波特率只能选用定时器T2作波特率发生器,定时器T2工作在16位自动重装载模式,T2的溢出率与系统时钟频率和T2x12控制位有关,则

978-7-111-51881-5-Chapter08-47.jpg

(2)S2SM2:对串口2工作在方式1时的多机通信控制位

当S2SM2=1时,接收端只有接收到S2RB8=1,才会把数据送入缓冲器S2BUF,并且置S2RI=1;若此刻接收端接收到的S2RB8=0,则将接收数据丢弃,S2RI=0,即接收标志位继续保持0。

当S2SM2=0时,接收端无论接收到的S2RB8是0还是1,均会把数据送入缓冲器S2BUF,并且置S2RI=1,即接收标志位置1,触发中断申请。

因此,在点名轮询式多机通信系统中,可以利用S2SM2控制位来筛选区分地址帧或数据帧的接收与发送。如果S2SM2=1即表示要发送/接收地址帧,同时发送端发S2TB8=1,则接收端接收到与自己相同的地址码(即被点名),才能接收下面的数据。

(3)S2REN:是否允许接收控制位

当S2REN=1时,允许串口2处于接收状态。

当S2REN=0时,禁止串口2接收。

(4)S2TB8:发送的第9位数据

S2TB8是串口2要发送的第9位数据,其值由软件预先置1或清0。在双机通信时,S2TB8可作为校验位使用。在多机通信中用来表示主机发送的是地址帧还是数据帧,S2TB8=1为地址帧,S2TB8=0为数据帧。

(5)S2RB8:接收到的第9位数据

S2RB8存储接收到的第9位数据。可作为奇偶校验位,或者串口2在方式1的多机通信中作为地址帧/数据帧的标志位;在方式0中,该位不用。

(6)S2TI:发送中断请求标志位

串口2开始发送停止位时由硬件置S2TI=1触发中断请求。响应中断后,S2TI必须由软件清0。

(7)S2RI:接收中断请求标志位

串口2在接收到停止位时由硬件置S2RI=1触发中断请求。响应中断后,S2RI必须由软件清0。

2.串口3控制寄存器S3CON

串口3控制寄存器S3CON的字节地址为ACH,不可位寻址,系统复位后初值为00,其格式及各位的功能如下:

978-7-111-51881-5-Chapter08-48.jpg

S3CON寄存器用于设置串口3的工作方式和某些控制功能,各位功能如下:

(1)S3SM0:串口3工作方式设置位串口3的两种工作方式的功能配置见表8-4。

表8-4 串口3的两种工作方式

978-7-111-51881-5-Chapter08-49.jpg

串口3的波特率可以选用定时器T2或T3作波特率发生器,定时器T2和T3一样,都是工作在16位自动重装载模式,溢出率均与系统时钟频率和T2x12、T3x12、控制位有关,则

978-7-111-51881-5-Chapter08-50.jpg

T3与T2的溢出率计算公式相似。

(2)S3ST3:波特率发生器选择控制位

当S3ST3=1时,选择定时器T3作为串口3的波特率发生器。

当S3ST3=0时,选择定时器T2作为串口3的波特率发生器。

(3)S3SM2:对串口3工作在方式1时的多机通信控制位

当S3SM2=1时,接收端只有接收到S3RB8=1,才会把数据送入缓冲器S3BUF,并且置S3RI=1;若此刻接收端接收到的S3RB8=0,则将接收数据丢弃,S3RI=0,即接收标志位继续保持0。

当S3SM2=0时,接收端无论接收到的S3RB8是0还是1,均会把数据送入缓冲器S3BUF,并且置S3RI=1,即接收标志位置1,触发中断申请。

因此,在点名轮询式多机通信系统中,可以利用S3SM2控制位来筛选区分地址帧或数据帧的接收与发送。如果S3SM2=1即表示要发送/接收地址帧,同时发送端发S3TB8=1,则接收端接收到与自己相同的地址码(即被点名),才能接收下面的数据。

(4)S3REN:是否允许接收控制位

当S3REN=1时,允许串口3处于接收状态。(www.xing528.com)

当S3REN=0时,禁止串口3接收。

(5)S3TB8:发送的第9位数据

S3TB8是串口3要发送的第9位数据,其值由软件预先置1或清0。在双机通信时,S3TB8可作为校验位使用。在多机通信中用来表示主机发送的是地址帧还是数据帧,S3TB8=1为地址帧,S3TB8=0为数据帧。

(6)S3RB8:接收到的第9位数据

S3RB8存储接收到的第9位数据。可作为奇偶校验位,或者串口3在方式1的多机通信中作为地址帧/数据帧的标志位;在方式0中,该位不用。

(7)S3TI:发送中断请求标志位

串口3开始发送停止位时由硬件置S3TI=1触发中断请求。响应中断后,S3TI必须由软件清0。

(8)S3RI:接收中断请求标志位

串口3在接收到停止位时由硬件置S3RI=1触发中断请求。响应中断后,S3RI必须由软件清0。

3.串口4控制寄存器S4CON

串口4控制寄存器S4CON的字节地址为84H,不可位寻址,系统复位后初值为00,其格式及各位的功能如下:

978-7-111-51881-5-Chapter08-51.jpg

S4CON寄存器用于设置串口4的工作方式和某些控制功能,各位功能如下:

(1)S4SM0:串口4工作方式设置位串口4的两种工作方式的功能配置见表8-5。

表8-5 串口4的两种工作方式

978-7-111-51881-5-Chapter08-52.jpg

串口4的波特率可以选用定时器T2或T4作波特率发生器,定时器T2和T4一样,都是工作在16位自动重装载模式,溢出率均与系统时钟频率和T2x12、T4x12、控制位有关,则

978-7-111-51881-5-Chapter08-53.jpg

T4与T2的溢出率计算公式相似。

(2)S4ST4:波特率发生器选择控制位

当S4ST4=1时,选择定时器T4作为串口4的波特率发生器。

当S4ST4=0时,选择定时器T2作为串口4的波特率发生器。

S4CON寄存器的其他各位功能与S3CON或S2CON寄存器的相同,在此不再赘述。

4.串口外围引脚功能切换控制寄存器P_SW2

控制寄存器P_SW2的字节地址为BAH,不可位寻址,系统复位后各有效位初值为0,其格式及各位的功能如下:

978-7-111-51881-5-Chapter08-54.jpg

通过设置寄存器P_SW2中的低3位,可以将串口S2、S3和S4在两组引脚之间任意来回切换。各位功能如下:

(1)S2_S:串口2的接收、发送引脚切换选择位

当S2_S=0时,接收、发送引脚设置在P1.0/RXD2、P1.1/TXD2。系统复位默认接收、发送引脚。

当S2_S=1时,接收、发送引脚设置在P4.6/RXD2、P4.7/TXD2。

(2)S3_S:串口3的接收、发送引脚切换选择位

当S3_S=0时,接收、发送引脚设置在P0.0/RXD3、P0.1/TXD3。系统复位默认接收、发送引脚。

当S3_S=1时,接收、发送引脚设置在P5.0/RXD3、P5.1/TXD3。

(3)S4_S:串口4的接收、发送引脚切换选择位

当S4_S=0时,接收、发送引脚设置在P0.2/RXD4、P0.3/TXD4。系统复位默认接收、发送引脚。

当S4_S=1时,接收、发送引脚设置在P5.2/RXD4、P5.3/TXD4。

5.串口的接收/发送缓冲器

串口2的数据缓冲器名称为S2BUF,地址是9BH,接收与发送共用。使用MOV指令对S2BUF写操作,可完成待发送数据的加载;使用MOV指令对S2BUF读操作,可获得接收到的数据。

串口3的数据缓冲器名称为S3BUF,地址是ADH,接收、发送共用。使用MOV指令对S3BUF写操作,可完成待发送数据的加载;使用MOV指令对S3BUF读操作,可获得接收到的数据。

串口4的数据缓冲器名称为S4BUF,地址是85H,接收、发送共用。使用MOV指令对S4BUF写操作,可完成待发送数据的加载;使用MOV指令对S4BUF读操作,可获得接收到的数据。

6.串口的中断允许控制和优先级控制寄存器

STC15W4K32S4单片机的串口2、串口3和串口4的中断响应,由寄存器IE2控制这3个串口是否允许中断,它们的优先级设置由IP2寄存器控制。IE2和IP2在前面已经介绍。

需要注意的是,串口2有高级和低级2个优先级,由IP2寄存器的PS2位控制;但串口3和串口4默认只有低优先级,因此不需要设置。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈