【蓝桥杯】DS18B20基本应用
学习内容:
- 能够独立写驱动代码。
- 获取温度整。
一、底层函数驱动
1、DS18B20基本应用
(1)ds18b20芯片手册
由芯片手册Figure2.中看出
先读出高(MS BYTE) 8位、低(LS BYTE)8位,再从Table1中,发现+125中对应是 0000 0111 1101 0000 (十进制2000)
整数部分的数据都是后四位为零,故如果我们需要整理整数温度
方法举例(+125°):
(1)只需要将 0000 0111 1101 0000右移4位 得出 0000 0111 1101(刚好是十进制125)
(2) 或者直接将16位的数0000 0111 1101 0000(DIGITAL OUTPUT) 乘以0.0625也可处理成整数;
如果是需要读出一位小数,那么需要将16位的数乘以0.625(放大10倍处理)
如果是需要读出二位小数,那么需要将16位的数乘以.6.25(放大100倍处理)
注意 上面的处理方法是,需要谨慎,乘以一个数后不能溢出
(2)onewire.c
// 需要在onewire.c里面写的
// onewire.c
//DS18B20温度采集程序:整数
unsigned int read_wendu()//int 型
{unsigned char low,high;//char 型unsigned int temp;//int 型init_ds18b20();//DS18B20初始化Write_DS18B20(0xcc);//跳过row字节Write_DS18B20(0x44);//装换温度Delay_OneWire(80);//延时init_ds18b20();//DS18B20初始化Write_DS18B20(0xcc);//跳过row字节Write_DS18B20(0xbe);//存储温度low=Read_DS18B20();//读取低8位high=Read_DS18B20();//读取高8位temp=high&0x0f;//参考DS18B20手册 去掉MS BYTE前的SSSStemp=temp<<8|low;//根据DS18B20手册 高低八位整合成十六位 DIGITAL OUTPUTreturn (temp);//返回
}
温度底层记忆方法:(转换温度、读取温度、整理温度数据)
(1)定义char型用于将读出数据分别放入高低,int型用于整合16位数的温度
(2)进行温度转换,先初始化,在跳过内存字节,直接转化温度,后面加一定延时以便温度转化完成
(3)进行温度读取,再初始化,同理跳过内存字节,找到存储温度地址,直接读出温度底高8位
(4)整理温度数据,返回16位数据。
在main函数使用,别忘记将函数unsigned int read_wendu()添加到onewire.h
// 需要在onewire.h里面写的
// onewire.h
#ifndef _ONEWIRE_H
#define _ONEWIRE_H
//函数声明
unsigned char Read_DS18B20(void);
unsigned int read_wendu();
#endif
(3)主函数使用main.c
读取原数据:wendu=read_wendu();//取原16位值(DIGITAL OUTPUT) 处理成整数:方法1: wen1=wendu>>4&0x007f;方法2: wen1=wendu*0.0625;处理成保留一位小数:wen1=wendu*0.625;处理成保留二位小数:wen2=wendu*6.25;
// 需要在main调用里面写的
void WenduSMG(){wendu=read_wendu();//读取16位原数据wen1=wendu*0.0625;//整数处理//wen2=wendu*6.25;//-----------------数码管显示-------------lnti_SMG(6,Tab[wen1/10%10]);Delay1ms();lnti_SMG(7,Tab[wen1%10]);Delay1ms();}
【蓝桥杯】DS18B20基本应用相关推荐
- 蓝桥杯单片机DS18B20代码注释及部分时序图
蓝桥杯单片机蓝桥杯单片机DS18B20代码注释及部分时序图 #include<STC15F2K60S2.H> #include<intrins.h>#define uchar ...
- 【蓝桥杯单片机11】单总线温度传感器DS18B20的基本操作
[蓝桥杯单片机11]单总线温度传感器DS18B20的基本操作 广东职业技术学院 欧浩源 单总线数字温度传感器DS18B20几乎成了各类单片机甚至ARM实验板的标配模块来,在蓝桥杯的往届省赛和国赛中,这 ...
- 蓝桥杯单片机(九)DS18B20温度测量(四位小数和负数显示)
上一次讲了DS18B20的整数温度显示 蓝桥杯单片机(八)DS18B20温度测量(整数显示) 但近几年有出题小数部分的温度显示,首先打开DS18B20的数据手册,如图 通过这张表,我就知道读取数据时, ...
- 【小蜜蜂蓝桥杯笔记】DS18B20温度传感器的使用
DS18B20 更新(需要注意的部分) 进行带小数点的高精度转换时,需要750ms的延时,建议将开始转换和读取数据的函数分开写,利用定时器保证750ms之后再去读取,不然会出现很奇怪的数字 数据处理的 ...
- 蓝桥杯各模块使用总结 时钟DS1302 ,ADC DAC PCF8591 ,温度传感器DS18B20 存储AT24C02
2021/4/14 周三 下午 距蓝桥杯仅四天 为复习各模块的使用,防止在比赛时脑子抽住 首先是资源数据包里的底层代码驱动 驱动代码说明 1-本文件夹中提供的驱动代码供参赛选手完成程序设计参考之用. ...
- 【蓝桥杯】——DS18B20模块
目录 一.DS18B20基本概念 (一).DS18B20的基本概念 (二).DS18B20的基本信息 二.DS18B20介绍 (一)DS18B20内部存储结构 (二)DS18B20系统配置寄存器数据格 ...
- 蓝桥杯单片机之DS18B20温度传感器
蓝桥杯单片机之DS18B20温度传感器 简述: 根据提供的芯片数据手册可以获取的信息: ROM操作命令: 存储器操作命令 温度转换及温度获取 温度寄存器格式: 获取温度的具体操作 温度数据处理与数码管 ...
- 蓝桥杯单片机DS18b20单总线测温模块常见问题解决
蓝桥杯单片机DS18b20单总线测温模块常见问题解决 有道是:"溪水声声留我住,梅花朵朵唤人回" DS18b20测温模块作为一个比较简单.稳定的蓝桥杯单片机外设模块, 使用时却经常 ...
- 蓝桥杯省赛考点_【蓝桥杯单片机01】从历年决赛真题中寻找单片机常见的考点...
[蓝桥杯单片机01]从历年决赛真题中寻找单片机常见的考点 广东职业技术学院 欧浩源 [第三届:门禁系统] 1.功能简述 "门禁系统"主要有两种工作模式: 模式1:7:00-22: ...
- 蓝桥杯单片机第七届省赛-模拟风扇控制系统
九层妖塔 起于垒土 ● 改编自国信长天蓝桥杯官方蓝皮书例程,按照自己的习惯进行了补充和修改 蓝桥杯单片机第七届省赛-模拟风扇控制系统 Notes1:按键按下后在某些情况下给一定的缓冲时间 Notes2 ...
最新文章
- byte转文件流 下载到本地
- Cesium中级教程9 - Advanced Particle System Effects 高级粒子系统效应
- SQL Server-游标使用
- windows 10配置VS+MPI编程环境
- 成功将用intelli idea 建立的项目打包成jar文件,并在Linux上成功运行
- XML中需要转义的字符
- vb.net 判断是否为ip 正则_PHP实现IP白名单
- 怎样使用C# 获取WIFI的连接状态?
- 理解UIApplication
- yum list 报错linux,centos7下运行yum list 出现如下报错 求教!
- 概率图模型和马尔可夫模型
- 金山打字测试一分钟软件,金山打字2006——一款打字练习及测试软件.doc
- Gensim的维基百科语料库中文词向量训练错误整理
- 64位处理器_计算机微处理器介绍
- Git 推送命令报错
- 汉字对应的unicode编码
- 寒江独钓:Windows内核安全编程(china-pub到货首发)
- redis切换db方法
- 工信部数字电视标准符合性检测中心发布的
- Don't Call Yourself A Programmer, And Other Career
热门文章
- leetcode-855. 考场就座
- 智哪儿观察:2021光亚展什么智能值得看?
- 微信公众号开发-Java版学习笔记
- qq分享提示设备未授权_无论大池小池,认真做过滤的就是好池!(华侨城鱼池过滤案例分享)...
- 吉林大学计算机学院王健,吉林大学计算机科学与技术学院研究生导师简介-王 健...
- webSocket实现点对点、群发消息通知
- js登录特效+ajax提交表单+异步刷新验证
- 如何成为一名合格的工业机器人应用工程师
- OMAP5 uEVM SDK安装介绍
- 学生学籍信息管理系统