## 51单片机串口通讯

article/2025/10/14 20:36:59

1,接线方式:

RXD: 数据输入引脚;对应stc89的P3.0口;
TXD:数据的发送端口;对应P3.1口;
注意:单片机的的串口TX,RX与外设交叉接线;

2串口编程要素

输出/输入数据缓冲器SBUF(也就是两个缓冲器都叫SBUFF地址都为99H),但是他们两个是独立的寄存器,英雌可以同时收发。
代码体现:

`char data = SBUF; //接收数据`SBUF = data;

在这里插入图片描述

相关寄存器

1.串口是异步串行通讯,由于双方硬件不同时钟频率也不同,因此我们要约定通信速度:波特率;由STC_ISP中的串口助手完成。选择波特率,校验位,停止位。
在这里插入图片描述
PCON寄存器:在这里插入图片描述
图中手册有误,当SMOD=0波特率不加倍;SMOD=1波特率加倍;
SMOD0,用于精细通讯控制是不允许发生帧错误打开用于监测。当SMOD0 = 1时发生帧错误后SCON作出相应的动作;

SCON寄存器
在这里插入图片描述
1,B7位当PCON中的SMOD0 = 1时该位执行FE功能,用于帧错误监测。当监测到一个停止位错误,通过UART置位。必须由软件清零
否者执行SM0功能与SM0一起确定串口工作方式;

SM0SM1工作方式功能波特率
00方式0同步移位串行方式:移位寄存器SYSclk/12
01方式18位UART波特率可变(2^SMOD/32)*定时器1的溢出率
10方式29位UART2^SMOD/64)*SYSclk系统工作时钟频率
11方式39位UART波特率可变(2^SMOD/32)*定时器1的溢出率

可以发现选择波特率可变方式时均用到了定时器1,这是因为波特率的本质是速度这是和单片机晶振相关的,而访问单片机的晶振就必须通过定时器完成。
SM2:多机通信控制位,一般来说51单片机很少用到多机通信,感兴趣可以查手册了解。
REN:允许/禁止串行接收控制位。注意是接收控制位发送与他无关。
TI:发送中断标志
RI:接收中断标志位

AUXR寄存器:配置成0x01减少电磁辐射

配置串口代码:

