CT107D蓝桥杯DS18B20使用

蓝桥杯单片机CT107D开发板实战:手把手教你用DS18B20测温度(附完整代码) 本文详细解析了蓝桥杯CT107D开发板与DS18B20数字温度传感器的硬件连接、单总线协议实现及温度测量代码实战。从初始化时序到温度数据采集处理,提供完整的模块化解决方案,助力参赛选手快速掌握单片机温度测量技术。 阅读详情

弄了一天的DS18B20,最后才发现是官方给的单总线驱动有问题

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


就是这个驱动里的延时函数,延时不够,所以一直没有成功。

这里应该要加一点延时,这样子就可以了,不知道官方是要干嘛,,,,,,,,

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


//有了驱动,我们直接写一个读温度函数就ok了

//DS18B20温度采集程序:整数
unsigned char read_wendu(void)
{
    unsigned char low,high;
  char temp;
  init_ds18b20();
  Write_DS18B20(0xCC);//跳过ROM指令
  Write_DS18B20(0x44); //启动温度转换
  Delay_OneWire(200);
  init_ds18b20();
  Write_DS18B20(0xCC);
  Write_DS18B20(0xBE); //读取寄存器
  low = Read_DS18B20(); //低字节
  high = Read_DS18B20(); //高字节
  temp = high<<4;
  temp |= (low>>4);
  return temp;
}


这个函数是读出2位正温度,下面这个是保留小数点后2位。

int read_wendu()
{
  unsigned char low,high;
int temp;
float t;
init_ds18b20();
Write_DS18B20(0xcc);
Write_DS18B20(0x44);
Delay_OneWire(200);
init_ds18b20();
Write_DS18B20(0xcc);
Write_DS18B20(0xbe);
low=Read_DS18B20();
high=Read_DS18B20();
temp=(high<<8)|low;
if(temp<0){
temp=~(temp-1);
}
t=temp*0.0625;
temp=t*100+0.5;
return temp;
}


下面附上单总线代码

sbit DQ = P1^4;
//单总线延时函数
void Delay_OneWire(unsigned int t)
{
char z;
  while(t--)
for(z=0;z<12;z++);
}


//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);
  
return initflag;
}


//通过单总线向DS18B20写一个字节
void Write_DS18B20(unsigned char dat)
{
unsigned char i;
for(i=0;i<8;i++)
{
DQ = 0;
DQ = dat&0x01;
Delay_OneWire(5);
DQ = 1;
dat >>= 1;
}
Delay_OneWire(5);
}


//从DS18B20读取一个字节
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;
}


原理图分享一(单片机_CT107D训练平台使用说明与电路原理图) 这是一个51的原理图,以前上大学的时候参加蓝桥杯使用的一个板子。 阅读详情

相关推荐

单片机_CT107D训练平台电路原理图\蓝桥杯训练板\显示模块\限流电阻的作用\锁存器的作用\LCD1602显示电路

对于我用的这款led最大值20mA,5mA-20mA都能发光,就是电流越大亮度越高,20mA时候已经是最大值,而且用这个值会降低led的使用寿命,所以低一点就好了,我给他弄10mA试试。这里的限流其实还起到分压的作用,比如我们单片机出来的电压是3.3V、选择推挽输出大概是25mA+的电流。而led的压降是2V,正常发光电流是20mA。1.3v/10mA=130Ω(这里只是举个例子,一般都是用650Ω:3.3-2=1.3V,1.3V/2mA=650Ω)那么我配出的电阻值为:3.3v-2v=1.3v。

让学习成为一种习惯 1791

[蓝桥杯单片机] - 蓝桥杯单片机CT107D竞赛板各模块代码分析

蓝桥杯单片机竞赛平台CT107D模块代码编程分析,主要提供赛场限定资料情况下的编程思路。

川九_EveRYouNg 的博客 6442

51单片机单总线通信详解:以蓝桥杯CT107D板载DS18B20为例,手把手时序分析

本文深入解析51单片机与DS18B20的单总线通信机制,以蓝桥杯CT107D开发板为例,详细讲解时序图分析、延时计算及实战操作。通过代码示例和调试技巧,帮助开发者掌握单总线协议的精髓,提升嵌入式开发能力。

weixin_30947043的博客 576

