基于江科大51单片机视频笔记——串口通信

目录

串口介绍

​编辑

介绍陀螺仪与蓝牙串口

陀螺仪

蓝牙串口

串口简单电路

电平标准

常见通信接口比较

51单片机中的UART

电路图

时序图

串口模式图

串口的中断系统与相关寄存器

SM0/FE:

 SM1:

SM2:

 REN:

TB8:

 RB8:

 TI:

RI: 

SMOD:

SMOD0:

配置串口发送代码

先配置SCON

配置SBUF

配置PCON

配置中断相关寄存器

定时器控制波特率

SBUF控制发送

发送数据

配置串口接收代码

配置SCON

配置SBUF

 配置PCON

配置中断通道相关寄存器

配置中断函数

补充  T1溢出率的计算

补充  数据显示模式


串口介绍

串口就是一种传输数据用的接口,U盘,雷电接口等。就是可以和其他单片机或者外设传递数据的接口(交流接口)。

介绍陀螺仪与蓝牙串口

陀螺仪

能够测量X,Y,Z轴的角度和加速度等等,然后传递给单片机,可以通过串口来将数据传递给单片机。

蓝牙串口

可以通过相应的软件来进行传递数据,就是将手机要发送的数据传给蓝牙串口,后蓝牙串口传递给单片机。

串口简单电路

VCC:提供电压电源,驱动内部电路。

TXD:Transmit Data,发送数据线

RXD:Received Data,接受数据线

GND:电气参考点,信号传输。

不妨想一想,当设备之间需要传递一串字符数据,该怎么传输呢?电路又不能直接将字符传递过去,这就需要请出ASCII码了。我们知道,每个字母或数据都有一个对应的ASCII码。比如“a”的码为“97”,转化为二进制为“0110 0001”,这个二进制就代表“97”,这就为一个信号。

然而,如何将“0110 0001”发送出去呢?

这就需要介绍

电平标准

电压的计算就是VCC相对与GDN的电压,就是VCC-GND的电压,但GND一般为0。

两线压差与上述差别不大,就是GND可能不一定为0.

拓展:VCC相对GND的电压是电路设计和分析中描述直流电源电压水平的一个参数,而两线压差则是描述两个不同电位点之间电压差的一个概念。

TTL电平与RS232电平的缺点:最大传输距离为13左右米。

RS485:可以传输1000米以上。

常见通信接口比较

全双工:相当于打电话,同时间双方可以同时通信(讲话),两线。

半双工:相当于对讲机,同时间双方只有一个可以通信(讲话),一线。

单工:相当于电视遥控器,无论任何时间都只能一方发送给另一方数据,一线。

异步,同步中的通信速率,可以比作讲话速度,就是双方必须保持相同的说话速度,否则可能听不懂,听不清。打个比方,甲方是1秒发一个数据,而乙方是0.5秒读一次数据,这样乙方永远读的是甲方数据的一半。

异步:就是在传递信息,通信过程前就将速度设置好(这个需要自己配置好)。

同步:就是给个时钟线,当这根线上有数据时就读取。

还有一个通俗讲解:异步就是给你个翻译本,自己翻译。同步就是我给你翻译。

51单片机中的UART

电路图

时序图

波特率:通信的速率,因为异步,所以需要自己设置。就是讲话的速度。

校验位:如图,9位数据格式中。比如发送数据“0110 0000”中的 1 有2个,为偶数,就会在发送一个“1”来表示数据位有偶数个1,这个位就叫做校验位。   如果数据为“0110 0001”中的1有 3 个,为奇数个,就会在校验位发送一个“0”。

这有什么用呢?

打个比方,如果数据是:“0110 1000”,后校验位就是“0”。总的发送就为“0110 10000”。但中途有个信号异常,变为了0,比如变为了“0100 10000”,这时接受方在接受到最后的校验位时“0”,0代表这个数据1有奇数个,但此刻为偶数个,所以可以断定这个数据发送错了,可以选择不接受。

有人会问,如果突然有两个数,一个1  一个0  突变,那怎么样,这确实有可能,但概率极低,可以不计。也就是说,一般只有一个会变,因为两个都变化的概率极低。如果真的两个都变,那就只能接受了。

串口模式图

T1溢出率:它定义为定时器溢出一次所需的时间的倒数。例如,如果定时器每50秒溢出一次,则溢出率为1/50 = 20Hz。

T1控制的就是发送和接收的速率,就是一位一位读取8位数据的速率。

发送数据:先将8位的数据写入SBUF缓存寄存器中,在通过 控制门 发送(TXD)出去。

接收数据:将8位数据先通过移位寄存器 一位一位地写入SBUF缓存寄存器中

读写操作:如果是a=SBUF,就是读操作。

                  如果是SBUF=a,就是写操作。

数据的接收和发送是自动执行的,就是当你写入数据到发送寄存器中时,系统自动帮你发送数据,并产生一个发送中断(transmit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值