void UartInit()
{SCON = 0x40; //SCON =0100 0000 串口工作方式配置在工作方式1PCON = 0x00;TMOD &= 0x0F; //高四位与上0000,低四位与1111;清零寄存器的高四位同时不影响定时器0的工作状态TMOD |=0x20; //配置定时器1的工作方式位8位自动重载TR1 = 1; //启动定时器1TH1 = 0xFD; //配置串口波特率计算方式见下图TL1 = 0xFD;}

在这里插入图片描述


http://chatgpt.dhexx.cn/article/jvgWoQ55.shtml

相关文章

51单片机串口通信详解

文章目录 前言一、计算机通信简介二、串口通信简介1、简介2、同步通信和异步通信2.1 同步通信2.2 异步通信 3、串行通信的传输方式4、串口通信硬件电路5、常见接口介绍 三、串口相关寄存器详解1、特殊功能寄存器SCON2、PCON寄存器3、TMOD寄存器(定时器工作方式寄存器…

51单片机串口接收处理

目的: 通过51单片机串口外设功能,来对一组数据进行处理,新手刚刚入门可能会将串口接收到的一个数据直接赋值给一个变量,然后用这个变量做相应功能,可是这样写的不稳定性太高了,有可能会接收不到你要的那个数据&#…

51单片机串口通信原理

计算机串行通信基础 通信有串行通信和并行通信两种方式 串行通信: 将数据字节分为一位一位的形式在一条数据线上逐个传送。如下图所示 串行通信特点:传输线少,长距离传送时成本低,且可以利用电话网等现成设备,但数据的…

51单片机串口点灯

#include "reg52.h" #include "intrins.h" sfr AUXR 0x8e; sbit D5 P3^7; //定义led 接在P3.7void UartInit(void) //9600bps11.0592MHz {SCON 0x50; //配置串口工作方式1,RE使能接收数据 0101 0000PCON 0x00; TMOD &0x0F;TMOD |0x2…

51单片机串口使用

文章目录 前言一、串口概念二、中断中的RI、TI和SUBF1.RI2.TI3.SUBF 三、串口波特率的计算四、代码的编写总结 前言 今天将为大家讲解51单片机的串口原理及代码编写。 一、串口概念 51单片机串口是一种通信接口,它可以将51单片机与外部设备连接起来,实…

51单片机串口通信

串口通信 1、通信的基本概念2、 51单片机串口介绍2.1、串口通信简介2.2、串口内部结构2.3、串口通信寄存器SCONPCON 2.4、串口工作方式 3、串口使用方法3.1、硬件3.2、通信协议RS2323.3、串口初始化 4、硬件设计5、 软件设计6、拓展 串口的通信,一般是检测通信模块是…

UART串口通信

什么是串行通信? 将数据字节分成一位一位的形式在一条传输线上逐位地发送。 优点:成本低,控制复杂。 什么是异步通信? 异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。 异步通信的两…

MCU-51:单片机串口详解

目录 一、计算机通信简介二、串口通信简介2.1 同步通信2.2 异步通信 三、串行通信的传输方式四、串口通信硬件电路五、常见接口介绍六、串口相关寄存器详解6.1 特殊功能寄存器SCON6.2 PCON寄存器6.3 TMOD寄存器 七、代码演示-单片机和电脑通信7.1 串口向电脑发送数据7.2 电脑通…

51单片机学习入门(三):串口

1.串口是什么? 串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信。 51单片机内部自带UART(…

51单片机——串口通信(发送和接受数据)

目录 一、实现的功能 二、串口通信 2.1单片机发送数据 2.1.1串口初始化 2.1.2串口发送程序 2.1.3发送效果 ​2.2单片机接收数据 2.2.1串口初始化 2.2.2接收数据程序 2.2.3接收效果 一、实现的功能 通过串口(UART)让单片机与计算机进行通信。51单…

51单片机-串口通信

目录 1.什么是通信 1.1.通信的概念 1.2.传送方式 1.3.同步方式 1.4.传送方向 1.5.校验方式 2.单片机串口介绍 2.1.硬件电路 2.2.电平标准 2.3.常见接口 2.4.内部结构 2.5.相关寄存器 2.6.工作模式(模式1) 2.7.如何配置串口中断 3.实际应用…

IDEA调试注解处理器AbstractProcessor

1.右击项目Open In->Terminal 执行命令mvnDebug clean package 查看端口号 2.添加远程调试配置监听的端口 3.debug启动远程调试就欧克了

强大的IDEA调试工具

在开发中难免会遇到bug,而如何去跟有效率的去修复bug,除了必要的经验之外,巧妙的使用工具也是非常有必要的。 一下就是对IDEA强大调试工具的介绍 在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动…

IntelliJ IDEA调试显示表达式结果

今天无意中看到使用IntelliJ IDEA调试代码时,可以看到某段表达式的结果,如 在调试时,若想看到optStu.get().getName()的值该怎么做? 只需选中它 然后右键 点击Evaluate按钮即可出现result

idea 调试 java,将Intellij-IDEA调试器附加到正在运行的java进程

Is it possible to attach Intellij-IDEA debugger to a running java process? 解决方案 Yes! Here is how you set it up. Run Configuration Create a Remote run configuration: Run -> Edit Configurations... Click the "+" in the upper left Select the …

idea调试unity里面的lua代码

前言 本人一名java后端开发,看到前端同事调试lua代码无脑print,甚为鄙视,百度加实操写一份调试unity的lua脚本文档 操作 1.安装lua lua官网下载页面 最终下载页面 2.idea安装插件 emmylua 3.idea打开unity的lua脚本 idea->file->op…

idea调试maven项目

maven debug 调试 关联maven项目启动调试进行调试 关联maven项目 启动调试 进行调试

宝塔 xdebug idea 调试 php

安装宝塔 安装php xdebug插件 查看是否安装成功 phpinfo 修改php.ini 配置 [XDebug] ;xdebug.profiler_append 0 ;xdebug.profiler_enable 1 ;xdebug.profiler_enable_trigger 0 ;xdebug.profiler_output_dir "D:\BtSoft\temp\xdebug" ;xdebug.trace_output_di…

IDEA调试程序的基本方法

IDEA基本调试步骤 版本 IntelliJ IDEA 2020.1 x64 操作系统 Windows10 64位 步骤 先上一段代码,求解如下问题,因为涉及了循环,判断等,可以用于调试 问题:寻找某两个数相除,其结果 离黄金分割点 0.618最…

IDEA调试模式技巧

记录自己在使用IDEA调试过程中的发现 文章目录 1.debug时在list或map中快速找到目标对象2.条件断点 1.debug时在list或map中快速找到目标对象 debug过程中map中对象很多: 在该map中获取指定对象可以右键该map,选择filter: 输入过滤条件&a…