蓝桥杯模块学习13——DS18B20(深夜学习——单片机)

蓝桥杯模块学习12——DS18B20

weixin_63568691的博客 2181

蓝桥杯CT107D:DS18B20温度传感器

简介 DS18B20是单线接口数字温度传感器,测量单位位:-55°C~+125°C,-10°C~+85°C测量范围内精度是±0.5°C,测量分辨率位9~12位(复位值为 12 位,最大转换时间为 750ms)。 DS18B20 的暂存器如表 所示 DS18B20 的操作步骤分为3步:复位、ROM指令、功能指令。其ROM 命令和功能命令分别如表: 国信长天单片机竞赛实训平台的 DS18B20 电路图如下图所示: 在竞赛的时候,官方会给选...

weixin_56483642的博客 1477

基于 CT107D 单片机实验

2.酷炫复杂的开机方式:数码管上居中显示“PoT.”,并保持 1.5 秒。LED 灯 1 2 7 8 按顺序间隔 1s 闪烁,4s 后 3 4 5 6 灯以 1s 间隔闪烁,2 秒后全亮。这是一个比较具体的任务需求,需要对单片机进行编程实现。该代码仅供参考,具体实现还需要根据实际硬件连接情况进行调整。1.开发板上电后,关闭蜂鸣器,继电器等无关外设;

走向CTO的路上... 834

【蓝桥杯】CT107D单片机之DS18B20

文章目录1、DS18B20的基本概述2、DS18B20内部结构3、DS18B20的内部存储结构4、DS18B20的数据处理5、DS18B20的复位时序6、DS18B20的写时序(低位先发)7、DS18B20的读时序(低位先读)8、DS18B20的温度转换与读取流程9、DS18B20温度采集完整代码1、main.c2、temp.c3、temp.h 1、DS18B20的基本概述 工作电压:3.0V~5.5V。 测量范围:-55摄氏度~+125摄氏度。 通信方式:单总线,数据线接上拉电阻,使总线空闲时处于高电平。

1simple的博客 3670

(超全面,超基础)Kriging插值推导理论笔记,算法,普通克里金

最近老师让我再重新推导一下克里金插值的方法如何求出预测结果,于是我又无数次地打开了大神的推导原理过程链接????:克里金(Kriging)插值的原理与公式推导 作者:xg1990,但是不可避免地在推导过程中,数学知识基础薄弱的我卡住在一些公式推导的步骤中。 所以就想基于上面大神的推导过程,将里面的推导写得更具体些,当然觉得毫不吃力可以进行推导的大神们可以不看我的注释,直接点开链接看就好。 我看到csdn中很多关于克里金推导的博客里面的内容直接截屏或者复制了上面链接里大神发表的内容,也不注

Olivel1997的博客 1万+

蓝桥杯CT107D之ds18b20

单总线协议简介 单总线延时函数 //单总线延时函数,此处延时函数很重要,根据自己的时钟频率而定 void Delay_OneWire(unsigned int t) //Y5指令集,FOSC:11059200L,软件延时15us(t=1) { unsigned char i; for(;t>0;t--) { i = 39; while(--i); } } 单总线写时序 //通过单总线向DS18B20写一个字节 void Write_DS18B20(unsigned c

qq_42676921的博客 787

Halcon与C#联合编程(一):使用S7协议实现机器视觉上位机与西门子PLC联动

本项目技术栈:C#基础,多线程,Halcon DirectShow,Halcon形状检测,Halcon QR码识别,西门子S7通讯协议,西门子PLC为核心的下位机及执行元件

虎鲸不是鱼 1万+

【GAN实战】基于pytorch-CycleGAN与pix2pix的自定义数据集训练全攻略

本文详细解析了基于PyTorch的CycleGAN与pix2pix模型在自定义数据集上的完整训练流程。核心在于根据数据是否成对来正确选择模型:pix2pix适用于严格配对的“孪生”数据,而CycleGAN则擅长处理非配对的“散装”数据集。文章从数据准备、配置训练到测试应用,提供了全链路实战指南与关键参数调优心得,帮助开发者高效实现图像到图像的风格转换。

x2y3z4a5b的博客 704

蓝桥杯CT107D实战:DS18B20单总线驱动与避坑指南

