当前位置: 首页 > news >正文

【单片机】51单片机串口的收发实验,串口程序

在这里插入图片描述
这段代码是使用C语言编写的用于8051单片机的串口通信程序。它实现了以下功能:

引入必要的头文件,包括reg52.h、intrins.h、string.h、stdio.h和stdlib.h。

定义了常量FSOC和BAUD,分别表示系统时钟频率和波特率。

定义了一个发送数据的函数send,该函数将数据发送到串口,等待数据发送完成后清除发送中断标志。

定义了一个打印字符串的函数Print_Str,该函数将一个以空字符结尾的字符串发送到串口。

定义了串口初始化函数SerInit,该函数配置串口通信的相关寄存器,包括设置波特率、串口模式、定时器模式等。

定义了一个延时函数delay_ms,用于产生指定毫秒数的延时。

定义了全局变量Txd_data,用于保存接收到的数据。

定义了串口中断服务函数Uart_isr,当接收到数据时会触发串口中断,该函数将接收到的数据发送回去。

在main函数中,首先调用SerInit进行串口初始化,然后开启总中断,延时一段时间,接着使用Print_Str函数发送一些字符串。

在main函数的主循环中,程序会一直循环执行。

总体来说,这段代码配置了8051单片机的串口通信功能,使其能够接收和发送数据。通过串口,你可以与外部设备进行数据交换和通信。

#include "reg52.h"
#include <intrins.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>#define FSOC	11059200L
#define BAUD	9600void send(unsigned char dat) {SBUF = dat;while (!TI);TI = 0;
}void Print_Str(unsigned char *s) {while (*s != '\0') {send(*s++);}
}void SerInit(void) {SCON = 0x50;TMOD = 0x20;TCON = 0x40;TH1 = -(FSOC / BAUD / 12 / 16);TL1 = -(FSOC / BAUD / 12 / 16);PCON = 0x80;RI = 0;TI = 0;ES = 1;
}void delay_ms(unsigned int t) {unsigned char ttt;while (t--) {for (ttt = 0; ttt < 125; ttt++);}
}unsigned char Txd_data;
void Uart_isr() interrupt 4 {if (RI) {Txd_data = SBUF;RI = 0;send(Txd_data);}
}void main(void) {SerInit();EA = 1;delay_ms(200);Print_Str("zheng dian bao shi ");Print_Str("\r\n");while (1) {}
}

相关文章:

【单片机】51单片机串口的收发实验,串口程序

这段代码是使用C语言编写的用于8051单片机的串口通信程序。它实现了以下功能&#xff1a; 引入必要的头文件&#xff0c;包括reg52.h、intrins.h、string.h、stdio.h和stdlib.h。 定义了常量FSOC和BAUD&#xff0c;分别表示系统时钟频率和波特率。 定义了一个发送数据的函数…...

【bug】记录一次使用Swiper插件时loop属性和slidersPerView属性冲突问题

简言 最近在vue3使用swiper时&#xff0c;突然发现loop属性和slides-per-view属性同时存在启用时&#xff0c;loop生效&#xff0c;下一步只能生效一次的bug&#xff0c;上一步却是好的。非常滴奇怪。 解决过程 分析属性是否使用错误。 loop是循环模式&#xff0c;布尔型。 …...

云原生应用里的服务发现

服务定义&#xff1a; 服务定义是声明给定服务如何被消费者/客户端使用的方式。在建立服务之间的同步通信通道之前&#xff0c;它会与消费者共享。 同步通信中的服务定义&#xff1a; 微服务可以将其服务定义发布到服务注册表&#xff08;或由微服务所有者手动发布&#xff09;…...

【零基础学Rust | 基础系列 | 基础语法】变量,数据类型,运算符,控制流

文章目录 简介&#xff1a;一&#xff0c;变量1&#xff0c;变量的定义2&#xff0c;变量的可变性3&#xff0c;变量的隐藏 二、数据类型1&#xff0c;标量类型2&#xff0c;复合类型 三&#xff0c;运算符1&#xff0c;算术运算符2&#xff0c;比较运算符3&#xff0c;逻辑运算…...

运输层---概述

目录 运输层主要内容一.概述和传输层服务1.1 概述1.2 传输服务和协议1.3 传输层 vs. 网络层1.4 Internet传输层协议 二. 多路复用与多路分解&#xff08;解复用&#xff09;2.1 概述2.2 无连接与面向连接的多路分解&#xff08;解复用&#xff09;2.3面向连接的多路复用*2.4 We…...

高速公路巡检无人机,为何成为公路巡检的主流工具

随着无人机技术的不断发展&#xff0c;无人机越来越多地应用于各个领域。其中&#xff0c;在高速公路领域&#xff0c;高速公路巡检无人机已成为公路巡检的得力助手。高速公路巡检无人机之所以能够成为公路巡检中的主流工具&#xff0c;主要是因为其具备以下三大特性。 一、高速…...

仓库管理系统有哪些功能,如何对仓库进行有效管理

