蓝桥杯单片机赛点数据包模块文件使用的注意事项

news2024/11/25 11:04:12

目录

蓝桥杯单片机赛点数据包模块文件使用的注意事项

前言:

正文:

DS1302

IIC

onewire


2023年赛点资源包数据包下载地址:https://download.csdn.net/download/qq_25218501/87965408?spm=1001.2014.3001.5503

蓝桥杯单片机赛点数据包模块文件使用的注意事项

前言:

在2023年第十四届蓝桥杯单片机的竞赛中,蓝桥杯组委会官方将赛点资源包的iic、onewire和ds1302模块驱动文件做了更改,缺失了引脚定义和头文件包含。本期是我总结出来的新的驱动程序使用方法。

正文:

2023新的赛点数据包除了去除了底层驱动代码中的.h⽂件外,还在.c⽂件中的⼀些地⽅做了调整
我们可以将它们改成⾃⼰熟悉的往年驱动程序。

DS1302

ds1302.c

#include <reg52.h>
#include <intrins.h> //头⽂件可以通过在keil中添加.c⽂件展开得到
sbit SCK=P1^7;
sbit SDA=P2^3;
sbit RST = P1^3; // DS1302复位

//引脚忘了可以看芯⽚⼿册

 通过直接添加.c⽂件,可以查看到所需要的头⽂件

 引脚定义可以直接参照原理图

 

 ds1302.h

由于没给.h⽂件,所以需要⾃⼰写

#ifndef __DS1302_H
#define __DS1302_H
void Write_Ds1302(unsigned char temp);
void Write_Ds1302_Byte( unsigned char address,unsigned char dat );
unsigned char Read_Ds1302_Byte( unsigned char address );
//将⾃⼰写的函数名加⼊
void setTime(char Time[]);
void getTime(char Time[]);

#endif

IIC

iic.c
.c⽂件开头需要加的

#include <reg52.h>
#include <intrins.h>
#define DELAY_TIME 5
//总线引脚定义 这⾥注意是⼩写,以前的数据包都是⼤写,可以看下⾯具体函数是⼤写⼩写
sbit sda = P2^1; /* 数据线 */
sbit scl = P2^0; /* 时钟线 */

引脚定义可以直接参照原理图

 

 delay函数有差异,可以选择不改

2023年数据包iic延时函数:

static void I2C_Delay(unsigned char n)
{
    do
    {
        _nop_();_nop_();_nop_();_nop_();_nop_();
        _nop_();_nop_();_nop_();_nop_();_nop_();
        _nop_();_nop_();_nop_();_nop_();_nop_();
    }
    while(n--);
}

2022年数据包iic延时函数:

//I2C总线内部延时函数
void IIC_Delay(unsigned char i)
{
    do{_nop_();}
    while(i--);
}

需要注意的是,iic.c⽂件中的系统函数命名都发⽣了变化,因此在写函数时需要留意⼀下。


iic.h
同样需要写.h⽂件
 

#ifndef _IIC_H
#define _IIC_H
void I2CStart(void);
void I2CStop(void);
bit I2CWaitAck(void);
void I2CSendAck(bit ackbit);
void I2CSendByte(unsigned char byt);
unsigned char I2CReceiveByte(void);
//⾃定义函数
void dac_out(unsigned char dat);
unsigned char ad_get(unsigned char add);

#endif

onewire

onewire.c
 

#include <reg52.h>

sbit DQ = P1^4; //单总线接⼝

引脚定义可以直接参照原理图

同样,单总线内部的延时函数也有⼀些区别,以前我们需要在⾥⾯写 t*=10 ,2023版的数据包我们可以选择不动。
2023年:

void Delay_OneWire(unsigned int t)
{
    unsigned char i;
    while(t--){
    for(i=0;i<12;i++);
    }
}

 2022年:

//单总线内部延时函数
void Delay_OneWire(unsigned int t)
{
    while(t--);
}

onewire.h
同样需要写.h⽂件