单总线协议通过一根数据线实现供电与通信,依靠精确的微秒级时序编码信息,在引脚资源紧张的嵌入式系统中极具价值。DS18B20作为典型单总线数字温度传感器,广泛应用于蓝桥杯CT107D等单片机平台,其驱动核心在于复位脉冲、读写时隙的延时控制。实际开发中常因时序偏差导致读数异常,需结合硬件连接与中断管理进行排查。掌握单总线思维后,可快速迁移至DHT11、红外接收等类似场景。

weixin_29193359的博客 261

ESP32 IDF开发 应用篇⑲ 空中升级OTA

在实际产品开发过程中,在线升级可以远程解决产品软件开发引入的问题,更好地满足用户需求。OTA(空中)更新是使用 Wi-Fi 连接而不是串行端口将固件加载到 ESP 模块的过程。(1)、ESP32 的 OTA 升级有三种方式:·Arduino IDE:主要用于软件开发阶段,实现不接线固件烧写·Web Browser:通过 Web 浏览器手动提供应用程序更新模块·HTTP Server:自动使用http服务器 - 针对产品应用在三种升级情况下,必须通过串行端口完成第一个固件上传。

lu330274924的博客 3324

蓝桥杯单片机CT107D ds18b20驱动

蓝桥杯单片机CTD107 ds18b20 比赛时官方提供用驱动函数,但是不完整,需要修改相应的.c和.h文件, 第一步:修改单总线延时函数,只需要在延时函数中添加一行即可 void Delay_OneWire(unsigned int t) { t=t*12; //本行为添加 while(t--); } 第二步:修改.h文件,将#include &amp;amp;quot;reg52.h&amp;amp;quot;改为#include ...

qq_41676952的博客 816

MATLAB代码实现了船舶航线优化的功能,使用混合遗传算法(结合模拟退火算法)来寻找从大连港到格拉斯通港的最优航线,同时考虑了船舶的参数、气象数据(风速、风向、有效波高、波浪阻力系数等)对航行的影响

这段MATLAB代码主要实现了船舶航线优化的功能,使用混合遗传算法(结合模拟退火算法)来寻找从大连港到格拉斯通港的最优航线,同时考虑了船舶的参数、气象数据(风速、风向、有效波高、波浪阻力系数等)对航行的影响。通过以上步骤,该代码能够找到一条在考虑船舶性能和气象条件下,从大连港到格拉斯通港的较优航线,最小化燃油消耗和航行时间的加权和。

AI的内部世界的博客 513

【Proteus仿真】点亮小灯系列仿真——小灯闪烁/流水灯/交通灯

本文介绍了基于AT89C51单片机的LED控制案例,共包含5个实例:1)单个LED闪烁;2)共阳极流水灯;3)共阴极流水灯;4)花样流水灯;5)交通灯模拟。每个案例详细说明了电路原理图、接线方式和控制程序实现,其中重点讲解了PWM调光原理及其在LED控制中的应用。案例由简至繁,从基础I/O控制到复杂花样显示,最后实现交通灯逻辑控制,展示了单片机在LED控制中的典型应用方法。文中提供了完整的源代码,便于读者理解和实践。

XU157303764的博客 1883

蓝桥杯CT107D DS18B20单总线驱动实战:时序、代码与避坑指南

单总线协议通过一根数据线实现双向通信,依靠精确的时序划分区分命令与数据。DS18B20作为典型单总线器件,在蓝桥杯CT107D平台上需软件模拟复位、写时隙、读时隙,并正确解析16位温度数据。掌握其驱动原理,不仅能解决温度读取中的85℃、跳变等常见问题,还能将单总线思维迁移至DHT11等器件,提升引脚资源受限场景下的工程实践能力。

weixin_30110543的博客 213

【雕爷学编程】Arduino动手做(75)---TTL转RS-485模块之二线制可以实现真正的多点双向通信

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验七十五:TTL转RS-485模块 MAX485 RS485模块 MAX485 是一个8.

雕爷学编程 1万+

蓝桥杯CT107D单片机入门避坑指南:从LED到DS18B20,我的踩坑实录

本文分享了蓝桥杯CT107D单片机开发中的常见问题与解决方案,从LED控制到DS18B20温度传感器的实战经验。详细解析了138译码器使用、数码管重影消除、DS18B20时序调整等关键技巧,帮助初学者快速掌握单片机开发,避免常见错误。

