蓝桥杯单片机之模块代码《串口发数据》

news2024/10/5 17:21:42

过往历程

历程1:秒表

历程2:按键显示时钟

历程3:列矩阵按键显示时钟

历程4:行矩阵按键显示时钟

历程5:新DS1302

历程6:小数点精确后两位ds18b20

历程7:35定时器测量频率

历程8:AT24C02

历程9:AT24C02秒表

历程10:AD

历程11:超声波

历程12:多样点灯方式

历程13:AT24C02页写入

历程14:DA


文章目录

  • 过往历程
  • 前期准备
  • 串口通信知识点
  • SCON
  • 总代码
  • 省赛代码传送门


前期准备

1:本文使用的头文件是由stc生成
在这里插入图片描述
点击保存文件之后,保存至自己文件目录下方即可
在这里插入图片描述
2:本文使用的都是官方提供的底层驱动代码
在这里插入图片描述
3:本文使用的都是STC中的串口配置
在这里插入图片描述

串口通信知识点

通讯的方式分类:并行通信 串行通信

并行通信:
  数据的各位同时在多根数据线上发送或接收。

串行通信:
  数据的各位在同一根数据线上逐位发送和接收7

并行通信的特点:
  控制简单,传输速度快;由于传输线较多,适用于短距离通信。

串行通信的特点:
  控制复杂,传输速度慢;只需要一根数据线,适用于远距离通信。


根据串行通信中对数据流的分界、定时以及同步方案方法不同,可分为和同步和异步。


同步方式:
  发送端和接收端必须使用同一时钟,是一种连续传送数据的通信方式,一次通讯传送多个字符数据(一帧数据)

异步方式:
  发送和接收端使用的是各自的时钟,是一种不连续传送数据的通信方式,一次通信只能传输一个字符数据(字符帧)。字符帧之间的间隙可以是任意的


根据串行数据的传输方向,我们可以将通信分为单工,半双工,双工。


单工:
  信道是单向的,数据只能单方面传输,发送端只能发送数据,不能接收;接收端只能接收数据,不能发送;

半双工:
  数据可以进行双向传输,但不能在两个方向上同时进行。

全双工:
  数据可以同时进行双向传输。

SCON

SM0、SM1 工作方式:

SM2:多机通信控制位。方式2、方式3的时候才使用。

  工作于方式2和方式3时,当SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,发出中断申请,否则会将接受到的数据放弃。当SM2=0时,就不管第位数据是0还是1,都将数据送入SBUF,并发出中断申请。

REN=1允许接收;REN=0禁止接收。

TB8:接收数据的第8位

RB8:接收数据的第8位

TI:串口发送完成中断标志位。由硬件自动置1,需要软件清“0”。

RI:串口接收完成中断标志位。由硬件自动置1,需要软件清“0”。

总代码

#include "stc15f2k.h"

void buzz()
{
	P2=((P2&0X1F)|0XA0);
	P0=0X00;
	P2&=0X1F;
	
	P2=((P2&0X1F)|0X80);
	P0=0XFF;
	P2&=0X1F;
}

void din()
{
	SCON = 0x50;		//8???,?????
	AUXR &= 0xBF;		//???1???Fosc/12,?12T
	AUXR &= 0xFE;		//??1?????1???????
	TMOD &= 0x0F;		//?????1?16???????
	TL1 = 0xE8;		//??????
	TH1 = 0xFF;		//??????
	ET1 = 0;		//?????1??
	TR1 = 1;		//?????1
	
	EA=1;
	ES=1;
}

void receive(char i)
{
	SBUF=i;
	while(TI==0);
	TI=0;
}


void send_out() interrupt 4
{
	static int date;
	if(RI==1)
	{
		RI=0;
		date=SBUF;
		receive(date);
	}
}

void main()
{
	buzz();
	din();
	receive(0x5a);
	while(1);
}

省赛代码传送门

第三届蓝桥杯单片机省赛
第四届蓝桥杯单片机省赛
第五届蓝桥杯单片机省赛
第六届蓝桥杯单片机省赛
第七届蓝桥杯单片机省赛
第八届蓝桥杯单片机省赛
第九届蓝桥杯单片机省赛
第十届蓝桥杯单片机省赛
第十一届蓝桥杯单片机省赛

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1676840.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初识鸿蒙之ArkTS基础

前言 学习一种应用程序开发,需要从这种程序的开发语言开始,比如说Android开发从入门到放弃,肯定是从Java基础或者是Kotlin语言基础开始学习的,IOS程序开发也肯定是从object-c开始学习的。鸿蒙软件开发也不例外,如果做…

平衡三进制小数详解与进制转换

标准三进制是“逢三进一,退一还三”的机制,平衡三进制与之类似,但就是偏移了一下变得对称了,平衡三进制与标准三进制可以相互转换,但这样显得有点多余了,所以这里只讲平衡三进制与十进制的转换。 数字系统的…

meshlab: pymeshlab合并多个物体模型并保存(flatten visible layers)

一、关于环境 请参考:pymeshlab遍历文件夹中模型、缩放并导出指定格式-CSDN博客 二、关于代码 本文所给出代码仅为参考,禁止转载和引用,仅供个人学习。 本文所给出的例子是https://download.csdn.net/download/weixin_42605076/89233917中的…

【微记录】dmidecode是干什么的?常用来做什么?如何查看系统支持的PCIe版本号(本质:标准,Desktop Management Interface)

是什么 dmidecode 是一个在 Linux 系统提取硬件信息的命令行工具。DMI 代表桌面管理接口(Desktop Management Interface),是一种标准,收集桌面计算机的硬件信息,包括系统制造商、序列号、BIOS 信息、系统资产标签等。…