阅读本文&#xff0c;您可以了解&#xff1a;1、仓库管理系统有哪些功能&#xff1b;2、如何对仓库进行有效管理。 仓库是制造业的开端&#xff0c;原材料的领料开始。企业的仓库管理是涉及企业生产、企业资金流和企业的经营风险的关键环节。在众多的工业企业、制造型企业、贸…...

Java 比Automic更高效的累加器

1、 java常见的原子类 类 Atomiclnteger、AtomicIntegerArray、AtomicIntegerFieldUpdater、AtomicLongArray、 AtomicLongFieldUpdater、AtomicReference、AtomicReferenceArray 和 AtomicReference- FieldUpdater 常见的原子类使用方法 使用 AtomicReference 来创建一个原…...

antDv table组件滚动截图方法的实现

在开发中经常遇到table内容过多产生滚动的场景&#xff0c;正常情况下不产生滚动进行截图就很好实现&#xff0c;一旦产生滚动就会变得有点棘手。 下面分两种场景阐述解决的方法过程 场景一&#xff1a;右侧不固定列的情况 场景二&#xff1a;右侧固定列的情况 场景一 打开…...

JavaSE【抽象类和接口】(抽象类、接口、实现多个接口、接口的继承)

一、抽象类 在 Java 中&#xff0c;一个类如果被 abstract 修饰称为抽象类&#xff0c;抽象类中被 abstract 修饰的方法称为抽象方法&#xff0c;抽象方法不用 给出具体的实现体。 1.语法 // 抽象类&#xff1a;被 abstract 修饰的类 public abstract class Shape { …...

微信小程序如何跳转H5页面

1、登录微信公众后台&#xff0c;进入【开发->开发管理->业务域名】&#xff0c;点击修改。 2、首先请下载校验文件&#xff0c;并将文件放置在域名根目录下。 我是把文件放在nginx主机的data目录下&#xff0c;然后通过增加nginx.config配置&#xff0c;重启nginx后可…...

C++(20):bit_cast

C++20之前如果想对不同的指针之间做类型转换需要通过reinterpret_cast,对于整数与指针之前的转换也需要通过reinterpret_cast: C++:reinterpret_cast_c++ reparant_cast_风静如云的博客-CSDN博客 但是reinterpret_cast的缺点是不同的编译环境下,无法包装转型的安全一致。 …...

STM32 低功耗-停止模式

STM32 停止模式 文章目录 STM32 停止模式第1章 低功耗模式简介第2章 停止模式简介2.1 进入停止模式2.1 退出停止模式 第3章 停止模式程序部分总结 第1章 低功耗模式简介 在 STM32 的正常工作中&#xff0c;具有四种工作模式&#xff1a;运行、睡眠、停止以及待机模式。 在系统…...

Hutool中 常用的工具类和方法

文章目录 日期时间工具类 DateUtil日期时间对象-DateTime类型转换工具类 Convert字符串工具类 StrUtil数字处理工具类 NumberUtilJavaBean的工具类 BeanUtil集合操作的工具类 CollUtilMap操作工具类 MapUtil数组工具-ArrayUtil唯一ID工具-IdUtilIO工具类-IoUtil加密解密工具类 …...

K8s(健康检查+滚动更新+优雅停机+弹性伸缩+Prometheus监控+配置分离)

前言 快速配置请直接跳转至汇总配置 K8s SpringBoot实现零宕机发布&#xff1a;健康检查滚动更新优雅停机弹性伸缩Prometheus监控配置分离&#xff08;镜像复用&#xff09; 配置 健康检查 健康检查类型&#xff1a;就绪探针&#xff08;readiness&#xff09; 存活探针&am…...

Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查

Django学习记录&#xff1a;使用ORM操作MySQL数据库并完成数据的增删改查 数据库操作 MySQL数据库pymysql Django开发操作数据库更简单&#xff0c;内部提供了ORM框架。 安装第三方模块 pip install mysqlclientORM可以做的事&#xff1a; 1、创建、修改、删除数据库中的…...

React Hooks 中的 useEffect(副作用)

useEffect 是什么&#xff1f; useEffect 是一个 React Hook&#xff0c;它允许你将组件与外部系统同步 当我们在 React 中使用 useEffect 这个 Hook 时&#xff0c;实际上是在告诉 React 在特定情况下执行我们定义的副作用函数。这种副作用函数可以处理一些与组件渲染结果无关…...

[CKA]考试之持久化存储卷PersistentVolume

由于最新的CKA考试改版&#xff0c;不允许存储书签&#xff0c;本博客致力怎么一步步从官网把答案找到&#xff0c;如何修改把题做对&#xff0c;下面开始我们的 CKA之旅 题目为&#xff1a; Task 创建一个pv&#xff0c;名字为app-config&#xff0c;大小为2Gi&#xff0c;…...

基于LLM的SQL应用程序开发实战(一)

基于LLM的SQL应用程序开发实战(一) 16.1 SQL on LLMs应用程序初始化 本节主要从案例代码的角度切入,探索ChatGPT以及大模型,尤其是从生产环境的视角,来思考具体的最佳实践。本节主要跟大家谈的是,在LangChain这样一个框架下,我们使用GPT-3.5或者GPT-4大模型,同时使用第…...