#ifndef __ONEWIRE_H
#define __ONEWIRE_H
//2022数据包中⾃带的函数声明, 可以不⽤写
unsigned char rd_temperature(void);
//写⾃定义函数名,⽐如
int get_temperature(void);

#endif

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

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

相关文章

redis---基础(部署及常用命令)

目录 前言一、关系型数据库与非关系型数据库1. 关系型数据库2. 非关系型数据库3. 关系型数据库和非关系型数据库区别4. 非关系型数据库产生背景小结&#xff1a; 二、Redis简介1. 单进程快速的原因&#xff1a;2.epoll 机制优势&#xff1a; 三、Redis 具有以下几个优点四、red…

全国农信银CTF流量分析(凯撒会分析流量吗)

总的来说这题还是挺简单的。先分析流量过滤http 发现有f?ag提示&#xff0c;然后分析url 解析得到 &#xff1a;[Request URI: http://192.168.0.111/?codeif [ $(head f?ag | cut -c 1) G ] then sleep 1 echo success 发现是时间盲注 然后过滤 http.time > 1 对过滤…

《移动互联网技术》第三章 无线定位技术:掌握位置服务和室内定位的基本概念和工作原理

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

无线路由器解决方案 MR500E工业级4G路由器可实时监控4G信号强度

近年来&#xff0c;随着物联网技术的快速发展&#xff0c;越来越多的制造企业开始加速推进工业互联网的建设和应用。作为工业互联网的重要基础设施之一&#xff0c;工业级4G路由器也不断迭代升级&#xff0c;以满足企业多样化的应用需求。 无线路由器解决方案MR500E工业4G路由…

矩阵通引入AIGC,帮助企业挖掘用户线索

据CNNIC报告数据&#xff0c;截止2022年6月&#xff0c;我国网民规模达10.51亿&#xff0c;其中短视频用户规模为9.62亿&#xff0c;网络直播用户规模达7.16亿&#xff0c;占网民整体的68.1%。 庞大的用户体量为直播带货奠定了基础&#xff0c;给品牌商家提供了新流量阵地&…

winDbg 分析dump

一、linux 部属.netcore生成dump #当然默认是不支持的&#xff0c;需要用 ulimit 开启&#xff0c;这个命令可以用来配置当前系统资源的使用额度 ulimit -a #core file size 就是用来指定生成 dump 文件的大小&#xff0c;默认为 0&#xff0c;即表示不生成&#xff0c;我们临…

使用gitlab 自带 CI/CD 构建部署项目

首先是处理网络问题 这里我用的是桥接模式 桥接模式方便局域网内的小伙伴一起使用 如果没有这个打算可跳过这步 # 使用ip addr 查看网络 ip addr编辑网络 vi /etc/sysconfig/network-scripts/ifcfg-你的网络名称 vi /etc/sysconfig/network-scripts/ifcfg-ens33修改如下内容 B…

数据结构与算法:栈和队列

1 栈 栈是一种后入先出&#xff08;LIFO&#xff09;的线性逻辑存储结构。只允许在栈顶进行进出操作。 1.1 栈基本操作 基本操作包括&#xff1a;入栈&#xff08;push&#xff09;/出栈&#xff08;pop&#xff09;/获取栈顶元素&#xff08;peek&#xff09;。 栈的实现主…

CNN卷积类型总结(标准卷积、空洞卷积、反卷积、深度可分离卷积、分组卷积等)

目录 标准卷积 卷积的运算 conv2d conv1d 其他卷积类型 空洞卷积&#xff08;膨胀卷积&#xff09; 反卷积&#xff08;转置卷积&#xff09; 深度可分离卷积 分组卷积 参考文章 上学时&#xff0c;卷积常在各个课程中出现&#xff0c;现代、信号与系统这些&#xff…

第45步 深度学习图像识别:Nasnet建模(Tensorflow)

