单片机两种方式实现串口通信

本文介绍了52单片机使用串口通信的基础知识,包括RXD和TXD引脚、SBUF寄存器、RI和TI标志位。详细阐述了串行口的工作方式,特别是工作方式1,并提供了计算波特率的公式。接着讲解了相关寄存器的作用,如SMOD、SCON等。最后,文章讨论了查询方式和中断方式两种实现串口通信的方法。
摘要由CSDN通过智能技术生成

一:NOTE

今天分享一下52单片机串口通信的一些知识吧~

二:预备知识

1、RXD(P3^0)串行输入口,TXD(P3 ^ 1)串行输出口,SBUF接收和发送寄存器。
2、RI串行接收中断请求标志,TI串行发送中断请求标志。
3、串行口发送过程:发送操作是在TI=0下进行的,此时发送缓冲寄存器SBUF(发送)相当于一个移位寄存器,8位数据以设定的波特率发送,发完数据后,发送中断标志TI由硬件置位,可以发出中断。
4、串行口接收过程:接收过程是在RI=0且REN=1条件下启动的,此时接收缓冲寄存器SBUF(接收)相当于一个移位寄存器,接受时,先置位允许接受控制位REN,当RI=0和REN=1同时满足时,开始接收,接收完成由硬件置位RI
5、串行口有4种工作方式,常用的是工作方式1,方式0和方式2的波特率相对比较固定。
6、当定时器工作方式设置为工作方式2时,串行口设置为工作方式1时,计算初值的公式为:波特率=(2^SMOD)/32*(fosc/(12*256-X))

三:相关寄存器

1、这个寄存器通常只设置SMOD,因为它涉及到上面初值的计算。
这个
2、这个设置串行口工作方式,而且还有接收中断REN,有的程序中直接写SCON=…很有人就看不懂了,其实就是设置这些位而已,这里有一点要注意,它的SM0是最高位,有的时候会迷糊的
在这里插入图片描述
3、这里ET2时定时器2的中断控制,只有STC89C52才有,51没有的,ES串行口中断,EA是总中断,这些都是到时候程序中要设置的。
在这里插入图片描述

四:查询方式实现串口通信

#include<reg52.h>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值