蓝桥杯 单片机 DS1302和DS18B20
DS1302 时钟
时钟试题 常作为实验室考核内容


控制三个引脚
P17 时钟 P23输入 P13复位 其他已经配置好
寄存器原理

定位地址 0x80地址
固定格式 0x57 5*10+7*1 =57

小时写入格式 不同 首位区分 A上午 P下午
0为24小时制
1为12小时制 写入8小时 0x87 //1000 7 十二小时制 7*1=7 十二小时制 7点
使用方法
追踪地址
写入59秒 秒 地址 1000 0000 //0x80 传输数据 0x59 输入59秒
写入月份 月 地址 1000 1000//0x88 传输 0x99 输入9月
如下图 h为16进制后标 使用 0x80 = 80h

写入2进制

写入函数
void Write_Ds1302(unsigned char temp)
{unsigned char i;for(i=0;i<8;i++){SCK=0;//拉高数据得以传输进去SDA=temp&0x01;/*1010 00000000 0001兼并 都为1 传输 一0则0 不修改其他的地方*/temp>>=1;//扫过这8位数据SCK=1;//关门}
}
数据写入
void Write_Ds1302_Byte(unsigned char address,unsigned char dat) //地址写入 数据写入
{RST=0; _nop_();SCK=0; _nop_();RST=0; _nop_();Write_Ds1302(address);Write_Ds1302(dat);RST=0;
}
读取
unsigned char Read_Ds1302_Byte (unsigned char address)
{unsigned char i,temp=0x00; //temp接受数据RST=0; _nop_();SCK=0; _nop_();RST=0; _nop_();Write_Ds1302(address);for(i=0;i<8;i++){SCK=0;temp>>=1;if(SDA)temp|=0x80;SCK=1;
/*temp 初始 0000 0000SDA 1010 1100| 《含义:若其中一个为0则变为1
*/}RST=0; _nop_();SCK=0; _nop_();RST=0; _nop_();SDA=0; _nop_();SDA=1; _nop_();return(temp);
}
void Set_Rtc(unsigned char* ucRtc) //写入
{unsigned char i;Write_Ds1302_Byte(0x80,0);for(i=0;i<3;i++)//写入时分秒Write_Ds1302_Byte(0x84-i*2,ucRtc[i]);/*Write_Ds1302_Byte(0x84,ucRtc[0]);时Write_Ds1302_Byte(0x82,ucRtc[1]);分Write_Ds1302_Byte(0x80,ucRtc[2]);秒*/Write_Ds1302_Byte(0x8e,1);
}void Read_Rtc(unsigned char* ucRtc)//读取
{unsigned char i;for(i=0;i<3;i++)ucRtc[i]=Read_Ds1302_Byte(0x85-i*2);}
DS18B20模块
温度检测



高速暂存器

默认温度 85度
用户字节分别为 上限 和下限
配置寄存器
byte 2~4 读取字节
温度寄存器
输入
bit7—bit4 整数位 bit3—bit0 小数位
小数计算 后4位 1110 为8 因为这是小数位所以8的-1次方 为0.125
07D0h = 0000 0111 1101 0000
FFD0h = 1111 1111 1101 0000
前5位0为正 1为负
报警 TH TL
比较整数位

改变报警标志位 置回
配置寄存器

配置精度 置位 设置精度
使用方法
1.初始化
2.rom操作 只有这一个芯片
3.功能指令 读入序列号 定位
![]()
ROM指令



初始化

单总线拉高 拉高完毕 返回低平
时序问题
接受高平 拉低信号 释放 读取低电平变化 初始化成功 释放总线
//总线延时函数
void Delay_OneWire(unsigned int t)
{t*=12; //原先1t *=12 则为t/12 若为12t则 有*=12 while(t--);
}
//DS18B20设备初始化
bit init_ds18b20(void)
{bit initflag=0;DQ=1;Delay_OneWire(12); //高DQ=0; Delay_OneWire(80); //低DQ=1;Delay_OneWire(10); //释放initflag =DQ;Delay_OneWire(5); //读取0初始化成功
}
晶振与周期 写入时间判断
跟晶振有关
指令周期为1us

写入函数

