单片机原理——串行口结构及工作原理

本文介绍了51单片机的UART串行通信接口,包括波特率的概念和计算,串行口的四种工作模式,以及串行通信中的校验和寄存器结构。重点讨论了波特率的设定与定时器T1的关系,以及如何通过选择特定晶振频率减少通信误差。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录


文章目录


前言


一、复习

51单片机有一个可编程的全双工的异步串行通信接口 (具有通用异步收发器的全部功能,UART) 能同时进行数据的发送和接收,也可作为同步移位寄存器使用

二、传输速率

1.常用串口波特率:300、600、1200、2400、 4800、9600、19200......115200

2.波特率:就是发送一位数据的速率,每秒传送的位数称为波特率,即发送一个数据的持续时间 = 1/baud;以此衡量传送的速度

3.1波特 = 1位/秒,单位是bps(位/秒)

4.如每秒传送240个字符,而每个字符格式包含10位 (1个起始位、1个停止位、8个数据位),这时的波特率为10位X240个/秒 = 2400bps。

三、通信校验

 四、UART串行口寄存器结构

理解下图

51单片机的串行口主要由两个独立的串行数据缓冲寄存器SBUF (一个发送缓冲寄存器,一个接收缓冲寄存器)(靠指令区分)和发送控制器、接收控制器、输入移位寄存器及若干控制门电路组成 。

发送标志位TI→发送完数据之后,TI被硬件置1→触发中断请求 (TI必须软件清零)

接收标志位RI→接收完数据之后,RI被硬件置1→触发中断请求 (RI必须软件清零)

注意这里时TI、RI,不是T1哈

(TI、RI:串口中断的中断源)

五、UART的四种模式

模式0: 为同步移位寄存器的输入/输出方式,主要用于扩展并行输入或输出口,不讲或自学
模式1: 10位数据的异步通信,1位起始位0,8位数据位 (一个字节) ,1位停止位1。其传输波特率是可变的。对于51单片机,波特率由定时器1的溢出率决定。通常我们在做单片机与单片机串口通信,单片机与计算机串口通信时,基本都选择方式1。要求掌握
模式2和3: 为11位数据的异步通信。原理和模式1一样,只是添加了一位奇偶校验位(防止通信出错)。

六、串行口的特殊功能寄存器 

1.串行数据寄存器SBUF

2.串行口控制寄存器SCON

3.电源控制寄存器PCON

只看SMOD这一位就可,后面是和单片机的功耗和掉电模式有关的

七、波特率

先有波特率-确定溢出率-定时时间-定时初值→打开定时器T1,产生波特率

T1溢出率是定时器T1溢出的频率,只要算出T1定时器每溢出一次所需要的时间T,那么T的倒数1/T就是它的溢出率。如: 设定时器T1每50ms溢出一次,那么其溢出率就是20Hz。

11.0592MHz
常用的波特率通常按规范取为1200、2400、4800、9600...若采用12MHz或6MHz计算出的T1的定时初值将不是一个整数,这样通信时便会产生积累误差,进而产生波特率误差,影响串行通信的同步性能。

解决的方法只有调整单片机的时钟频率,通常采用11.0592MHZ晶振。因为用它能够非常准确的计算出T1的定时初值。


总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值