如何批量实现多行合并后居中

思路&#xff1a; 1.先填充数据 2.数据分类统计制作格式 3.格式刷刷制作出的格式 1.填充数据 思路&#xff1a;选中&#xff0c;F5定位空值&#xff0c;&#xff0c;⬆&#xff08;键盘上的上下左右哪里的上键&#xff09;&#xff0c;按住Ctrl然后按Enter。 2.数据分类统计…...

YOLOv8 智能交通违章检测 - 疲劳/分心驾驶检测详解

YOLOv8 智能交通违章检测 - 疲劳/分心驾驶检测详解 疲劳驾驶和分心驾驶检测属于驾驶员状态监测(DMS, Driver Monitoring System)的核心功能。与外部交通违章不同,这需要摄像头安装在车内,对准驾驶员面部。 由于人脸关键点(眼睛、嘴巴)的微小变化对精度要求极高,单纯的…...

第九篇:通义灵码(Lingma):阿里云国产补全黑马——多文件编辑+Agent模式,企业私域知识增强的本土利器

(本篇约7600字,2026年4月最新数据,配全新高清界面截图、架构图与多工具对比表,作为专栏第九篇长文) 当Tabnine以Air-Gapped隐私守护者征服合规战场、Amazon Q以AWS深度绑定加速云原生部署、Gemini Code Assist以免费多模型赢得预算敏感开发者、JetBrains AI Assistant以原…...

STM32 RS485远程固件升级实战:从Bootloader设计到C#上位机开发全流程

STM32 RS485远程固件升级实战&#xff1a;从Bootloader设计到C#上位机开发全流程 在工业物联网和野外设备部署场景中&#xff0c;固件升级一直是个令人头疼的问题。想象一下&#xff0c;当某个偏远地区的环境监测设备出现软件故障时&#xff0c;工程师需要驱车数小时前往现场&a…...

别再数据线了!用FastAPI 分钟搭个局域网文件+剪贴板神器伊

为 HagiCode 添加 GitHub Pages 自动部署支持 本项目早期代号为 PCode&#xff0c;现已正式更名为 HagiCode。本文记录了如何为项目引入自动化静态站点部署能力&#xff0c;让内容发布像喝水一样简单。 背景/引言 在 HagiCode 的开发过程中&#xff0c;我们遇到了一个很现实的问…...

TypeScript 快速上手:环境配置与编译模型

1. 前言 TypeScript 在游戏开发领域的应用日益广泛&#xff0c;Cocos Creator、Egret、LayaAir 等引擎均将其作为主要开发语言&#xff0c;PuerTS 方案也让 Unity 开发者能够以 TypeScript 编写逻辑。对于具备 C# 或 C 背景的开发者而言&#xff0c;TypeScript 的类型系统并不…...

终极指南:使用Scarab轻松管理《空洞骑士》Mods的10个技巧

终极指南&#xff1a;使用Scarab轻松管理《空洞骑士》Mods的10个技巧 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab Scarab是一款专为《空洞骑士》游戏设计的现代化Mod管理器…...

企业级可视化生态系统|关于Highcharts集成的前端框架、后端编程语言与生态

在 Web 开发和数据分析领域&#xff0c;Highcharts 凭借其强大的交互性和美观的视觉效果&#xff0c;早已成为行业标杆。然而&#xff0c;真正让 Highcharts 脱颖而出的&#xff0c;不仅仅是它那 100 多种图表类型&#xff0c;更是其全方位的集成能力&#xff08;Integrations&…...

STM32F103C8T6实战:I2C驱动STP23L测距传感器与OLED显示优化

1. 项目背景与硬件选型 第一次接触STM32F103C8T6驱动STP23L测距传感器时&#xff0c;我完全没料到这个蓝色小模块会成为后续多个项目的核心组件。STP23L是一款基于TOF&#xff08;飞行时间&#xff09;原理的激光测距传感器&#xff0c;测量范围0.1-3米&#xff0c;精度可达1m…...

s2-pro语音合成多场景应用:远程医疗问诊语音记录转述与播报

s2-pro语音合成多场景应用&#xff1a;远程医疗问诊语音记录转述与播报 1. 医疗语音转述的痛点与解决方案 在远程医疗场景中&#xff0c;医生与患者的语音问诊记录需要准确转述为文字并生成语音播报&#xff0c;传统方式面临三大挑战&#xff1a; 效率瓶颈&#xff1a;人工转…...

小白程序员必备:收藏这份学习指南,轻松入门信息安全领域!

小白程序员必备&#xff1a;轻松入门信息安全领域&#xff01; 本文系统梳理了信息系统安全的核心要点&#xff0c;涵盖加密解密、身份认证、访问控制、安全协议等关键技术。从安全体系架构&#xff08;机密性、完整性、可用性等五要素&#xff09;到数据安全&#xff08;对称/…...