风电功率预测 | 基于PSO-BP神经网络实现风电功率预测(附matlab完整源码)

风电功率预测 风电功率预测完整代码风电功率预测 基于粒子群优化算法(Particle Swarm Optimization, PSO)的BP神经网络是一种常见的方法,用于实现风电功率预测。下面是一个基于PSO-BP神经网络实现风电功率预测的一般步骤: 数据准备:收集与风电场发电功率相关的数据,包括…

C语言----斐波那契数列(附源代码)

各位看官们好,当我写了上一篇博客杨辉三角后,有一些看官叫我讲一下斐波那契数列。对于这个大家应该是有了解的。最简单的规律就是f(n)f(n-2)f(n-1)。就是当前是前两项之和,然后下标1和0都是1.从第三项开始计算的。那么我们知道规律&#xff0…

旧衣服回收小程序:探索旧衣回收市场的创新发展

每年我国就有将近800万吨旧衣服,在生活水平的日益提高下,这个数字也在逐渐增加。目前,我国旧衣回收的产业链也在完善中,旧衣服出口贸易逐年增加,市场发展空间不断扩大。此外,旧衣回收市场投入低、风险小、利…

SystemC学习使用记录

一、概述 对于复杂的片上系统,在进行RTL编码前,需进行深入的系统级仿真,以确认设计的体系结构是否恰当、总线是否能满足吞吐量和实现性要求以及存储器是否浪费,所进行的这些仿真要求在芯片的仿真模型上运行大量的软件&#xff0c…

PLL-分频器

概念 分频器的性能一般用四个参数来规定:(1)分频比,(2)最大允许输入频率fmax,(3)功耗,(4)最小允许输入电压摆幅(也叫“灵敏度”)。虽然分频器的相位噪声也很重要,但在大多数情况下它可以忽略不计。 把一般分频器的输入灵敏度画成…

微信支付商户的“商家转账到零钱”产品快速开通指南

微信支付商户的“商家转账到零钱”功能为商家提供了便捷的转账途径,尤其适用于费用报销、员工福利发放、合作伙伴货款或分销返佣等多种场景。那么,如何快速开通这一功能呢,需要快速开通的商户可以联系小编。 首先,确保你的企业已经…

C++基础与深度解析 | 表达式 | 操作符

文章目录 一、表达式基础1.表达式的值类别2.表达式的类型转换 二、表达式详述1.算术操作符2.逻辑与关系操作符3.位操作符4.赋值操作符5.自增与自减运算符6.其他操作符三、C17对表达式的求值顺序的限定 一、表达式基础 表达式由一到多个操作数组成,可以求值并 ( 通常…

Node.js 学习笔记 express框架

express express 使用express下载express 初体验 express 路由什么是路由1路由的使用验证的方法 2获取请求报文参数3获取路由参数4响应设置响应报文 express 中间件5中间件全局中间件路由中间件 6静态资源中间件注意事项案例 7请求体数据8防盗链实现防盗链 9路由模块化router E…

Linux: Make工具以及Makefile文件

make工具 人们通常利用 make 工具来自动完成编译工作。这些工作包括:如果仅修改了某几个源文件,则只重新编译这几个源文件;如果某个头文件被修改了,则重新编译所有包含该头文件的源文件。利用这种自动编译可大大简化开发工作&…

TreeMap详解:Java 有序 Map 原理与实现

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

论文解读:Self-Prompt Mechanism for Few-Shot Image Recognition

文章汇总 存在的问题 由于提示文本和图像特征之间固有的模态差异,常规的提示方法的性能受到限制。 动机 让视觉信息自己给自己提示 解决办法 SPM涉及到图像编码器跨空间和通道维度产生的固有语义特征的系统选择,从而产生自提示信息。随后&#xff…

【yolov8分类任务-全流程】【公开数据白内障-101:101例白内障手术的视频数据集】

文章目录 1.公开数据集1.1.白内障-101:数据集文件结构1.1.1.视频文件1.1.2.注释文件(1)videos.csv(2) phases.csv(3)annotations.csv 1.2. 数据处理1.2.1.抽帧脚本全部代码(每行都有注释)1.2.2.分类任务划分数据集脚本 2.yolov8分类任务训练2…

【教程】Jetson安装PyQt5和CUDA版OpenCV

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,请不吝给个[点赞、收藏、关注]哦~ 安装PyQt5 注意目前似乎只支持Python3.6!!! sudo apt install pyqt5* -y sudo apt-get install python3-pyqt…

Java | Leetcode Java题解之第89题格雷编码

题目&#xff1a; 题解&#xff1a; class Solution {public List<Integer> grayCode(int n) {List<Integer> ret new ArrayList<Integer>();for (int i 0; i < 1 << n; i) {ret.add((i >> 1) ^ i);}return ret;} }

每日一题12:Pandas:数据重塑-融合

一、每日一题 解答&#xff1a; import pandas as pddef meltTable(report: pd.DataFrame) -> pd.DataFrame:reshaped_report report.melt(id_varsproduct, var_namequarter, value_namesales)return reshaped_report 题源&#xff1a;Leetcode 二、总结 melt()函数是Pa…

Python 机器学习 基础 之 监督学习 [线性模型] 算法 的简单说明

Python 机器学习 基础 之 监督学习 [线性模型] 算法 的简单说明 目录 Python 机器学习 基础 之 监督学习 [线性模型] 算法 的简单说明 一、简单介绍 二、监督学习 算法 说明前的 数据集 说明 三、监督学习 之 线性模型 算法 1、用于回归的线性模型 2、线性回归&#xff0…