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

蓝桥杯 单片机 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以及常见使用例子

媒体查询&#xff08;media&#xff09;介绍 媒体查询&#xff08;media&#xff09;是 CSS 中用来针对不同的设备特性&#xff08;如屏幕尺寸、分辨率等&#xff09;应用不同样式的一种技术。通过媒体查询&#xff0c;可以使页面在不同设备上呈现不同的布局&#xff0c;实现响…...

centos系统防火墙SELinux设置指令

SELinux&#xff08;Security-Enhanced Linux&#xff09;的配置可以通过一系列步骤和命令来完成。以下是一些基本的配置SELinux的方法和步骤&#xff1a; 一、查看SELinux状态 首先&#xff0c;你需要查看SELinux的当前状态。可以使用以下命令&#xff1a; getenforce 该命…...

记录如何在RK3588板子上跑通paddle的OCR模型

官网文档地址 rknn_zoo RKNPU2_SDK RKNN Model Zoo 一、PC电脑是Ubuntu22.04系统中完成环境搭建(板子是20.04&#xff09; 安装模型转换环境 ​conda create -n rknn2 python3.10 conda activate rknn2 安装Ubuntu依赖包 su…...

通过AWS Bedrock探索 Claude 的虚拟桌面魔力:让 AI 代替你动手完成任务!

前言 大家好&#xff0c;昨夜Anthropic 发布了更新。现在 Claude 3.5 Sonnet&#xff08;V2&#xff09; 和 Claude 3.5 Haiku&#xff0c;以及名为 computer use 的新功能已经作为公开测试版发布了。 Introducing computer use, a new Claude 3.5 Sonnet, and Claude 3.5 Ha…...

Java面向对象编程高阶(一)

Java面向对象编程高阶&#xff08;一&#xff09; 一、关键字static1、static修饰属性2、静态变量与实例变量的对比3、static修饰方法4、什么时候将属性声明为静态的&#xff1f;5、什么时候将属性声明为静态的&#xff1f;6、代码演示 一、关键字static static用来修饰的结构…...

JavaScript 中 let 和 var 的区别

JavaScript 中 let 和 var 的区别 在 JavaScript 中&#xff0c;let 和 var 都是用来声明变量的关键字&#xff0c;但它们在作用域、提升&#xff08;hoisting&#xff09;和重新赋值方面存在显著差异。理解这些差异对于编写高效和无bug的JavaScript代码至关重要。 作用域 v…...

React第十一章(useReducer)

useReducer useReducer是React提供的一个高级Hook,没有它我们也可以正常开发&#xff0c;但是useReducer可以使我们的代码具有更好的可读性&#xff0c;可维护性。 useReducer 跟 useState 一样的都是帮我们管理组件的状态的&#xff0c;但是呢与useState不同的是 useReducer…...

VUE3实现古典音乐网站源码模板

文章目录 1.设计来源1.1 网站首页页面1.2 古典音乐页面1.3 著名人物页面1.4 古典乐器页面1.5 历史起源页面1.6 登录页面1.7 注册页面 2.效果和源码2.1 动态效果2.2 目录结构 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xc…...

1.nginx安装【Docker】

一、 拉取 最新 nginx 镜像 docker pull nginx二、 拷贝配置文件 2.1 目的 【数据持久化】容器被删除时&#xff0c;它内部的所有数据也会丢失。通过将数据目录挂载到宿主机&#xff0c;可以确保重要数据得到持久化保存 【方便数据管理和调试】通过卷挂载&#xff0c;可以直接…...

Linux -- 共享内存(1)

目录 共享内存 共享内存相关函数 ftok 函数 -- 获取 key 值 什么是 key&#xff1f; 如何生成 key &#xff1f; 参数&#xff1a; 返回值&#xff1a; 封装&#xff1a; shmget 函数 -- 获取 shmid 值 什么是 shmid&#xff1f; shmid 和 key 的区别&#xff1f; …...

冒泡排序和二分查找--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支持多个序列化方式

前提纪要&#xff1a;因为业务变动&#xff0c;需要在原先只支持protobuf的前提序列化的前提下&#xff0c;新增正常的序列化读取数据所以在原先的基础上进行优化。文章用于记忆。 话不多说直接上代码 Configuration AutoConfigureAfter(RedisAutoConfiguration.class) Import…...

开源项目-拍卖管理系统

哈喽&#xff0c;大家好&#xff0c;今天主要给大家带来一个开源项目-拍卖管理系统 拍卖管理系统主要有拍卖品管理&#xff0c;我的拍卖&#xff0c;拍卖详情&#xff0c;拍卖品信息修改&#xff0c;发布拍卖品等功能 登录 拍卖商品管理 主要用于查看、竞拍拍卖商品的信息 我…...

Python小游戏14——雷霆战机

首先&#xff0c;你需要确保安装了Pygame库。如果你还没有安装&#xff0c;可以使用pip来安装&#xff1a; bash pip install pygame 代码如下&#xff1a; python import pygame import sys import random # 初始化Pygame pygame.init() # 设置屏幕大小 screen_width 800 scr…...

81页PPT | 企业数字化底座与数字化转型方案

方案内容涵盖了企业数字化转型的议程、集团管理分析类应用建设的现状与问题、数字化建设的目标、预期收益、总体架构、数据产生层、数据交换层、数据存储层、数据应用层、数据管控层等多个方面。方案详细描述了数据从产生、交换、存储到应用的全过程&#xff0c;以及如何通过数…...

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 之前的一门语言

写在前面 学习一个东西的一种很好的方法&#xff0c;就是去了解这个东西的历史。在我们学习 Go 的过程中&#xff0c;同样也可以去了解下在 Go 之前的一些事情。 内容 Rob Pike 是 Go 语言的作者之一&#xff0c;早年他在贝尔实验室工作&#xff0c;也是 Unix 团队的成员。 …...

世界酒中国菜与另可数字平台达成战略合作

世界酒中国菜与另可数字平台达成战略合作&#xff0c;共推行业发展新高度 近日&#xff0c;在行业内引起广泛关注的“世界酒中国菜”项目&#xff0c;与“另可”数字平台成功举行了战略合作签约仪式。这一重要合作不仅是双方发展历程中的重要里程碑&#xff0c;更是继世界酒中…...

ElasticSearch基础篇——概念讲解,部署搭建,使用RestClient操作索引库和文档数据

目录 一、概念介绍 二、Elasticsearch的Docker容器安装 2.1拉取elasticsearch的镜像文件 2.2运行docker命令启动容器 2.3通过访问端口地址查看部署情况 三、安装Kibana容器 3.1拉取Kibana镜像容器指令&#xff08;默认拉取最新版本&#xff09;&#xff1a; 3.2拉取完…...

Audacity终极指南:5步掌握免费专业音频编辑全流程

Audacity终极指南&#xff1a;5步掌握免费专业音频编辑全流程 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 还在为音频编辑软件的高昂费用而犹豫&#xff1f;想要一款功能全面、完全免费的专业级音频处理工具&a…...

LLM大模型开发实战:6个爆款开源项目,小白也能轻松入门!

本文介绍了6个GitHub上的热门LLM&#xff08;大型语言模型&#xff09;开源项目&#xff0c;包括Datawhale的"LLM-Universe"和"LLM-Cookbook"、微软的"Generative AI for Beginners"、mlabonne的"LLM-Course"、liguodongiot的"LL…...

STM32F407+UCOSIII实战:手把手教你从零搭建一个能走会避障的六足机器人(附完整源码/PCB/Solidworks图纸)

STM32F407UCOSIII实战&#xff1a;从零构建智能六足机器人全流程解析 六足机器人作为仿生机器人中的经典形态&#xff0c;其稳定性和地形适应能力远超轮式与四足结构。本文将带你完整实现一个基于STM32F407和UCOSIII的智能六足机器人&#xff0c;涵盖机械设计、电路开发、运动…...

DFR0554双芯片显示模块驱动解析:PCA9633与AIP31068协同控制

1. DFR0554 显示模块驱动深度解析&#xff1a;基于 PCA9633 与 AIP31068 的双芯片协同架构 DFR0554 是 DFRobot 推出的一款集成化智能显示模块&#xff0c;其核心并非单一显示控制器&#xff0c;而是由两颗功能互补的专用 IC 协同构成&#xff1a; PCA9633 LED 驱动器 与 A…...

基于yz-bijini-cosplay的.NET应用开发:AI功能集成实践

基于yz-bijini-cosplay的.NET应用开发&#xff1a;AI功能集成实践 1. 为什么要在.NET应用里集成cosplay风格生成能力 最近有好几位做数字内容平台的朋友问我&#xff1a;“我们给动漫爱好者提供社区服务&#xff0c;能不能在自己的App里直接生成角色同款泳装或Cosplay造型&am…...

Docker容器命名冲突的终极解决方案:删除与重命名实战指南

1. 为什么Docker容器会命名冲突&#xff1f; 当你第一次看到"Docker You have to remove (or rename) that container to be able to reuse that name"这个错误提示时&#xff0c;可能会觉得一头雾水。其实这个问题的本质很简单&#xff1a;就像你电脑上不能有两个同…...

3个超实用方法:115proxy-for-Kodi插件实现云端视频流畅播放完全指南

3个超实用方法&#xff1a;115proxy-for-Kodi插件实现云端视频流畅播放完全指南 【免费下载链接】115proxy-for-kodi 115原码播放服务Kodi插件 项目地址: https://gitcode.com/gh_mirrors/11/115proxy-for-kodi 你是否曾因115网盘中的高清视频无法在Kodi上流畅播放而困扰…...

51单片机+DAC0832信号发生器实战:从硬件搭建到波形调试全记录(附避坑指南)

51单片机DAC0832信号发生器实战&#xff1a;从硬件搭建到波形调试全记录&#xff08;附避坑指南&#xff09; 在电子设计领域&#xff0c;信号发生器是工程师和爱好者不可或缺的工具。传统商用设备虽然功能强大&#xff0c;但对于学习嵌入式系统和数模转换原理而言&#xff0c;…...

前端开发者必看:5个提升AI提示词效果的实战技巧(附代码示例)

前端开发者必看&#xff1a;5个提升AI提示词效果的实战技巧&#xff08;附代码示例&#xff09; 当ChatGPT帮你生成React组件却总跑偏&#xff0c;当Copilot给出的代码建议总差那么点意思——作为前端开发者&#xff0c;你可能已经意识到&#xff1a;AI工具的表现力&#xff0c…...

基于python框架的大学生创新创业项目管理系统vue

目录功能模块分析项目管理模块评审管理模块资源协同模块技术实现要点数据安全方案扩展性设计项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作功能模块分析 用户管理模块 角色划分&#xff1a;学生、导师、管理员&#xff08;支…...