登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 51单片机之串口通信(UART)

[复制链接]
发表于 2023-2-10 18:04:08 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 51单片机
学习安排: 串口通信(UART)
开始时间: 2023-01-17
结束时间: 2023-01-17
本帖最后由 郑中源 于 2023-2-10 22:28 编辑

串口通信(UART)可以实现电脑向单片机发数据,单片机向电脑发数据

一、串口通信(UART)的相关介绍
1.png
知道51单片机内置UART就行


2.png
如果不是用的单片机,用的其他硬件设备,注意TXD和RXD的交叉链接(了解就行)


3.png

UART的数量取决于单片机型号,下面的程序也是模式1的程序,用的定时器是八位自动重装,自动重装可以省去进入中断的时间
4.png
下面的程序只会用到波特率,定义如图,每隔一段时间会发送一位数据,如果有检验位才是9位数据格式


5.png
发送/接收数据的流程图,下面的程序也会根据这个写,T1是定时器1,TI,RI下面有说明,注意SBUF,发送和接收都用的着
7.png
这是UART对应的中断系统,TI,RI下面有说明


二、SCON和PCON--控制UART的关键
1.scon
6.png
图建议仔细阅读,如图对应,我们不用多机,也不用校验位,所以SM2,TB8,RB8都给0,TI,RI看你是要接收还是要读取来赋值,SM0,SM1根据工作模式赋值,以下是以方式1,接收数据讲解的。
2.pcon
8.png
我们只用SMOD,这是控制波特率是否加倍的,加倍就赋1


三、代码的实现(方式1,接收数据,定时器1&八位自动重装)
1.UART初始化(使用UART时要在main函数里提前写一遍这个初始化函数)
9.png
前两句是配置UART,scon可以配0x40,因为这里展示的代码不向外发送数据,pcon让波特率加倍,当然你也可以不加倍
中间是配置定时器,可以自己配,也可以用烧录软件给你的,我这里是烧录软件的
最后两句是中断开关,优先级可以不用设置,有默认优先级


2.发送函数

22.png

3.中断函数(可以理解为接收函数)
10.png
中断次序见手册,划掉RI=0上面那句,那是后来调试加的,这个发送的过程在烧录软件的串口助手里进行,此处代码是让P0口等于发送过来的数据,使得对应的灯亮。

附:部内单片机手册: STC-STC12C5A60S2.pdf (2.16 MB, 下载次数: 75)
24.png
好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表