拉低时序不同
void Write_DS18B20(unsigned char dat)
{unsigned char i;for(i=0;i<8;i++){DQ=0;DQ= data&0x01;
/*dat 0101 1101 &0x01 检测 若同为1则拉入 写入程序
*/Delay_OneWire(5);DQ=1;dat>>=1 ;}Delay_OneWrie(5);
}
读取时序

//读取字节
unsigned char Read_DS18B20(void)
{unsigned char i;unsigned char dat;for(i=0;i<8;i++){DQ=0;dat>>=1;
/**/DQ=1;if(DQ){dat |=0x80;}Delay_OneWire(5)}return dat;
}
函数总览
//温度读取函数
float rd_temperature(void)
{unsigned char low,high; //返回高低八位init_ds18b20(); //初始化Write_DS18B20(0xcc); //跳过ROMWrite_DS18B20(0x44); //进行温度转换init_ds18b20(); //初始化Write_DS18B20(0xcc); //跳过ROMWrite_DS18B20(0x44); //读取温度low=Read_DS18B20(); //读取低high=Read_DS18B20(); //读取高return((high<<8)|low)/16.0; //精度换算 12位
}
乘以精度
按顺序读取 从上向下
初始上电时 默认为85度
可以在执行前 进行定义
void main()
{t=read_t();Delay750ms();System_Init();Timer0_Init();while (1){Key_Proc();Seg_Proc();Led_Proc();}
}
相关文章:
蓝桥杯 单片机 DS1302和DS18B20
DS1302 时钟 时钟试题 常作为实验室考核内容 控制三个引脚 P17 时钟 P23输入 P13复位 其他已经配置好 寄存器原理 定位地址 0x80地址 固定格式 0x57 5*107*1 57 小时写入格式 不同 首位区分 A上午 P下午 0为24小时制 1为12小时制 写入8小时 0x87 //1000 7 十二小时制 7…...
前端css-媒体查询@media以及常见使用例子
媒体查询(media)介绍 媒体查询(media)是 CSS 中用来针对不同的设备特性(如屏幕尺寸、分辨率等)应用不同样式的一种技术。通过媒体查询,可以使页面在不同设备上呈现不同的布局,实现响…...
centos系统防火墙SELinux设置指令
SELinux(Security-Enhanced Linux)的配置可以通过一系列步骤和命令来完成。以下是一些基本的配置SELinux的方法和步骤: 一、查看SELinux状态 首先,你需要查看SELinux的当前状态。可以使用以下命令: getenforce 该命…...
记录如何在RK3588板子上跑通paddle的OCR模型
官网文档地址 rknn_zoo RKNPU2_SDK RKNN Model Zoo 一、PC电脑是Ubuntu22.04系统中完成环境搭建(板子是20.04) 安装模型转换环境 conda create -n rknn2 python3.10 conda activate rknn2 安装Ubuntu依赖包 su…...
通过AWS Bedrock探索 Claude 的虚拟桌面魔力:让 AI 代替你动手完成任务!
前言 大家好,昨夜Anthropic 发布了更新。现在 Claude 3.5 Sonnet(V2) 和 Claude 3.5 Haiku,以及名为 computer use 的新功能已经作为公开测试版发布了。 Introducing computer use, a new Claude 3.5 Sonnet, and Claude 3.5 Ha…...
Java面向对象编程高阶(一)
Java面向对象编程高阶(一) 一、关键字static1、static修饰属性2、静态变量与实例变量的对比3、static修饰方法4、什么时候将属性声明为静态的?5、什么时候将属性声明为静态的?6、代码演示 一、关键字static static用来修饰的结构…...
JavaScript 中 let 和 var 的区别
JavaScript 中 let 和 var 的区别 在 JavaScript 中,let 和 var 都是用来声明变量的关键字,但它们在作用域、提升(hoisting)和重新赋值方面存在显著差异。理解这些差异对于编写高效和无bug的JavaScript代码至关重要。 作用域 v…...
React第十一章(useReducer)
useReducer useReducer是React提供的一个高级Hook,没有它我们也可以正常开发,但是useReducer可以使我们的代码具有更好的可读性,可维护性。 useReducer 跟 useState 一样的都是帮我们管理组件的状态的,但是呢与useState不同的是 useReducer…...
VUE3实现古典音乐网站源码模板
文章目录 1.设计来源1.1 网站首页页面1.2 古典音乐页面1.3 著名人物页面1.4 古典乐器页面1.5 历史起源页面1.6 登录页面1.7 注册页面 2.效果和源码2.1 动态效果2.2 目录结构 源码下载万套模板,程序开发,在线开发,在线沟通 作者:xc…...
1.nginx安装【Docker】
一、 拉取 最新 nginx 镜像 docker pull nginx二、 拷贝配置文件 2.1 目的 【数据持久化】容器被删除时,它内部的所有数据也会丢失。通过将数据目录挂载到宿主机,可以确保重要数据得到持久化保存 【方便数据管理和调试】通过卷挂载,可以直接…...
Linux -- 共享内存(1)
目录 共享内存 共享内存相关函数 ftok 函数 -- 获取 key 值 什么是 key? 如何生成 key ? 参数: 返回值: 封装: shmget 函数 -- 获取 shmid 值 什么是 shmid? shmid 和 key 的区别? …...
冒泡排序和二分查找--go
冒泡排序的逻辑 二分查找的逻辑 func bubbleSort(arr *[5]int){//冒泡排序fmt.Println(*arr)temp : 0for j : len(*arr); j > 0; j-- {for i : 0; i < j-1; i {temp (*arr)[i]if((*arr)[i] > (*arr)[i1]){(*arr)[i] (*arr)[i1](*arr)[i1] temp}}} }func binaryF…...
springboot RedisTemplate支持多个序列化方式
前提纪要:因为业务变动,需要在原先只支持protobuf的前提序列化的前提下,新增正常的序列化读取数据所以在原先的基础上进行优化。文章用于记忆。 话不多说直接上代码 Configuration AutoConfigureAfter(RedisAutoConfiguration.class) Import…...
开源项目-拍卖管理系统
哈喽,大家好,今天主要给大家带来一个开源项目-拍卖管理系统 拍卖管理系统主要有拍卖品管理,我的拍卖,拍卖详情,拍卖品信息修改,发布拍卖品等功能 登录 拍卖商品管理 主要用于查看、竞拍拍卖商品的信息 我…...
Python小游戏14——雷霆战机
首先,你需要确保安装了Pygame库。如果你还没有安装,可以使用pip来安装: bash pip install pygame 代码如下: python import pygame import sys import random # 初始化Pygame pygame.init() # 设置屏幕大小 screen_width 800 scr…...
81页PPT | 企业数字化底座与数字化转型方案
方案内容涵盖了企业数字化转型的议程、集团管理分析类应用建设的现状与问题、数字化建设的目标、预期收益、总体架构、数据产生层、数据交换层、数据存储层、数据应用层、数据管控层等多个方面。方案详细描述了数据从产生、交换、存储到应用的全过程,以及如何通过数…...
R语言笔记(五):Apply函数
文章目录 一、Apply Family二、apply(): rows or columns of a matrix or data frame三、Applying a custom function四、Applying a custom function "on-the-fly"五、Applying a function that takes extra arguments六、Whats the return argument?七、Optimized…...
Newsqueak:在 Go 之前的一门语言
写在前面 学习一个东西的一种很好的方法,就是去了解这个东西的历史。在我们学习 Go 的过程中,同样也可以去了解下在 Go 之前的一些事情。 内容 Rob Pike 是 Go 语言的作者之一,早年他在贝尔实验室工作,也是 Unix 团队的成员。 …...
世界酒中国菜与另可数字平台达成战略合作
世界酒中国菜与另可数字平台达成战略合作,共推行业发展新高度 近日,在行业内引起广泛关注的“世界酒中国菜”项目,与“另可”数字平台成功举行了战略合作签约仪式。这一重要合作不仅是双方发展历程中的重要里程碑,更是继世界酒中…...
ElasticSearch基础篇——概念讲解,部署搭建,使用RestClient操作索引库和文档数据
目录 一、概念介绍 二、Elasticsearch的Docker容器安装 2.1拉取elasticsearch的镜像文件 2.2运行docker命令启动容器 2.3通过访问端口地址查看部署情况 三、安装Kibana容器 3.1拉取Kibana镜像容器指令(默认拉取最新版本): 3.2拉取完…...
Jieba分词实战:5分钟搞定中文文本词频统计(附完整代码)
Jieba分词实战:5分钟搞定中文文本词频统计(附完整代码) 中文文本处理是自然语言处理(NLP)的基础环节,而分词则是中文文本处理的第一步。不同于英文等空格分隔的语言,中文文本需要专门的工具进行…...
vLLM生产-解码分离架构:从概念到部署的吞吐优化实践
1. 为什么需要生产-解码分离架构 第一次部署大模型在线服务时,我盯着监控面板上的GPU利用率曲线直挠头——为什么计算单元总是间歇性满载又突然空闲?后来发现这是典型的Prefill-Decode耦合架构的弊端。就像餐厅里同一个厨师既要负责备菜(切配…...
【独家首发】Polars 2.0 vs Pandas 2.2清洗基准测试:10亿行CSV清洗仅耗11.3秒?真相在此
第一章:Polars 2.0大规模数据清洗的范式跃迁Polars 2.0 不再是 Pandas 的轻量替代品,而是一次面向现代硬件与真实业务场景的数据处理范式重构。其核心跃迁体现在零拷贝内存布局、全链路惰性执行引擎(LazyFrame)与原生支持的并行流…...
老旧Mac如何重获新生?OCLP-Mod带来的系统升级解决方案
老旧Mac如何重获新生?OCLP-Mod带来的系统升级解决方案 【免费下载链接】OCLP-Mod A mod version for OCLP,with more interesting features. 项目地址: https://gitcode.com/gh_mirrors/oc/OCLP-Mod 随着科技的快速迭代,许多曾经性能卓越的Mac设备…...
STM32F103C8T6驱动无FIFO的OV7670:从时序理解到图像显示的完整避坑指南
STM32F103C8T6驱动无FIFO的OV7670:从时序理解到图像显示的完整避坑指南 当你第一次将OV7670摄像头模块连接到STM32F103C8T6开发板时,可能会被那些看似简单的时序信号搞得晕头转向。VSYNC、HREF、PCLK——这些信号线背后隐藏着图像数据采集的全部秘密。本…...
3大核心步骤打造专属翻译引擎:Zotero PDF Translate高级扩展指南
3大核心步骤打造专属翻译引擎:Zotero PDF Translate高级扩展指南 【免费下载链接】zotero-pdf-translate 支持将PDF、EPub、网页内容、元数据、注释和笔记翻译为目标语言,并且兼容20多种翻译服务。 项目地址: https://gitcode.com/gh_mirrors/zo/zoter…...
5分钟搞懂3GPP NTN标准:从Release16到19的关键技术演进与实战应用
5分钟搞懂3GPP NTN标准:从Release16到19的关键技术演进与实战应用 当全球通信行业将目光投向低轨卫星星座与高空平台时,3GPP的NTN(非地面网络)标准正在重塑连接边界。本文将以工程师视角,带您穿透技术文档迷雾…...
新手福音:利用快马平台生成你的第一个数学公式编辑器入门项目
最近在自学前端开发,一直想尝试做个数学公式编辑器来练手。作为一个完全的新手,从零开始写这种项目确实有点无从下手。不过我发现用InsCode(快马)平台可以很轻松地生成基础代码框架,再根据自己的需求调整完善,特别适合像我这样的初…...
2026年网络安全报告
2026年网络安全报告 2026年网络安全报告分析了2025年全球网络威胁形势,指出攻击速度和规模加快,人工智能、身份滥用等技术被攻击者整合,同时预测了2026年行业趋势并给出首席信息安全官建议。 网络安全趋势 不止电子邮件:多渠道…...
联想M920x黑苹果终极指南:从零构建完美macOS系统
联想M920x黑苹果终极指南:从零构建完美macOS系统 【免费下载链接】M920x-Hackintosh-EFI Hackintosh Opencore EFIs for M920x 项目地址: https://gitcode.com/gh_mirrors/m9/M920x-Hackintosh-EFI 你是否想让联想M920x这款紧凑型主机运行macOS系统ÿ…...
