首页 > 其他分享 >单片机学习(9)--串口

单片机学习(9)--串口

时间:2024-06-11 19:30:27浏览次数:28  
标签:UART -- 通信 电平 单片机 串口 include

串口

8.1串口通信

1.串口介绍

**串口是一种应用十分广泛的通讯接口,成本低,容易使用,通信线路简单,可实现两个通信的互相通信。**单片机的串口可以使单片机和单片机,单片机与电脑,单片机与其他各式各样的模块互相通信,极大地拓展了单片机的应用范围,增强了单片机系统的硬件实力。
51单片机内部自带UART(通用异步收发器),可实现单片机的串口通信。

2.硬件电路

简单双向串口通信有两根通信线(发送端TXD和接收端RXD)
TXD和RXD要交叉连接
当只需单向的数据传输时,可以直接一根通信线
当点平标准不一致时,需要加电平转换芯片
在这里插入图片描述

3.电平标准

电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:
•TTL电平:+5V表示1,0V表示0
RS232电平:-3-(-15)v表示1,+3-(+15)V表示O
•RS485电平:两线压差+2-(+6)V表示1,-2~-6V表示0(差分信号)

4.接口及引脚定义

在这里插入图片描述

5.常见通信接口比较

在这里插入图片描述

6.相关术语

全双工:通信双方可以在同一时刻互相传输数据
半双工:通信双方可以互相传输数据,但必须分时复用一根数据线
单工:通信只能有一方发送到另一方,不能反向传输
异步:通信双方各自约定通信速率
同步:通信双方靠一根时钟线来约定通信速率
总线:连接各个设备的数据传输线路

6.51单片机的UART

STC89C52有一个UART,有四个工作模式:
模式0:同步移位寄存器
模式1:8位UART,波特率可变(常用)
模式2: 9位UART,波特率固定
模式3: 9位UART,波特率可变

7.串口参数

波特率:串口通信的速率
检验位:用于数据验证
停止位:用于数据帧间隔

8.串口模式图

在这里插入图片描述
发送SBUF=?,接收?=SBUF

8.串口和中断系统

接收数据时使用中断系统ES=1,EA=1
在这里插入图片描述

9.串口相关寄存器

在这里插入图片描述

8.2串口向电脑发送数据,电脑通过串口控制LED

1.串口向电脑发送数据程序

(1)工程目录

在这里插入图片描述

(2)main.c函数

实现功能:串口每隔一秒向电脑发送数据

#include <REGX52.H>
#include "Delay.h"
#include "UART.h"
unsigned char Sec;
void main()
{
	UART_Init();
	
	while(1)
	{
		UART_SendByte(Sec);
		Sec++;
		Delay(1000);
	}
}

(3)UART函数

#include <REGX52.H>
/**
  * @brief  串口初始化,[email protected]
  * @param  无
  * @retval 无
  */
void UART_Init()
{
	SCON=0x40;
	PCON |= 0x80;
	TMOD &= 0x0F;			//设置定时器模式
	TMOD |= 0x20;			//设置定时器模式,8位自动重装
	TL1 = 0xF4;			//设置定时初始值
	TH1 = 0xF4;			//设置定时重载值
	ET1 = 0;			//禁止定时器中断
	TR1 = 1;			//定时器1开始计时
	
}
/**
  * @brief  串口发送一个字节数据
  * @param  Byte要发送的一个字节数据
  * @retval 无
  */
void UART_SendByte(unsigned char Byte)
{
	SBUF=Byte;
	while(TI==0);
	TI=0;
}

2.电脑通过串口控制LED(串口接收数据)

(1)工程目录

在这里插入图片描述

(2)main.c函数

#include <REGX52.H>
#include "Delay.h"
#include "UART.h"
void main()
{
	UART_Init();
	
	while(1)
	{
		
	}
}

void UART_Routine() interrupt 4
{
	if(RI==1)//判断为接收数据
	{
		P2=~SBUF;
		UART_SendByte(SBUF);
		RI=0;
	}
}

这一节的内容还是很难,有时间还是看看手册吧,老师讲了主要的内容,但是细节的东西还得自己去手册里看看。

标签:UART,--,通信,电平,单片机,串口,include
From: https://blog.csdn.net/LHYYUYG/article/details/139559109

