51单片机学习笔记:串口接收和发送数据

2023-05-16

芯片STC89C52RC

 

在PC端向单片机发送任意数据后, 单片机向PC端发送4行文本,

由于在windos下,回车换行用\r\n

 

 


 


#include <reg52.h>
#include "MY51.h"

void 	initSer();          //串口初始化
uchar  sendFlag = 0;     //未发送数据时
uchar  receFlag =0;		//未接受到数据时

code  uchar  TEXT0[] = "****************************\r\n";  //\r\n是回车换行
code  uchar  TEXT1[] = "单片机串口通讯测试\r\n";
code  uchar  TEXT2[] = "http://xouou.iteye.com\r\n";
code  uchar  TEXT3[] = "****************************\r\n\r\n";//回车换行并空1行

void sendChar(uchar sendValue);  //发送一字节数据
void sendAll(uchar *pValue);       //发送一组数据

void main(void)
{
	initSer();
	while(1)
	{
	  while(receFlag)				//单片机串口收到任意数据后,开始向PC发送数据
	  {
		   sendAll(TEXT0);         //发送数据
		   sendAll(TEXT1);
		   sendAll(TEXT2);
		   sendAll(TEXT3);
			receFlag=0;				//发完了清标志	
	  }
	}
}

void serInt() interrupt 4	//中断函数
{
	if(RI)                  //如果收到任意数据
	{
		RI = 0;
		P1=SBUF;		//数据的变化让led灯直观反应出来
		receFlag=1;   //修改接受标志,便于主函数进入while中发数据
	}
	
	if(TI)
	{
		TI = 0;         	   //发送完一个数据
		sendFlag = 0;        //清标志位
	}
}


void sendChar(uchar Value)  //发送一个字节数据
{
	 SBUF = Value;     
	 sendFlag = 1;       //设置发送标志位,发一字节就置位
	 while(sendFlag);	 //直到发完数据,将sendFlag清零后,才退出sendChar函数
}

void sendAll(uchar *pValue)	//发送一组数据
{
	while((*pValue) != '\0')   //如果没有发送完毕就继续发
	{
		sendChar(*pValue);      //发送1字节数据
		pValue++;         		  //指向下1个字节
	}
}

void initSer()		//初始化
{
    //注意:刚上电时,SCON是为0的
	TMOD=TMOD|0x20; //T1定时器模式,工作方式2
	TH1=0Xfd;	  	 // 256-(11059200/(32*12*9600))
	TL1=0xfd;
	SM0=0;			 //属于SCON寄存器
	SM1=1;			 //串口工作方式1,10位异步,波特率可改
	REN=yes;			 //允许串口接收
	ES=open;			 //开串口中断
    EA=open;			 //开总中断
	TR1=start;		 //启动定时器
}
  

 

 

http://115.com/file/dpch9qvz#
串口调试工具集合(附测评).rar

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

51单片机学习笔记:串口接收和发送数据 的相关文章

