DS18B20测量温度数码管显示

news2024/9/21 14:32:35

DS18B20温度传感器简介

DS18B20是一种数字温度传感器。它输出的是数字信号,同时具有体积小,硬件资源耗费少,抗干扰能力强,精度高等特点。

DS18B20温度传感器特点

1、单线接口:DS18B20仅需一条线可实现与微处理器双向通信。

2、测温范围: DS18B20温度传感器的测温范围可达-55℃~+125℃,在-10℃到+85℃范围内误差为±0.4°。

3、支持多点组网功能:多个DS18B20温度传感器可以并联在一条数据线上,最多可以并联8个,实现多点测温。

4、工作电源: 3.0~5.5V/DC ,DS18B20温度传感器可以采用外部独立电源供电,也可以用数据线寄生电源供电。

5、DS18B20温度传感器在应用过程中不需要任何外围元件。

6、DS18B20测量温度的结果以9~12位数字量方式串行传送。

7、掉电保护功能, DS18B20温度传感器内部含有 EEPROM ,通过配置寄存器可以设定数字转换精度和报警温度。在DS18B20温度传感器掉电以后仍可保存分辨率及报警温度的设定值。

8、DS18B20温度传感器返回16位二进制数代表此刻探测的温度值,其高五位代表正负。如果高五位全部为1,则代表返回的温度值为负值。如果高五位全部为0,则代表返回的温度值为正值。后面的11位数据代表温度的绝对值,将其转换为十进制数值之后,再乘以0.0625即可获得此时的温度值。

DS18B20温度传感器引脚说明

DS18B20温度传感器接口电路

数码管接口电路

DS18B20测量温度程序源代码

/**********************DS18B20测量温度**********************

* 单片机:51单片机

* 开发环境:keil

* 名称:DS18B20测量温度

* 功能: DS18B20测量温度,并在数码管中显示出来

***************************************************************/

#include <reg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit DS=P2^2;

uint temp;

uchar flag1;

unsigned char code table[]=

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

0x77,0x7c,0x39,0x5e,0x79,0x71};

unsigned char code table1[]=

{0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};

void delay(uint count)

{

uint i;

while(count){i=200;while(i>0)i--;count--;}

}

void dsreset(void) //send reset and initializationcommand

{

uint i;

DS=0;i=103;while(i>0)i--;

DS=1;i=4;while(i>0)i--;

}

bit tmpreadbit(void) //read a bit

{

uint i;bitdat;

DS=0;i++; //i++ for delay

DS=1;i++;i++;

dat=DS;

i=8;while(i>0)i--;

return(dat);

}

uchar tmpread(void) //read a byte date

{

uchari,j,dat;

dat=0;

for(i=1;i<=8;i++)

{

j=tmpreadbit();

dat=(j<<7)|(dat>>1);

//读出的数据最低位在最前面,这样刚好一个字节在DAT里

}

return(dat);

}

void tmpwritebyte(uchar dat) //write a byte to ds18b20

{

uint i;

uchar j;

bit testb;

for(j=1;j<=8;j++)

{

testb=dat&0x01;

dat=dat>>1;

if(testb) //write 1

{

DS=0;i++;i++;

DS=1;i=8;while(i>0)i--;

}

else //write 0

{

DS=0;i=8;while(i>0)i--;

DS=1;i++;i++;

}

}

}

void tmpchange(void) //DS18B20 begin change

{

dsreset();delay(1);

tmpwritebyte(0xcc); //address all drivers on bus

tmpwritebyte(0x44); //initiates a single temperatureconversion

}

uint tmp() //get the temperature

{

float tt;

uchar a,b;

dsreset();delay(1);

tmpwritebyte(0xcc);

tmpwritebyte(0xbe);

a=tmpread();

b=tmpread();

temp=b;

temp<<=8; //two byte compose a int variable

temp=temp|a;

tt=temp*0.0625;

temp=tt*10+0.5;

returntemp;

}

void display(uint temp) //显示程序

{

ucharA1,A2,A2t,A3;

A1=temp/100;A2t=temp%100;A2=A2t/10;A3=A2t%10;

P0=table[A1]; //显示十位

P3=0xef;delay(3);

P0=table1[A2]; //显示个位,带小数点

P3=0xdf;delay(3);

P0=table[A3]; //显示十分位

P3=0xbf;delay(1);

}

