版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28877125/article/details/84793236
寄存器 | bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
---|---|---|---|---|---|---|---|---|
S0CON | SM0 | SM1 | SM20 | REN0 | TB80 | RB80 | TI0 | RI0 |
S0CON2 | BD | - | - | - | - | - | - | - |
S0BUF | S0BUF7 | S0BUF6 | S0BUF5 | S0BUF4 | S0BUF3 | S0BUF2 | S0BUF1 | S0BUF0 |
PCON | SMOD | - | - | - | P2SEL | GF0 | STOP | IDLE |
S0RELH | - | - | - | - | - | - | S0REL9 | S0REL8 |
S0RELL | S0REL7 | S0REL6 | S0REL5 | S0REL4 | S0REL3 | S0REL2 | S0REL1 | R0REL0 |
IEN0 | EAL | - | ET2v | ES0 | ET1 | EX1 | ET0 | EX0 |
P0OC | - | - | - | P15OC | P14OC | P13OC | P06OC | P05OC |
P0M | P07M | P06M | P05M | P04M | P03M | P02M | P01M | P00M |
P0 | P07 | P06 | P05 | P04 | P03 | P02 | P01 | P00 |
S0CON 寄存器(0x98)
Bit | Field | Type | Initial | Description |
---|---|---|---|---|
7…6 | SM[0:1] | R/W | 00 | 串口模式选择 00: 模式0; 01: 模式1; 10: 模式2; 11: 模式3 |
5 | SM20 | R/W | 0 | 多处理器通信(模式2, 3)0:禁用1:启用 |
4 | REN0 | R/W | 0 | UART模块(和接收功能)0:禁用省电; 1:启用UART操作 |
3 | TB0 | R/W | 0 | 传输的第九位数据 (模式2和模式3会用到) |
2 | RB0 | R/W | 0 | 接收的第九位数据 (模式2和模式3会用到) |
1 | TI0 | R/W | 0 | 串口传输中断标志 |
0 | RI0 | R/W | 0 | 串口接收中断标志 |
- 当 REN0 位是0,串口相关寄存器将无法访问, 模块内部时钟停止使用。
S0CON2 Register (0xD8)
Bit | Field | Type | Initial | Description |
---|---|---|---|---|
7 | BD | R/W | 0 | 波特率发生器选择 (模式 1, 3) ; 0: 定时器1溢出周期; 1: 通过 S0RELH, S0RELL寄存器控制 |
6…0 | Reserved | R | 0x00 |
S0BUF Register (0x99)
Bit | Field | Type | Initial | Description |
---|---|---|---|---|
7…0 | S0BUF | R/W | 0x00 | 写入数据的操作将触发串口通信(LSB在先,小端?)。接收到了数据包的结束符就可以读数据。 |
PCON Register (0x87)
Bit | Field | Type | Initial | Description |
---|---|---|---|---|
7 | SMOD | R/W | 0 | 串口波特率控制 (串口模式 0, 2) 0: fcpu/64 1: fcpu/32 |
6…0 | 参考其他章节 |
IEN0 Register (0xA8)
Bit | Field | Type | Initial | Description |
---|---|---|---|---|
7 | EAL | R/W | 0 | 中断使能,具体参考中断章节 |
4 | ES0 | R/W | 0 | 使能串口中断 |
Else | 参考其他章节 |
P0OC Register (0xE4)
Bit | Field | Type | Initial | Description |
---|---|---|---|---|
1 | P06OC | R/W | 0 | 0: 切换 P0.6 (URX) 到输入模式 (required) |
0 | P05OC | R/W | 0 | 0: 切换 P0.5 (UTX) 到推挽模式; 1: 切换 P0.5 (UTX) 到开漏模式 |
Else | 参考其他章节 |
- 设置 P06OC 为高电平将会导致URX不能接收数据.
P0M Register (0xF9)
Bit | Field | Type | Initial | Description |
---|---|---|---|---|
6 | P06M | R/W | 0 | 0: 设置P0.6 (URX) 作为输入模式 (要求) |
5 | P05M | R/W | 0 | 1: 设置 P0.5(UTX) 作为输出模式 (要求) |
Else | 参考其他章节 |
- URX和UTX分别需要输入和输出模式选择来适当地接收/发送数据。(The URX and UTX respectively require input and output mode selection to receive/transmit data appropriately. )
P0 Register (0x80)
Bit | Field | Type | Initial | Description |
---|---|---|---|---|
6 | P06 | R/W | 0 | This bit is available to read at any time for monitoring the bus statue. |
5 | P05 | R/W | 0 | 1: 使 P0.5 (UTX) 可以输出串口数据 (要求) |
Else | 参考其他章节 |
- 设置P05 最初的电平状态为高,因为UART块只驱动共享引脚低信号(Setting P05 initially high because UART block drive the shared pin low signal only.)。