weixin_30681121的博客 343

10、贝叶斯曲线拟合与预测分布详解

本文详细介绍了贝叶斯曲线拟合与预测分布的核心概念与计算方法。从最大似然估计出发,引入参数的先验分布,推导出后验分布与最大后验估计,并进一步展示如何通过积分获得完整的预测分布。文章解析了预测分布中均值与方差的构成,强调贝叶斯方法在量化不确定性方面的优势,涵盖金融、医疗、气象等实际应用场景。最后总结了操作步骤与未来研究方向,帮助读者系统掌握贝叶斯方法在回归问题中的应用。

android的专栏 104

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

不只是读温度:用DS18B20和数码管在蓝桥杯CT107D板上做个简易温度计(附完整工程)

本文详细介绍了如何在蓝桥杯CT107D开发板上使用DS18B20温度传感器和数码管构建一个实时温度监测系统。通过模块化编程和硬件资源规划,解决了单片机外设协同、数据同步显示等关键技术问题,并提供了完整的工程代码和调试技巧。

weixin_30568591的博客 251

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

蓝桥杯单片机CT107D平台:DS18B20温度读取代码避坑指南(附常见编译错误解决)

本文详细解析了蓝桥杯单片机CT107D平台上DS18B20温度传感器的代码实现与调试技巧,涵盖单总线协议时序、Keil编译错误解决及硬件故障排查。特别针对常见编译警告和信号干扰问题,提供实用解决方案,帮助选手高效完成温度采集任务。

weixin_30493401的博客 501

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

蓝桥杯学习笔记 单片机CT107D DS18B20温度传感器

DS18B20是一种数字温度传感器,应用非常广泛。它输出的是数字信号,同时具有体积小,硬件资源耗费少,抗干扰能力强,精度高等特点。采用单线接口方式:DS18B20温度传感器仅需要一条线即可实现与微处理器的双向通信。测温范围: DS18B20温度传感器的测温范围可达-55℃~+125℃,在-10℃到+85℃范围内误差为±0.4°。DS18B20温度传感器在应用过程中不需要任何外围元件。DS18B20温度传感器测量温度的结果以9~12位数字量方式串行传送。(默认12位)

Hans_Rudle的博客 1125

蓝桥杯单片机国赛客观题_启士 | 蓝桥杯单片机教程13 温度传感器DS18B20

这是北航士谔书院的第 959篇推送士谔书院的小伙伴们开学一周快乐哈!在咕咕咕多日之后我们蓝桥杯推送组终于又恢复更新了!(撒花~)今天就来讲解一下蓝桥杯单片机CT107D平台上温度传感器DS18B20的使用。在基础模块部分结束后我们会以一周一篇的频率为大家推送初赛题,到时候还请继续关注~DS18B20的工作原理我们所参加的蓝桥杯“单片机设计与开发”比赛会为我们提供DS18B20的驱动...

weixin_39637723的博客 827

蓝桥杯单片机(CT107D)需要准备的一些文件的写法(First Prepare for Lanqiao Cup MCU Competition)

蓝桥杯单片机(CT107D)需要准备的一些文件的写法(First Prepare for Lanqiao Cup MCU Competition)实物图电路原理图所有文件(all files)TIPS:common.hmain.ctimer.chc138.cled.cdrivers.cdigital_tube.ckey.c 实物图 电路原理图 所有文件(all files) common.h ...

田三番的博客 1467

蓝桥杯温度DS18b20的驱动直观理解

对于蓝桥杯比赛,很多人对于比赛官方给出的三个驱动不知道怎么具体使用。其实官方给出的驱动是在原有的芯片基础上做出的驱动,但是后来比赛官方对比赛专用版CT107D上使用了IAP1F2K61S2转接板,驱动的一些位置都相应的做出了该变。 首先对于驱动,我们的看法是去建立一个存在主函数的C 文件去调用这个驱动的C文件和H文件。而不是在给出的驱动上直接书写程序,因为那样的编程思想...

穿大码的猫的博客 1360
上一篇: CT107D蓝桥杯EEPROM使用(8)
下一篇: CT107D蓝桥杯矩阵键盘使用
HES_C
博客等级 码龄10年 4876粉丝 153原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值