51单片机-串口通信编程

ops/2025/3/1 8:34:02/

串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制盒中断控制。具体步骤如下:

  • 确定T1的工作方式(编程TMOD寄存器)
  • 计算T1的初值,装载TH1\TL1
  • 启动T1(编程TCON中的TR1位)
  • 确定串行口控制(编程SCON寄存器)

串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器(中断优先级通常不设置))

#include "reg52.h"typedef unsigned int u16;
typedef unsigned char u8;void UsartInit()
{//TMOD控制T1、T0寄存器工作方式TMOD=0X20;  // 0010 0000 选择定时器1,工作方式2// 设置波特率,12MHZ晶振、4800波特率、定时器:方式2、SMOD=1波特率倍频,初值F3HTH1=0XF3;TL1=0XF3;//PCON不能位操作,设置SMODPCON=0X80;//TCON寄存器启动定时器TR1=1;//SCON寄存器串行口控制SCON=0X50; // 0101 0000//IE寄存器打开串口中断ES=1;EA=1;
}void main()
{UsartInit();while(1);
}void Usart() interrupt 4
{u8 receiveData; //定义一个变量用于保存数据receiveData=SBUF; //读取缓冲器里面的数据//由内部硬件使RI置1,需要软件把RI清零RI=0;// 发送数据SBUF=receiveData;while=(!TI); //发送完成通过硬件置1,取反跳出循环TI=0; //发送完成,软件清0;
}


http://www.ppmy.cn/ops/162184.html

相关文章

【FL0087】基于SSM和微信小程序的民宿短租系统

🧑‍💻博主介绍🧑‍💻 全网粉丝10W,CSDN全栈领域优质创作者,博客之星、掘金/知乎/b站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战,以及程序定制化开发…

北京大学DeepSeek提示词工程与落地场景(PDF无套路免费下载)

近年来,大模型技术飞速发展,但许多用户发现:即使使用同一款 AI 工具,效果也可能天差地别——有人能用 AI 快速生成精准方案,有人却只能得到笼统回答。这背后的关键差异,在于提示词工程的应用能力。 北京大…

吃一堑长一智

工作中经历,有感触记录下 故事一 以前在一家公司时,自己是一名开发人员,遇到问题请教领导解决方案,当时领导给了建议,后来上线后出问题了,背了锅。心里想的是领导说这样做的呀,为什么出问题还…

Python测试框架Pytest的参数化

上篇博文介绍过,Pytest是目前比较成熟功能齐全的测试框架,使用率肯定也不断攀升。 在实际工作中,许多测试用例都是类似的重复,一个个写最后代码会显得很冗余。这里,我们来了解一下pytest.mark.parametrize装饰器&…

多模块 Maven 项目的管理(一)

为什么选择多模块 Maven 项目 在 Java 项目开发的版图中,Maven 早已成为构建和依赖管理的中流砥柱 。而随着项目规模的不断膨胀,功能的日益复杂,单模块 Maven 项目逐渐显得力不从心,多模块 Maven 项目应运而生,成为大…

【网络安全 | 漏洞挖掘】利用文件上传功能的 IDOR 和 XSS 劫持会话

未经许可,不得转载。 本文涉及漏洞均已修复。 文章目录 前言正文前言 想象这样一个场景:一个专门处理敏感文档的平台,如保险理赔或身份验证系统,却因一个设计疏漏而成为攻击者的“金矿”。在对某个保险门户的文件上传功能进行测试时,我意外发现了一个可导致大规模账户接管…

在VSCode 中使用通义灵码最新版详细教程

在 VSCode 中使用通义灵码:最新版详细教程与使用场景 Visual Studio Code(简称 VSCode)是一款由微软开发的轻量级、功能强大的开源代码编辑器,支持多种编程语言,深受开发者喜爱。而通义灵码(TONGYI Lingma…

手写RPC框架-V1版本

配合源代码使用体验更佳 Version 1.0一、Provider模块1.ProviderExample2.UserServiceImplpom.xml 二、Consumer模块1.ConsumerExample3.UserServiceProxy(静态代理)pom.xml 三、RPC模块Proxy包1.ServiceProxy2.ServiceProxyFactory Registry包LocalRegi…