随机推荐

  • 算法描述的一般格式和设计步骤

    通常用C C 43 43 函数来描述算法 算法描述的一般格式如下 返回值 算法对应的函数名 xff08 形参列表 xff09 临时变量的定义 实现由输入参数到输出参数的操作 函数体 其中 xff0c 39 返回值 通常为bool类型 xff
  • 清除浏览器js和css缓存

    原文链接 xff1a https jingyan baidu com article acf728fd5986aff8e510a32a html 方法 xff1a 1 ctrl 43 F5 强制刷新 2 如果刷新浏览器无法清除js的缓存 x
  • 统计学 常用的数据分析方法大总结,推荐收藏

    作者 xff1a 阿平 64 zhihu 来源 xff1a 知乎 一 描述统计 描述统计是通过图表或数学方法 xff0c 对数据资料进行整理 分析 xff0c 并对数据的分布状态 数字特征和随机变量之间关系进行估计和描述的方法 描述统计分为
  • 手把手教你研发自己的智能无人机

    1 让智能无人机梦想变成现实 对于大多数极客学员来说 xff0c 自己组装一台无人机 xff0c 可以航拍 xff0c 可以目标跟踪 xff0c 是心中
  • 软件工程复习之软件生命周期

    生命周期 基本概念 xff1a 生命周期 xff1a 1995过程的划分 xff1a 基本过程 xff1a 开发过程包含的活动 xff1a 过程实现包含任务系统需求分析包含任务系统体系结构设计包含任务软件需求分析软件体系结构设计包含任务 支
  • 先验分布与后验分布,认真看看这篇

    此文主要参考 huaxiaozhuan com 编辑 Python与算法社区 公众号 在贝叶斯学派中 xff0c 先验分布 43 数据 xff08 似然 xff09 61 后验分布 例如 xff1a 假设需要识别一大箱苹果中的好苹果 坏苹果
  • 置信度&置信区间,这篇讲解我给100分!

    今天这篇聊聊统计学里面的置信度和置信区间 xff0c 好像没怎写过统计学的东西 xff0c 这篇试着写一写 1 点估计 在讲置信度和置信区间之前先讲讲点估计 xff0c 那什么是点估计呢 xff1f 给你举两个例子你就知道了 现在你想要知道
  • sklearn 实战指南

    0 引言 Sklearn 全称 Scikit Learn 是基于 Python 语言的机器学习工具 它建立在 NumPy SciPy Pandas 和 Matplotlib 之上 xff0c 里面的 API 的设计非常好 xff0c 所有对
  • 绘制频率分布直方图的三种方法,总结的很用心!

    直方图能帮助迅速了解数据的分布形态 xff0c 将观测数据分组 xff0c 并以柱状条表示各分组中观测数据的个数 简单而有效的可视化方法 xff0c 可检测数据是否有问题 xff0c 也可看出数据是否遵从某种已知分布 本次案例通过生成深圳市
  • Python 列表如何转化为二叉树?

    Day46 列表转化为二叉树 已知列表nums xff0c 将其转化为二叉树 举例 xff1a nums 61 3 9 20 None None 15 7 xff0c 转化为二叉树后 节点3的左子节点9 xff0c 右子节点20 xff0c
  • Peter Norvig 给程序员们的一份传世典文:10年编程无师自通

    你好 xff0c 我是zhenguo 这篇文章的作者 xff1a Peter Norvig xff0c 可以说是程序员中最牛叉的人物之一 xff0c 现任谷歌研究总监 xff0c 是誉满全球的人工智能专家 xff0c 著有 Artifici
  • 全球最优秀的14位程序员

    接下来带你一起膜拜大神 xff08 排名不分先后 xff09 1 Linus Torvalds Linus Torvalds 是开源操作系统Linux和Git之父 1997 2003年 xff0c Torvalds在硅谷Transmeta
  • 《数据分析咖哥十话》包邮送3本

    文末留言包邮送三本 小雪求职记 入秋以来 xff0c 市场就开始不景气 xff0c 我们的女主人公小雪从一家互联网公司的运营岗毕 xff08 cai xff09 业 xff08 yuan xff09 以来 xff0c 三个月都没接到任何面试
  • 梳理机器学习常用算法(含深度学习)

    你好 xff0c 我是你们的老朋友 xff0c zhenguo xff01 机器学习的任务主要分为三类 xff1a 监督学习非监督学习强化学习 监督学习是指在训练过程中 xff0c 模型是根据给定的输入和输出标签来学习的 监督学习的任务主要
  • 机器学习:单或双变量常用分析技巧

    你好 xff0c 我是你们的老朋友 xff0c zhenguo xff01 在机器学习EDA阶段 xff0c 变量分析及可视化是常做的事情 xff0c 这篇文章总结变量分析中 xff0c 最常使用的单变量 xff0c 双变量分析以及可视化
  • 【计算机三级网络技术】 第三篇 IP地址规划技术

    文章目录 一 IP 地址规划以及划分地址新技术1 IP地址的标准分类 xff08 第一阶段 xff09 2 划分子网的三级地址结构 第二阶段 3 构成超网的无类域间路由技术 第三阶段 4 网络地址转换技术 第四阶段 二 IP 地址分类1 A
  • 机器学习:处理缺失值方法总结

    你好 xff0c 我是你们的老朋友 xff0c zhenguo 处理缺失值是在进行机器学习时非常重要的一个步骤 缺失值会影响机器学习模型的准确度 xff0c 因此在训练模型之前 xff0c 通常需要先处理掉缺失值 这篇文章 xff0c 总结
  • 机器学习储备(8):numpy之linspace 和 logspace

    1 linspace在numpy中是创建等差数列 xff0c 先看例子 xff1a A 61 np linspace 1 11 11 结果 xff1a array 1 2 3 4 5 6 7 8 9 10 11 因此可以看到lisapce接
  • 矩阵特征值的求解例子

    请点击上面公众号 xff0c 免费订阅 实例 阐述算法 xff0c 通俗易懂 xff0c 助您对算法的理解达到一个新高度 包含但不限于 xff1a 经典算法 xff0c 机器学习 xff0c 深度学习 xff0c LeetCode 题解 x
  • 51单片机学习笔记:串口接收和发送数据

    芯片STC89C52RC 在PC端向单片机发送任意数据后 单片机向PC端发送4行文本 由于在windos下 回车换行用 r n include lt reg52 h gt include 34 MY51 h 34 void initSer