void main()

{

uchar a;

do{tmpchange();for(a=10;a>0;a--){display(tmp());}}

while(1);

}

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

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

相关文章

【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(stack容器)

文章目录一、stack 基本概念二、stack 常用接口一、stack 基本概念 概念&#xff1a;stack是一种先进后出(First In Last Out,FILO)的数据结构&#xff0c;它只有一个出口 栈中只有顶端的元素才可以被外界使用&#xff0c;因此栈不允许有遍历行为 栈中进入数据称为 — 入栈 p…

openMMLab 2

本文是openmmlab AI实战营的第二次课程的笔记&#xff0c;以下是我比较关注的部分。在图像分类任务上&#xff0c;视觉基础模型的发展&#xff0c;最新的是convNeXt。convNeXt : 返璞归真&#xff0c;将Swin Transformer 的模型元素迁移到卷积网络中&#xff0c;性能反超Transf…

设计模式-行为型模式(二)

目录 6.行为型模式 6.5 状态模式 6.5.1 概述 6.5.2 结构 6.5.3 案例实现 6.5.4 优缺点 6.5.5 使用场景 6.6 观察者模式 6.6.1 概述 6.6.2 结构 6.6.3 案例实现 6.6.4 优缺点 6.6.5 使用场景 6.6.6 JDK中提供的实现 6.7 中介者模式 6.7.1 概述 6.7.2 结构 6.7.…

物联网网关最常用的边缘计算优势在哪里

物联网是继计算机、互联网与移动通信网之后信息技术产业的第三次发展浪潮。通信技术能够使物联网将感知到的信息在不同的终端之间进行高效传输和交换&#xff0c;实现信息资源的互通和共享&#xff0c;是物联网各种应用功能的关键支撑。 物联网网关的通讯技术有很多&#xff0c…

COMSOL仿真教程—激光烧蚀

本例使用二维模型&#xff0c;将来自激光的入射热通量模拟为金属表面上空间分布的热源&#xff0c;从而得到金属的烧蚀过程和瞬态温度分布。仿真思路方案设计思路建模过程思路激光烧蚀.pdf建模说明新建在新建界面里点击模型向导。在选择物理场树中选择 传热>固体传热 以及 数…

unity 网络同步 预表现(预测同步)

基于守望先锋ECS网络同步&#xff1a; 程序丨暴雪Tim Ford&#xff1a;《守望先锋》架构设计与网络同步 本文主要聊聊预测同步 首先FPS这类游戏东西肯定不会让服务器过分相信客户端&#xff0c;因为总有混蛋开挂&#xff0c;作为一款即使对战游戏&#xff0c;高性能的网络表…

ICMP与DHCP(包含DHCP的全局配置模式与接口配置模式)

目录 ICMP DHCP DHCP服务器端部署 左边的全局配置模式 右边的接口配置模式 ICMP ICMP&#xff1a;互联网消息控制协议&#xff0c;用来在网络设备间传递各种差错和控制信息&#xff0c;对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。基于IP协议…

双线性插值法

文章目录前言一、双线性插值二、代码实现总结前言 在上一文《最近邻插值法》中我们讨论了最近邻&#xff0c;并且使用python实现&#xff0c;本章节中我们继续讨论图像缩放算法——双线性插值法&#xff0c;给难度升个级。 一、双线性插值 你在哪里见过下面这个图&#xff1f;回…

java基础—JDK基础面试题一

文章目录1.和equals区别是什么&#xff1f;2.Java中的 <<、>>、>>> 是什么3.if-else-if-else与switch的区别4.while和do-while的区别5.switch 是否能作用在 byte 上&#xff0c;是否能作用在 long 上&#xff0c;是否能作用在String上6.&和&&…

Mysql大数据表处理方案

场景&#xff1a; 当我们业务数据库表中的数据越来越多&#xff0c;如果你也和我遇到了以下类似场景&#xff0c;那让我们一起来解决这个问题 数据的插入,查询时长较长后续业务需求的扩展 在表中新增字段 影响较大表中的数据并不是所有的都为有效数据 需求只查询时间区间内的…

DynaSLAM-10 DynaSLAM中双目运行流程(Ⅳ):DynaSLAM的三大线程解析

