概念:串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。
附
单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力
51单片机内部自带UART (Universal Asynchronous Receiver Transmitter,通用异步收发器)可实现单片机的串口通信
USB串口 陀螺仪 蓝牙串口
硬件电路
● 简单双向串口通信有两根通信线(发送端TXD和接收端RXD)
● TXD和RXD要交叉连接
● 当只需单向的数据传输时,可以直接一根通信线
● 当电平标准不一致时,需要加电平转换芯片
附,了解一下即可,现在一般在台式机主机接口上出现
常见通信接口比较
● 全双工:通信双方可以在同一时刻互相传输数据
● 半双工:通信双方可以互相传输数据,但必须分时复用一根数据线
● 单工:通信只能有一方发送到另一方,不能反向传输
● 异步:通信双方各自约定通信速率
● 同步:通信双方靠一根时钟线来约定通信速率
● 总线:连接各个设备的数据传输线路(类似于一条马路,把路边各住户连接起来,使住户可以 相互交流)
51单片机的UART
● STC89C52有1个UART
● STC89C52的UART有四种工作模式:
模式0:同步移位寄存器
模式1:8位UART,波特率可变(常用)
模式2:9位UART,波特率固定
模式3:9位UART,波特率可变
串口参数
● 波特率:串口通信的速率(发送和接收各数据位的间隔时间 )
● 检验位:用于数据验证
● 停止位:用于数据帧间隔
时序图
串口模式图
SBUF:串口数据缓存寄存器,物理上是两个独立的寄存器,但占用相同的地址。写操作时,写 入的是发送寄存器,读操作时,读出的是接收寄存器
★ T1溢出率和波特率可由上图计算
即 0xF3转化十进制为243,16*16=256-243=13us 则T1溢出率为1/13us=0.07692MHz
而波特率如图为0.07692/16=0.00480769MHz=4807.692Hz(如果不选波特率倍数就要 多除以2,如图)
波特率计算器上的误差就可以计算得7.692/4800=0.16%
及其中断系统(看看就行,及一些“开关”分布)
串行口相关寄存器
● 中断查询次数号就是中断号(之前也有)
● HEX模式/十六进制模式/二进制模式:以原始数据的形式显示
●文本模式/字符模式:以原始数据编码后的形式显示
一一对应(这个的熟悉,强记一下)
然后实操的话,我实际做成功了,但是不好录制视频,可参考江协的视频