波特率调整控制寄存器 波特率控制寄存器 0 波特率控制寄存器 1 接收缓冲器 发送缓冲器 SFR 模块使能寄存器 1 FR 模块使能寄存器 1 FR 模块使能寄存器 1 U0MCTL U0BR0 U0BR1 U0RXBUF U0TXBUF ME1 IE1 IFG1 读/写 读/写 读/写 读 读/写 读/写 读/写 读/写 73H 74H 75H 76H 77H 004H 000H 002H 不变 不变 不变 不变 不变 PUC 后 000H PUC 后 000H PUC 后 082H USART1 的寄存器 寄存器 控制寄存器 发送控制寄存器 接收控制寄存器 波特率调整控制寄存器 波特率控制寄存器 0 波特率控制寄存器 1 接收缓冲器 发送缓冲器 SFR 模块使能寄存器 1 FR 模块使能寄存器 1 FR 模块使能寄存器 1 UxCTL 控制寄存器 7 6 PENA PEV PENA 校验允许位
0 校验禁止
缩写 读写类型 地址 U1CTL 078H 读/写 U1TCTL 79H 读/写 U1RCTL 7AH 读/写 U1MCTL 7BH 读/写 U1BR0 7CH 读/写 U1BR1 7DH 读/写 U1RXBUF 7EH 读 U1TXBUF 7FH 读/写 ME2 005H 读/写 IE2 001H 读/写 IFG2 003H 读/写 初始状态 PUC 后 001H PUC 后 001H PUC 后 000H 不变 不变 不变 不变 不变 PUC 后 000H PUC 后 000H PUC 后 020H 5 SPB 4 CHAR 3 2 LISTEN SYNC 1 MM 0 SWRST
1 校验允许
校验允许时,发送端发送校验,接收端接收该校验,地址位多机模式中,地址
位包含校验操作.
PEV 奇偶校验位,该位在校验允许时有效
0 奇校验 1 偶校验
SPB 停止位选择.决定发送的停止位数,但接收时接收器只检测 1 位停止位.
0 1 位停止位 1 2 位停止位
CHAR 字符长度
0 7 位
16
1 8 位
LISTEN 反馈选择.选择是否发送数据由内部反馈给接收器
0 无反馈
1 有反馈,发送信号由内部反馈给接收器
SYNC USART 模块的模式选择
0 UART 模式[异步] 1 SPI 模式[同步]
MM 多机模式选择位
0 线路空闲多机协议 1 地址位多机协议
SWRST 控制位
上电时该位置位,此时 USART 状态机和运行标志初始化成复状态
(URXIFG=0,URXIE=0,UTXIE=0,UTXIFG=1)。所有受影响的逻辑保持在复位状态,直至SWRST 复位。也就是说一次系统复位后,只有对 SWRST 复位,USART 才能重新被允许。而接收和发送允许标志 URXE 和 UTXE 不会因 SWRST 而更改。
SWRST 位会使 URXIE、UTXIE、URXIFG、RXWAKE、TXWAKE、RXERR、BRK、PE、OE及 FE 等复位。
在串行口使用设置时,这一位起重要的作用。一次正确的 USART 模块初始化应该是这样设置过程的:先在 SWRST=1 时设置,设置完串口后再设置 SWRST=0;最后如需要中断,则设置相应的中断使能。
UxTCTL 发送控制寄存器 7 6 5 4 3 2 TXWAKE 1 未用
0 TXEPT
未用 CKPL SSEL1 SSEL0 URXSE CKPL 时钟极性控制位
0 UCLKI 信号与 UCLK 信号极性相同 1 UCLKI 信号与 UCLK 信号极性相反
SSEL1、SSEL0 时钟源选择,此两位确定波特率发生器的时钟源
0 外部时钟 UCLKI; 1 辅助时钟 ACLK 2 子系统时钟 SMCLK 3 子系统时钟 SMCLK
URXSE 接收触发沿控制位
0 没有接收触发沿检测 1 有接收触发沿检测
TXWAKE 传输唤醒控制
0 下一个要传输的字符为数据 1 下一个要传输的字符是地址
17
TXEPT 发送器空标志,在异步模式与同步模式时是不一样的。
0 正在传输数据或者发送缓冲器(UTXBUF)有数据 1 表示发送移位寄存器和 UTXBUF 空或者 SWRST=1
URCTL 接收控制寄存器 7 6 5 FE PE OE FE 帧错误标志
位
0 没有帧错误 1 帧错误
4 BRK 3 2 1 URXEIE URXWIE RXWAKE 0 RXERR
PE 校验错误标志位
0 校验正确 1 校验错误
OE 溢出标志位
0 无溢出 1 有溢出 BRK 打断检测位
0 没有被打断 1 被打断
URXEIE 接收出错中断允许位
0 不允许中断,不接收出错字符并且不改变 URXIFG 标志 1 允许中断,出错字符接收并且能够置位 URXIFG
URXWIE 接收唤醒中断允许位,当接收到地址字符时,该位能够置位 URXIFG,当 URXEIE=0,如果接收内容有错误,该位不能置位 URXIFG。
0 所有接收的字符都能够置位 URXIFG 1 只能接收到地址字符才能置位 URXIFG
在各种条件下 URXEIE 和 URXWIE 对 URXIFG 的影响
接收字符后的标志位 地址字符 URXEIE URXWIE 字符出错 URXIFG 0 X 1 X 不变 0 0 0 X 置位 0 1 0 0 不变 0 1 0 1 置位 1 0 X X 置位(接收所有字符) 1 1 X 0 不变 1 1 X 1 置位
RXWAKE 接收唤醒检测位。在地址位多机模式,接收字符地址位置位时,该机被 唤醒,在线路空闲多机模式,在接收到字符前检测到 URXD 线路空闲时,该机被唤起,
18
RXWAKE 置位。
0 没有被唤醒,接收到的字符是数据 1 唤醒,接收的字符是地址
RXERR 接收错误标志
位
0 没有接收错误 1 有接收到错误
UxBR0、UxBR1 波特率选择寄存器 这两个寄存器是用于存放波特率分频因子的整数部分。 UxBR0 波特率选择寄存器 0 7 6 5 4 3 2 27 26 25 24 23 22 UxBR1 波特率选择寄存器 1 7 6 5 215
214
213
1 21 0 20 4 212
3 211
2 210
1 29
0 28
UxMCTL 波特率调整控制寄存器 7 6 5 4 3 2 1 0 M7 M6 M5 M4 M3 M2 M1 M0 若波特率发生器的输入频率 BRCLK 不是所需波特率的整数倍,带有一小数,则 整数部分写 UBR 寄存器,小数部分由调整寄存器 UxMCTL 的内容反映。波特率由以下 公式计算:
波特率=BRCLK/(UBR+(M7+M6+…M0)/8) URXBUF 接收数据缓存 7 6 5 接收缓存存放移位寄存器最后接收的字符,可由用户访问。读接收缓存可以复 位接收时产生的各种错误标志、RXWAKE 位和 URXIFGx 位。如果传输 7 位数据,接收
缓存内容右对齐,最高位为 0。
4 3 2 1 0
当收接和控制条件为真时,接收缓存装入当前接收到的字符。 当接收和控制条件为真时接收数据缓存结果
条件 结果 URXEIE URXWIE PE FE BRK 装入 URXBUF 0 1 0 0 0 无差错地址字符 1 1 X X X 所有地址字符 0 0 0 0 0 无差错字符 1 0 X X X 所有字符 19
UTXBUF 发送数据缓存 7 6 5 4 3 2 1 0 发送缓存内容可以传至发送移位寄存器,然后由 UTXDx 传输。对发送缓存进行 写操作可以复位 UTXIFGx。如果传输出 7 位数据,发送缓存内容最高为 0。
常用波特率及其对应设置参数与对应误差表 Divide by ACLK[32768HZ 低频振荡器] baud rate ACLK MCLK 436. 91 1398 1 MCLK[1048576HZ 高频振荡器] Sync hr UxBR1 TX Erro Ux BR 1 UxB R0 UxM CTL Max.TX Error/% 75
1 B4 FF -0.3/0.3 Max.R X Error /% -0.3/ 0.3 Ux BR 0 UxM CTL Max. TX Error /% Max. RX Erro r/% ±2 ±2 36 9D FF 0/0.1 CPU 的状态寄存器 SR 15-9 保留 8 V 7 SCG1 6 SCG0 5 4 OscOff CPUoff 3 GIE 2 N 1 Z 0 C V 溢出标志
SCG1 SCG0 时钟控制位
SCG1 置位关闭 SMCLK
SCG0 置位关闭 DCO 发生器
OscOff 晶体振荡控制位
置位 OscOff 使晶体振荡器处于停止状态,置位 OscOff 同时 CPUoff 位也置
位。可用 NMI 或外部中断(系统当前中断允许)将 CPU 唤醒。
CPUoff CPU 控制位
置位 CPUoff 可使 CPU 进入关闭模式,可以用所中断允许将 CPU 唤醒。
GIE 全局中断标志位
控制可屏蔽中断
GIE 置位 CPU 可响应可屏蔽中断 GIE 置位 CPU 不响应可屏蔽中断
N 负标志
Z 零标志
C 进位标志
特殊功能寄存器
系统中断处理
20