欢迎入群共同学习交流
时间记录:2024/11/12
一、知识点记录
1.波特率
波特率由定时器1进行控制,使用工作方式2,常数自动重装载的8位定时器/计数器
方式1、3波特率 = (2^SMOD/32)* (定时器1的溢出率)
定时器1的溢出率 = SYSclk/(12或6T模式)/(256-TH1)
例如:
单片机工作在12T模式,波特率为9600,进行倍频
定时器1的溢出率 = 9600/(2^0/32) = 307200
TH1 = 256-12000000/12/307200 ≈ 253 = 0xFD
时钟频率为12M时有误差,为11.0592M时比较准刚好为0xFD
2.寄存器介绍
1)SCON寄存器(串口控制寄存器)
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
字节地址:98H | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI |
SM0、SM1决定串口工作模式
SM2:允许方式2、3多机通信控制位,在方式2、3时,如SM2=1,REN=1,则从机处于只有接收到RB8=1时才激活中断请求标志位RI=1,并向主机请求中断处理,在方式1时,如果SM2=1,则只有接收到有效停止位后才置位中断请求标志位RI=1
REN:允许/禁止串口接收数据标志位,1允许接收数据
TB8:与SM2结合用于发送从机选择位/校验位
RB8:与SM2结合用于接收从机选择位/校验位
TI:发送中断请求标志位
RI:接收中断请求标志位
2)PCON寄存器(电源控制寄存器)
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
字节地址:87H | SMOD | SMOD0 | - | POF | GF1 | PD | IDL |
SMOD:设置方式123的波特率是否加倍
SMOD0:决定SCON寄存器SM0位的作用,当SMOD0=1时,SM0用于帧错误检测,当检测到一个错误停止位时SM0置1,由软件清零,当SMOD0=0时,SM0与SM1决定串口工作方式
3)IE寄存器(中断使能寄存器)
位4(ES):串口中断允许位
位7(EA):总中断允许控制位
二、示例代码