1.导读
单片机下载数据等操作需要CPU与外部通信,串行(通过串口)通信和并口通信。常见的USB就是一种串口。
2.异步通信原理
串行通信有同步通信方式和异步通信方式。这里介绍异步通信方式。
- 起始位:为不同步,首先要有一位起始位标志后面开始传送
- 数据位:5~8位
- 停止位1~2位
3.有关概念
波特率:
传输速度可以用每秒多少比特描述(bps),我们把1bps就称为1波特。
单工,半双工和全双工:
分别对应单方向传输信息,两方同时只能单方传信息,两方能同时发送接受信息。
4.通信中常用寄存器
串行口控制寄存器SCON
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI |
- SM1,SM0:串行工作方式
方式 | 功能 | 波特率 |
---|---|---|
0 | 移位寄存器(扩展I/O) | fosc/12 |
1 | 8位异步收发器 | 可变 |
2 | 9位异步收发器(多了1位校验位) | fosc/64或fosc/32 |
3 | 9位异步收发器 | 可变 |
-
SM2:多机控制位
-
REN:串行接收允许位
-
RB8:存放发送数据的第9位;TB8:存放接收数据的第9位
若数据有9位(D0位到D8位),51单片机一次处理8位,多出来的D8将存入RB8或TB8
这一位常作为奇偶校验位
-
RI:接收中断标志位
-
TI:发送中断标志位
PCON
SMOD是寄存器PCON(p是power)最高位(D7)
SMOD是波特率是否加倍选择位,0波特率不加倍,1波特率加倍
SBUF
发送和接收的数据都要通过SBUF。
51单片机中有2个SBUF,分别处理读和写,两个SBUF地址都是99H,单片机会自动识别是读还是写
MOV A,SBUF;启动接收
MOV SBUF,A;启动发送