单片机——UART串口通信


宗旨:技术的学习是有限的,分享的精神是无限的。


对于单片机来说,通信则与传感器、存储芯片、外围控制芯片等技术紧密结合,成为整个单片机系统的“神经中枢”。

1、初步认识

一位一位的发送出去的,要发送 8 次才能发送完一个字节。

STC89C52有两个引脚是专门用来做 UART串行通信的,一个是 P3.0一个是 P3.1,它们还分别有另外的名字叫做 RXD和TXD,由它们组成的通信接口就叫做串行接口,简称串口。

波特率:发送二进制数据位的速率,习惯上用 baud 表示;即我们发送一位二进制数据的持续时间=1/baud。

通信过程:在UART 通信的时候,一个字节是 8 位,规定当没有通信信号发生时,通信线路保持高电平,当要发送数据之前,先发一位 0 表示起始位,然后发送 8 位数据位,数据位是先低后高的顺序,数据位发完后再发一位 1 表示停止位。

2、RS232通信接口与USB转串口通信

RS232 接口一共有 9 个引脚,分别定义是: 1、载波检测 DCD; 2、接收数据 RXD; 3、发送数据 TXD; 4、数据终端准备好 DTR; 5、信号地线 SG; 6、数据准备好 DSR; 7、请求发送 RTS; 8、清除发送 CTS; 9、振铃提示 RI。我们要让这个串口和我们单片机进行通信,我们只需要关心其中的 2 脚 RXD、 3 脚 TXD 和 5 脚 GND 即可。

负逻辑:低电平代表的是 1,而高电平代表的是 0,因此需要电平转换芯片 MAX232。 RS232 串口和 UART 串口,它们的协议类型是一样的,只是电平标准不同而已,而 MAX232 这个芯片起到的就是中间人的作用,它把 UART 电平转换成 RS232 电平,也把 RS232 电平转换成 UART 电平。

USB 转串口芯CH340T:实现 USB通信协议和标准UART 串行通信协议的转换。

3、通信的三种基本类型

单工通信就是指只允许一方向另外一方传送信息,而另一方不能回传信息;

半双工通信是指数据可以在双方之间相互传播,但是同一时刻只能其中一方发给另外一方;

全双工通信就发送数据的同时也能够接收数据,两者同步进行。

4、串口通信

1、配置串口为模式 1。
2、配置定时器 T1 为模式 2,即自动重装模式。
3、根据波特率计算 TH1 和 TL1 的初值,如果有需要可以使用 PCON 进行波特率加倍。
4、打开定时器控制寄存器 TR1,让定时器跑起来。

定时器的重载值计算公式为:TH1= TL1 = 256 - 晶振值/12 /2/16 /波特率

#include<reg52.h>void ConfigUART(unsigned int baud);int  main(void)
{EA = 1;  //使能总中断ConfigUART(9600);  //配置波特率为9600while (1);return 0;
}
/* 串口配置函数,baud-通信波特率 */
void ConfigUART(unsigned int baud)
{SCON = 0x50;  //配置串口为模式1TMOD &= 0x0F;  //清零T1的控制位TMOD |= 0x20;  //配置T1为模式2TH1 = 256 - (11059200 / 12 / 32) / baud; //计算T1重载值TL1 = TH1;     //初值等于重载值ET1 = 0;       //禁止T1中断ES  = 1;      //使能串口中断TR1 = 1;       //启动T1
}
/*UART中断服务函数 */
void InterruptUART() interrupt 4
{if (RI) //接收到字节{RI = 0;   //手动清零接收中断标志位SBUF = SBUF + 1;  //接收的数据+1后发回,左边是发送SBUF,右边是接收SBUF}if (TI) //字节发送完毕{TI = 0;   //手动清零发送中断标志位}
}