目录 1.双目初始化部分 2.三种追踪模式 1.双目初始化部分 进入追踪线程首先判断双目追踪器状态mstate&#xff0c;在刚进入SLAM系统时&#xff0c; Tracking::Tracking函数默认将其设置为NO_IMAGES_YET&#xff0c;系统经过reset时也会将mstate设置为NO_IMAGES_YET......如果是…

【工业视觉-CCD相机和CMOS相机成像的本质区别】

工业视觉-CCD相机和CMOS相机成像的本质区别1.CCD的功耗高&#xff0c;CMOS的功耗低2.CCD速度较CMOS慢3.CCD的画质优于CMOS4.CCD的高感画质低于CMOS在学习工业视觉的起初&#xff0c;一般都是先去了解光源、镜头、相机等概念&#xff0c;在接触工业相机时看到两个概念&#xff0…

Java集合框架

Java集合框架 每博一文案 《杀死一只知更鸟》中有这样一段话&#xff1a;“你永远不可能真正地了解一个人&#xff0c;除非你穿上他的鞋子走来走去&#xff0c;站在他的角度思考问题。 可真当你走过他的路时&#xff0c;你连路过都觉得难过。” 世上没有真正的感同身受&#x…

数据结构 第六章 二叉树与树(树和森林)

1 双亲表示法(方便查找双亲) 使用层次遍历的方法将一个树中的所有结点存储到一维数组中 2 孩子表示法(方便查找孩子) 顺序链式存储结构&#xff1a; 1 使用数组来存储所有结点 2 为每一个结点来设置一个单链表 3 单链表链接的是其所有孩子结点的下标3 双亲孩子结合表示法 …

扬兴 | 选型技巧!晶振在商业显示屏的应用

据有关机构预计&#xff0c;未来五年&#xff0c;商显市场将以每年13-16%的增速发展&#xff0c;预计到2024年将达到1545亿元的规模。伴随着商显屏行业的飞速发展&#xff0c;必然带动电子元器件行业的增长&#xff0c;这也对元器件产品要求不断提高&#xff0c;其中晶振作为数…

【字符串】剑指Offer 05.替换空格(C/C++/Java/Python/Js)

剑指Offer 05.替换空格1 题目2 思路--双指针法3 代码3.1 C版本3.2 C版本3.3 Java版本3.4 Python3版本3.5 JavaScript版本4 总结1 题目 题源链接 请实现一个函数&#xff0c;把字符串 s 中的每个空格替换成"%20"。 示例 1&#xff1a; 输入&#xff1a;s “We are…

重磅!马斯克再抛特斯拉股票,去年中国市场份额首次下滑

特斯拉的走势&#xff0c;正在凸显智能电动汽车市场格局的新变化。 几周前&#xff0c;特斯拉首席执行官埃隆马斯克出售了价值近36亿美元的股票&#xff0c;就在三周前&#xff0c;这家全球智能电动汽车领头羊宣布未能实现年度交付目标&#xff08;少了近2.2万辆&#xff09;。…

windows下同时安装mysql5.5和mysql8.0.32

一、安装mysql8.0.32 我先安装的是mysql5.5&#xff0c;如&#xff1a;MySQL5.5安装教程SQLyog安装_柒七的博客-CSDN博客_mysql5.5的安装步骤 1.下载解压 https://dev.mysql.com/downloads/mysql/ 2.创建配置 下载完后&#xff0c;建议解压到一个没有中文的路径&#xff0…

Vue使用ElementUI动态修改table单元格背景颜色或文本颜色

前言 今天遇到一个场景&#xff0c;表格行属性的字典项要针对不同的状态&#xff0c;展示不同的文本颜色&#xff0c;如下图所示&#xff1a; 账号状态这一栏&#xff0c;如果是正常就展示以绿色字体展示&#xff0c;如果是禁用就以红色颜色展示 针对这个需求&#xff0c;我第…

u盘文件被电脑杀毒软件删掉了,怎么才能恢复

案例分享&#xff1a;【我的u盘中毒文件被电脑杀毒软件删掉了&#xff0c;怎么才能恢复啊&#xff1f;&#xff1f;里面有很重要的资料。求高手指点&#xff01;急&#xff01;&#xff01;&#xff01;】——虽然u盘能够存储数据&#xff0c;且体积小巧便于携带&#xff0c;但…