基于WIN10的64位系统演示 一、写在前面 &#xff08;1&#xff09;Nasnet NASNet是由Google Brain团队在2017年提出的一种神经网络架构搜索&#xff08;Neural Architecture Search&#xff0c;简称NAS&#xff09;的结果。NAS是一种用于自动化设计深度学习模型的技术。在NA…

oracle字符集

1、查看oracle字符集 如果操作系统或者客户端的字符集设置和数据库设置不一样就会出现乱码 查询NLS_LANG即操作系统环境变量要设为 NLS_LANGUAGE_NLS_TERRITORY**.NLS_CHARACTERSET**&#xff0c;如&#xff1a; export NLS_LANG“AMERICAN_AMERICA.AL32UTF8”

Spring MVC处理响应附案例详解

目录 一、配置视图解析器 二、控制器方法的返回值 2.1 返回值为void 2.1.1 控制器方法 2.1.2 jsp页面 2.1.3 测试结果 2.2 返回值为String 2.2.1 控制器方法 2.2.2 测试结果 2.3 返回值为ModelAndView 2.3.1 控制器方法 2.3.2 JSP页面 2.3.3 测试结果 三、某些会…

基于蒙特卡罗法评估智能电网可靠性研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

python爬虫_django+vue+echarts可视化查询所有CSDN用户质量分

文章目录 ⭐前言⭐ 效果⭐django简介⭐vue3简介⭐vue引入echarts ⭐前后分离实现&#x1f496; django代码层&#x1f496; vue3代码层结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享关于前后分离djangovueecharts可视化查询CSDN用户质量分。 该系列文章&#…

一种基于linux内核双向链表的移植

1.简介 双向链表&#xff08;Doubly Linked List&#xff09;是一种常见的数据结构&#xff0c;由一系列的节点组成&#xff0c;每个节点都包含两个指针&#xff0c;分别指向前一个节点和后一个节点。与单向链表不同&#xff0c;双向链表可以在 O(1) 的时间复杂度内向前或向后遍…

【Unity编辑器扩展】(三)PSD转UGUI Prefab, 一键拼UI解放美术/程序(完结)

工具效果&#xff1a; 第一步&#xff0c;把psd图层转换为可编辑的节点树&#xff0c;并自动解析UI类型、自动绑定UI子元素&#xff1a; 第二步, 点击“生成UIForm"按钮生成UI预制体 (若有UI类型遗漏可在下拉菜单手动点选UI类型)&#xff1a; 验证一键生成UI效果: 书接上…

idea双击打不开怎么办?

今天在敲代码的时候&#xff0c;突然出现了一个bug&#xff0c;idea打不开了&#xff0c;这个问题怎么解决&#xff1f; 只要找到C:\Users\Administrator .IntelliJIdea2019.3这个文件把所有文件都给删了就可以重启了 哈哈&#xff0c;重启成功

Bayes贝叶斯定理

问题的关键在于&#xff1a;人们是否考虑过大背景/先验/问题的前提&#xff0c;从而做出一个大致的估计。这就引出了我们关于理性的探讨&#xff0c;理性不是说知道事实&#xff0c;而是认识到哪些因素是有关的。 x.1 一个关于贝叶斯定理的例子 引入一个steve假设。我们已知大…

开源进展 | WeIdentity v3.1.1发布,提供无存储依赖的纯功能接口

作为连接实体对象&#xff08;人或物&#xff09;的现实身份与链上身份的可信映射&#xff0c;实现实体对象之间安全可信的数据授权与交换&#xff0c;分布式身份技术解决方案在推动区块链应用繁荣及可信数据流转的过程中扮演着重要角色。 WeIdentity是由微众银行自主研发并完全…

parcel打包工具搭建热开发项目环境

parcel是一款WEB端打包工具 能够提供热开发的项目环境 使用了的话不然Webpack 但相对搭建项目会更快一些 我们现在本地创建一个目录 然后 用编辑器打开我们创建的目录 运行终端 在终端中输入 npm init 初始化一个项目 运行完毕之后 我们就会得到一个package.json文件 然后…