51单片机——UART相关推荐

  1. 51单片机——UART串口通讯-波特率可选,增添定时器2产生波特率1.0

    1.51单片机自带硬件串口接口,使用时只需要进行寄存器配置即可. 2.定时器1波特率有4种可选择,默认9600bps.另外还有1个字节的发送函数,字符串发送函数. 3.增添:定时器2波特率有5种可选择 ...

  2. 51单片机——UART串口通讯-波特率4种模式可选1.0

    1.51单片机自带硬件串口接口,使用时只需要进行寄存器配置即可. 2.波特率有4种可选择,默认9600bps.另外还有1个字节的发送函数,n个字符发送函数. 3.有几个寄存器默认的reg52.h里面没 ...

  3. 51单片机——USART半双工模式通讯-波特率可选1.2版本

    1.优化<51单片机--UART串口通讯-波特率可选,增添定时器2产生波特率1.1版本>里的代码. 2.主要修改了串口发送和串口中断里的代码,且增加了串口发送标识位.串口接收完标识位.接收 ...

  4. 51单片机的UART应用

    串行通信方式:将数据字节分成一位一位的行驶在一条传输线上进行传输,如图: 异步串行通讯方式:异步串行通信数据格式一般为字符格式,一个字符一个字符(即一帧)地传输,每个字符一位一位的传输,各个位是以固定 ...

  5. 【自学51单片机】11 -- UART串口通信

    文章目录 1.串行通信的初步认识 2.USB转串口通信 3.UART串口通信的基本应用 3.1 通信的三种基本类型 3.2 UARM模块介绍 3.3编写UART串口步骤及程序 4.串口调试助手 5.通 ...

  6. 51单片机IO模拟UART

    一. IO模拟UART发送 串口通信属于 串行 异步 半双工的通信模式 1. 最近在调试一个IO模拟UART的程序,把调试过程中遇到的问题总结一下.对于UART的发送部分(主机模式)还是比较容易实现的 ...

  7. 51单片机入门——UART串口通信

    文章目录 前言 1.什么是串行通信 2. USB转串口通信 3. IO 口模拟 UART 串口通信 4 UART串口通信的基本应用 4.1 通信的三种类型 4.2 UART模块 4.3 UART 串口 ...

  8. 第11章 UART 串口通信(手把手教你学51单片机pdf部分)

    手把手教你学51单片机-C语言版.pdf  

  9. 51单片机C语言波特率十六进制,理解51单片机串口通信的波特率与USB转串口通信...

    RS232 在我们电脑上,一般都会有一个9针的串行接口,这个串行接口叫做RS232接口,它和UART通信有关联,但是由于现在笔记本电脑不带9针串口,所以和单片机通信越来越趋于使用USB虚拟串口. 九针 ...

最新文章

  1. Navicat中查询哪些表有指定的字段名(技巧)
  2. Spring框架(1)
  3. 【Python CheckiO 题解】Long Repeat
  4. emlog博客网站后台登录模板 上传到模板目录即可
  5. 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课0.8节编辑描边
  6. 查询数据表中重复记录
  7. Google验证码ReCaptcha V3
  8. 搭建第一个springBoot 摘抄自蚂蚁课堂
  9. java UCI,UCI数据集
  10. Excel常用功能(持续更新)
  11. 万能五笔输入法弹窗_万能五笔输入法广告怎么去掉
  12. 【软件工程】机房文档--可行性研究报告
  13. kinit 某个账户,提示 Clients credentials have been revoked
  14. 车载USB DVR(行车记录仪)的源码架构浅析(基于AndroiidM)
  15. SpringBoot + Vue 的物流仓库管理系统源码
  16. JDBC:JDBC工具类JDBCUtils
  17. 人工智能——K-Means聚类算法(Python)
  18. 基于JavaWeb的餐饮库存管理系统
  19. 国庆六日游——第三天第一题
  20. 密码中用到的特殊字符有哪些?

热门文章

  1. ARP 地址解析协议
  2. 40天python入门教程_Python入门教程超详细1小时学会Python
  3. android 编译luajit,Android 嵌入 LuaJIT 的曲折道路
  4. 【机器学习】逻辑斯蒂回归原理
  5. 【Python + Selenium】之JS定位总结
  6. ann matlab,人工神经网络ann及其matlab仿真.ppt
  7. Linux:守护进程详解及实现
  8. VS2017打开低版本的VS MVC架构的项目的时候需要修改的地方
  9. [Robot Framework] 怎么做数学运算?
  10. 处理String类常用的方法1