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

51单片机-串口通信编程

串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器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.lryc.cn/news/542828.html

相关文章:

  • python实现基于文心一言大模型的sql小工具
  • deepseek 导出导入模型(docker)
  • 前言:什么是大模型微调
  • TCPDF 任意文件读取漏洞:隐藏在 PDF 生成背后的危险
  • unity学习53:UI的子容器:面板panel
  • 水环境水质在线监测系统解决方案
  • HBuilder X中,uni-app、js的延时操作及定时器
  • BigDecimal线上异常解决方案:避免科学计数法输出的坑
  • 【C语言】指针笔试题
  • 深入理解Redis:数据类型、事务机制及其应用场景
  • RGMII(Reduced Gigabit Media Independent Interface)详解
  • 学习Flask:Day 1:基础搭建
  • XTOM工业级蓝光三维扫描仪在笔记本电脑背板模具全尺寸检测中的高效精准应用
  • 网络安全 机器学习算法 计算机网络安全机制
  • 分享些常用的工具类
  • VUE四:Vue-cli
  • 以下是自定义针对 Vite + TypeScript 项目的完整路径别名配置流程:
  • LangGraph系列教程:基于状态构建上下文感知的AI系统
  • 图像处理、数据挖掘、数据呈现
  • 利用python和gpt写一个conda环境可视化管理工具
  • sort_values、sort 和 sorted 的区别与用法详解
  • 银行系统功能架构设计元模型
  • rabbitmq 延时队列
  • idea + Docker + 阿里镜像服务打包部署
  • Vue 3 零基础入门:从计数器应用开始你的工程化之旅 - 深入理解 Vue 3 响应式系统
  • 批量将手机照片修改为一寸白底证件照的方法
  • 【Docker基础】理解 Docker:本质、性质、架构与核心组件
  • LeetCodehot 力扣热题100 全排列
  • SQL笔记#数据更新
  • GCC 和 G++的基本使用