相关文章

  • 【精品方案集】人力资源数字化转型解决方案
    引言:人力资源数字化转型解决方案合集资料,旨在为企业提供一套全面、高效的人力资源管理方案,助力企业实现人力资源管理的数字化转型。本合集围绕人力资源数字化、人力资源的数字化转型、数字化人力资源管理系统及HR数字化转型等关键字,涵盖了多个方面,以满足企业不同层次、不同场......
  • 如何利用 Google 搜索结果页来引导?
    在数据驱动的决策世界中,获取准确而全面的信息至关重要。Google搜索结果抓取是一种强大的技术,可以让企业、调查人员和研究人员从搜索引擎结果中提取可靠的数据。本综合指南将深入研究Google搜索结果的最佳实践、工具和道德考量,以确定能够有效利用这一技术。了解Google搜索......
  • LinkedIn账号登录不稳定,有什么有效解决方案?
    LinkedIn是一个面向职场的社交平台,用户可以在这个平台上建立并维护自己的专属人脉,以及发现行业内的最新动态和趋势。Linkedln在全球至少拥有9.2亿用户,然而领英自从2021年起,开始限制中国大陆地区用户使用,进而导致账号登录频繁不稳定或账号登陆不成功的现象,如何有效解决防止类......
  • 基于 Transformer 的大语言模型
    语言建模作为语言模型(LMs)的基本功能,涉及对单词序列的建模以及预测后续单词的分布。近年来,研究人员发现,扩大语言模型的规模不仅增强了它们的语言建模能力,而且还产生了处理传统NLP任务之外更复杂任务的新兴能力。这些扩大规模的语言模型被称为大型语言模型(LLMs)。主流的LLMs基......
  • 落实算法安全主体责任基本情况怎么写?(附模板)
    随着数字经济的高速发展,算法应用本身带来的社会问题不断积累,引起社会的广泛关注,于是在2021年12月31日,国家网信办会同工信部、公安部、市场监管总局出台《互联网信息服务算法推荐管理规定》,全面规范互联网信息服务算法活动,旨在实现算法技术创新与用户权益保障之间的动态平衡。《......
  • 基于STM32开发的智能鱼缸控制系统
    目录引言环境准备智能鱼缸控制系统基础代码实现:实现智能鱼缸控制系统4.1水温传感器数据读取4.2水泵与加热器控制4.3水位传感器数据读取4.4用户界面与数据可视化应用场景:水族箱管理与优化问题解决方案与优化收尾与总结1.引言智能鱼缸控制系统在维护水族箱生态平衡和......
  • PCIe学习——重点提纲
    PCIe学习-重点提纲基础知识计算机架构基础总线系统概述PCIvsPCI-XvsPCIePCIe概述PCIe的发展历史PCIe与其他总线的对比PCIe的优势和应用场景PCIe体系结构PCIe分层模型物理层(PhysicalLayer)数据链路层(DataLinkLayer)事务层(TransactionLayer)PCIe链......
  • wimlib API 提供了一系列用于处理 Windows 映像文件(.wim 文件)的函数和数据结构,使开发
    wimlibAPI提供了一系列用于处理Windows映像文件(.wim文件)的函数和数据结构,使开发人员能够在其应用程序中集成对WIM文件的创建、修改和提取功能。以下是一些常见的wimlibAPI:WIM文件的创建和初始化:wimlib_create_new_wim():创建一个新的WIM文件。wimlib_open_wim():......
  • Canny边缘检测算法
    一、概念Canny算法是一种经典的图像处理算法,用于图像中的边缘检测,其实现的步骤包括:高斯滤波;计算梯度和方向:对平滑后的图像使用Sobel算子计算水平方向和竖直方向的一阶导数,然后计算该点的梯度大小和方向;非极大值抑制:对梯度图上的每个像素,根据其梯度方向,确定在该方向上的两个......
  • 【办公自动化】Python中的BeautifulSoup
    Python中的BeautifulSoup简介BeautifulSoup是一个Python库,用于解析HTML和XML文档。它可以将复杂的HTML文档转换为树形结构,使得我们可以轻松地提取所需的信息。BeautifulSoup支持多种解析器,如html.parser、lxml和html5lib等。本文将介绍BeautifulSoup的基本用法和一些常用功能。......