STC15单片机拥有4个串口,分别为串口1、2、3、4。本文章将记录串口1所使用的寄存器,以及注意事项。
由于STC15单片机定时器的使用于传统51单片机类似,这里仅标出应用所需的寄存器,以及对陌生位的相关说明,其他不作过多赘述。
目录
UART1
相关寄存器
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 地址 |
SM0/FE | SM1 | SM2 | REN | TB8 | RB8 | TI | RI | 98H |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 地址 |
SMOD | SMOD0 | LVDF | P0F | GF1 | GF0 | PD | IDL | 87H |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 地址 |
T0x12 | T1x12 | UART_M0x6 | T2R | T2_C/T | T2x12 | EXTRAM | S1ST2 | 8eH |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 地址 |
S1_S1 | S1_S0 | CCP_S1 | CCP_S0 | SPI_S1 | SPI_S0 | 0 | DPS | a2H |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 地址 |
EA | ELVD | EADC | ES | ET1 | EX1 | ET0 | EX0 | a8H |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 地址 |
99H |
寄存器说明
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 地址 |
SM0/FE | SM1 | SM2 | REN | TB8 | RB8 | TI | RI | 98H |
SM0/FE:
当PCON中SMOD0位为1时,该位用于检测侦错误。检测到无效停止位时,通过UART接收器将该位置1,该位由软件清0;
当PCON中SMOD0位为0时,与SM1共同构成串口1的工作方式选择位:
SM0 | SM1 | 工作方式 | 功能 | 波特率 |
0 | 0 | 0 | 移位寄存器 | 当UART_M0x=0时,为 当UART_M0x=1时,为 |
0 | 1 | 1 | 8位UART 波特率可变 | 当用定时器1的工作模式0或者定时器2作为波特率发生器时, 为 溢出率/4 当用定时器1的工作模式2作为波特率发生器时, 为溢出率 |
1 | 0 | 2 | 9位UART | 为 |
1 | 1 | 3 | 9位UART 波特率可变 | 当用定时器1的工作模式0或者定时器2作为波特率发生器时, 为 溢出率/4 当用定时器1的工作模式2作为波特率发生器时, 为溢出率 |
REN:接收允许控制位
TI:发送中断标志位,需软件清零
RI:接收中断标志位,需软件清零
TB8:方式2和3中要发送的数据的第9位。
RB8:方式1中为接收到的停止位(SM2 = 0),方式2和方式3中为接收到数据的第9位
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 地址 |
SMOD | SMOD0 | LVDF | P0F | GF1 | GF0 | PD | IDL | 87H |
SMOD:与串口通信方式1、2、3波特率有关
0:波特率正常
1:波特率翻倍
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 地址 |
T0x12 | T1x12 | UART_M0x6 | T2R | T2_C/T | T2x12 | EXTRAM | S1ST2 | 8eH |
UART_M0x6:串口模式0通信速度控制位
0:12分频
1:2分频
S1ST2:串口1波特率发生器选择位
0:定时器1作为串口1波特率发生器
1:定时器2作为串口1波特率发生器
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 地址 |
S1_S1 | S1_S0 | CCP_S1 | CCP_S0 | SPI_S1 | SPI_S0 | 0 | DPS | a2H |
S1_S1和S1_S0决定UART1的端口选择:
S1_S1 | S1_S0 | 选择位 |
0 | 0 | RxD-P3.0 TxD-P3.1 |
0 | 1 | RxD-P3.6 TxD-P3.7 |
1 | 0 | RxD-P1.6 TxD-P1.7 |
1 | 1 | 无效 |
以上为个人学习笔记,由于本人才疏学浅,如有错误,欢迎指正,谢谢!