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

温度采集DS18B20

/********************************************************************
* 描述    :  该文件实现了用温度传感器件DS18B20对温度的采集,并在数码管上显示出来。
***********************************************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int

#define jump_ROM 0xCC
#define start 0x44
#define read_EEROM 0xBE

sbit DQ = P2^3;            //DS18B20数据口

unsigned char TMPH,TMPL; 

uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
/********************************************************************
* 名称 : delay()
* 功能 : 延时,延时时间大概为140US。
* 输入 : 无
* 输出 : 无
***********************************************************************/

void delay_1()
{
    int i,j;
    for(i=0; i<=10; i++)
    for(j=0; j<=2; j++)
;
}

/********************************************************************
* 名称 : delay()
* 功能 : 延时函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void delay(uint N)
{
    int i;
    for(i=0; i<N; i++)
    ;
}

/********************************************************************
* 名称 : Delay_1ms()
* 功能 : 延时子程序,延时时间为 1ms * x
* 输入 : x (延时一毫秒的个数)
* 输出 : 无
***********************************************************************/
void Delay_1ms(uint i)//1ms延时
{
    uchar x,j;
    for(j=0;j<i;j++)
    for(x=0;x<=148;x++);    
}
/********************************************************************
* 名称 : Reset()
* 功能 : 复位DS18B20
* 输入 : 无
* 输出 : 无
***********************************************************************/
uchar Reset(void)
{
    uchar deceive_ready;
    DQ = 0;
    delay(29);
    DQ = 1;
    delay(3);
    deceive_ready = DQ;
    delay(25);
    return(deceive_ready);
}

/********************************************************************
* 名称 : read_bit()
* 功能 : 从DS18B20读一个位值
* 输入 : 无
* 输出 : 从DS18B20读出的一个位值
***********************************************************************/
uchar read_bit(void)
{
    uchar i;
    DQ = 0;
    DQ = 1;
    for(i=0; i<3; i++);
    return(DQ);
}

/********************************************************************
* 名称 : write_bit()
* 功能 : 向DS18B20写一位
* 输入 : bitval(要对DS18B20写入的位值)
* 输出 : 无
***********************************************************************/
void write_bit(uchar bitval)
{
DQ=0;if(bitval==1)
DQ=1;
delay(5);
DQ=1;
}

/********************************************************************
* 名称 : read_byte()
* 功能 : 从DS18B20读一个字节
* 输入 : 无
* 输出 : 从DS18B20读到的值
***********************************************************************/
uchar read_byte(void)
{
    uchar i,m,receive_data;
    m = 1;
    receive_data = 0;
    for(i=0; i<8; i++)
    {
        if(read_bit())
        {
            receive_data = receive_data + (m << i);
        }
        delay(6);
    }
    return(receive_data);
}

/********************************************************************
* 名称 : write_byte()
* 功能 : 向DS18B20写一个字节
* 输入 : val(要对DS18B20写入的命令值)
* 输出 : 无
***********************************************************************/
void write_byte(uchar val)
{
    uchar i,temp;
    for(i=0; i<8; i++)
    {
        temp = val >> i;
        temp = temp & 0x01;
        write_bit(temp);
        delay(5);
    }
}


/********************************************************************
* 名称 : Main()
* 功能 : 主函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void main()
{
    float tt;
    uint temp;
    P2 = 0x00;
    while(1)
    {
        Reset();
        write_byte(jump_ROM);
        write_byte(start);
        Reset();
        write_byte(jump_ROM);
        write_byte(read_EEROM);
        TMPL = read_byte();
        TMPH = read_byte();
        temp = TMPL / 16 + TMPH * 16;
        P0 = table[temp/10%10]&0xef;
        P2 = 6;
        Delay_1ms(5);
        P0 = table[temp%10];
        P2 = 7;
        Delay_1ms(5);
        P1=B11111111;
    }
}

相关文章:

温度采集DS18B20

/******************************************************************** * 描述 : 该文件实现了用温度传感器件DS18B20对温度的采集&#xff0c;并在数码管上显示出来。 ***********************************************************************/ #include<reg52.h&…...

同城跑腿服务预约小程序的作用如何

无论是互联网服务化加快还是前几年疫情冲击&#xff0c;在同城生活服务场景中出现了很多商机&#xff0c;如外卖跑腿、校园跑腿、代买代送等&#xff0c;无论公司还是个人都借势不断提升自己品牌的影响力&#xff0c;并且依赖朋友圈不断提升生意营收。 同城跑腿品牌不少&#…...

前后端开发迭代

要创建一个具有登录和注册功能的前端网页&#xff0c;并使用Go语言编写后端来支持它&#xff0c;你需要分两部分来进行&#xff1a;前端开发和后端开发。下面我将提供一个基本的指导方案。 前端开发 前端部分主要涉及HTML、CSS和JavaScript。你可以使用框架如React或Vue来简化…...

Git可视化界面的操作,SSH协议的以及IDEA集成Git

目录 一. Git可视化界面的操作 二. gitee的ssh key 2.1 SSH协议 2.2 ssh key 三. IDEA集成Git 3.1 分享项目 3.2 下载项目 一. Git可视化界面的操作 上一篇博客只用到了git的命令窗口&#xff0c;现在就来看看可视化窗口要怎么操作。 点击Git GUI Here GUI界面 在g…...

CSS的初步学习

CSS 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结 构分离. CSS 就是 “东方四大邪术” 之化妆术 CSS 基本语法规范: 选择器 若干属性声明 选择器决定针对谁修改 (找谁) 声明决定修…...

小程序样式问题

小程序切换下一个文章或者页面&#xff0c;淡入淡出效果 // detail.js getArticleData: function(articleId) {// 开始淡出效果this.animate(.detail-page, [{ opacity: 1.0, ease: ease-out },{ opacity: 0.0, ease: ease-out }], 500, () > {// 在淡出动画完成后请求文章…...

大数据毕业设计选题推荐-生产大数据平台-Hadoop-Spark-Hive

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

什么是Ribbon的饥饿加载?有什么优势?

目录 一、什么是Ribbon 二、什么是饥饿加载 三、Ribbon饥饿加载的优势 四、Ribbon饥饿加载的劣势 一、什么是Ribbon Ribbon是一个开源的、基于HTTP和TCP的客户端负载均衡工具&#xff0c;它提供了一个简单的、基于配置的负载均衡策略&#xff0c;可以帮助开发人员更轻松地…...

苹果手机安装未上架APP应用测试教程

STEP 2&#xff1a;找到下载的描述文件&#xff08;如果没有找到&#xff0c;请到 设置 - 通用 - 描述文件 中查看&#xff09; STEP 3&#xff1a;安装描述文件 STEP 4&#xff1a;输入解锁密码安装描述文件 STEP 5&#xff1a;同意免责声明&#xff0c;安装描述文件 STEP 6…...

asp.net core自定义授权过滤器

1.记录点击页面的地址&#xff0c;如果点击页面时未登录&#xff0c;直接跳转到登录页面&#xff0c;登录后直接跳转到自己点击的页面 2.创建授权过滤器 using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using System.Web;namespace Log4NetTest {/…...

SW如何显示样条曲线的控标

刚刚学习隔壁老王的sw画图时&#xff0c;怎么点都点不出样条曲线的控标&#xff0c;于是果断查询了一下解决方法&#xff0c;其实很简单&#xff0c;只不过是培训机构故意不说&#xff0c;叫你还解决不了&#xff0c;难受了就会花钱买他们的课了。毕竟如果学会了怎么解决问题了…...

CSS 的 link 标签放在 head 标签之间的作用

当我们在开发网页时&#xff0c;经常会遇到关于CSS文件引入位置的讨论。有些人喜欢将CSS文件的链接放在HTML文件的底部&#xff0c;而另一些人则认为最好将CSS链接放在<head>标签之间。那么&#xff0c;究竟应该将CSS的link标签放在head标签之间的原因是什么呢&#xff1…...

【VS2019 Qt5 VTK9.2】临时解决配置相关问题的简单方法

配置报错 编译报错提示&#xff08;LNK2019或LNK2001&#xff09; 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 “__declspec(dllimport) public: __cdecl QVTKOpenGLNativeWidget::QVTKOpenGLNativeWidget(class QWidget *,class QFlags)(_i…...

国际版腾讯云/阿里云:云解析DNS是什么

云解析DNS是什么 ​ 问答 云解析DNS是一种安全、快速、安稳、牢靠的威望DNS解析处理服务。 云解析DNS为企业和开发者将易于处理辨认的域名转换为计算机用于互连通讯的数字IP地址&#xff0c;然后将用户的拜访路由到相应的网站或应用服务器。 云解析 DNS&#xff08;Domain Nam…...

深度学习之基于Django+Tensorflow商品识别管理系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 项目简介 本系统是一个基于DjangoTensorflow的商品识别管理系统。通过深度学习技术&#xff0c;实现商品的自动识别…...

postman 参数化使用csv导入外部数据

一、参数化脚本入参 postman中变量用{{变量名}}表示变量 二、创建外部数据文件 csv文件逗号分割多个变量和对应值注意编码格式必须为utf-8 三、run collection导入数据文件 四、设置运行参数run 浏览数据 可调试设置迭代次数&#xff1a;防止批量出错&#xff0c;可先设定…...

C语言概述

目录 ​编辑 1. C语言发展史 2. C语言特点 3. C语言标准 4. C语言编程机制 4.1 预处理(Preprocessing) 4.2 编译(Compilation) 4.3 汇编(Assemble) 4.4 链接(Linking) 结语 1. C语言发展史 C语言是由美国贝尔实验室的Dennis Ritchie于1972年设计开发的一种编…...

elasticsearch分词器

内置分词器 Standard Analyzer - 默认分词器&#xff0c;英文按单词词切分&#xff0c;并小写处理Simple Analyzer - 按照单词切分(符号被过滤), 小写处理Stop Analyzer - 小写处理&#xff0c;停用词过滤(the,a,is)Whitespace Analyzer - 按照空格切分&#xff0c;不转小写Ke…...

# 深度解析 Socket 与 WebSocket:原理、区别与应用

在网络通信领域&#xff0c;Socket和WebSocket都是关键的技术&#xff0c;但它们背后的原理和应用有着显著的差异。本文将深入剖析Socket与WebSocket的工作原理&#xff0c;突出它们之间的区别&#xff0c;并探讨它们在不同场景下的应用。 1. Socket 的基础 1.1 什么是 Socke…...

C++17中std::optional的使用

模版类std::optional管理一个可选的(optional)存储值(contained value)&#xff0c;即可能存在也可能不存在的值。std::optional的一个常见用例是存储可能失败的函数的返回值。与其它方法相反(例如std::pair<T, bool>),std::optional可以很好地处理构造成本高昂的对象&am…...

CS146S课程解析:LLM上限就是开发者的上限

第 6 周&#xff1a;AI 测试与安全 安全编码在 AI 时代变得更加重要。本周覆盖 SAST、DAST、漏洞检测、AI 生成的测试用例&#xff0c;以及如何用 Semgrep 等工具进行安全扫描。 第 7 周&#xff1a;现代软件支持 AI 代码审查、智能文档生成、调试辅助。如何建立对 AI 生成代码…...

矩阵求逆算法的时间复杂度对比:从高斯消元到伴随矩阵法

1. 矩阵求逆&#xff1a;为什么我们需要关注时间复杂度 第一次接触矩阵求逆是在大学线性代数课上&#xff0c;当时只觉得这是个有趣的数学玩具。直到后来做图像处理项目时&#xff0c;我才真正意识到它的重要性——当我们需要解线性方程组或做坐标变换时&#xff0c;逆矩阵就像…...

47、说一下 Chrome V8 原理

目录 一、先给面试里的标准定义 二、V8 到底是什么&#xff1f; 三、V8 为什么快&#xff1f; 核心原因可以概括成 4 点&#xff1a; 四、V8 执行 JavaScript 的整体流程 流程概览 五、详细说一下每个阶段 1. 词法分析 2. 语法分析 3. 生成 AST 4. 生成字节码 5. I…...

电子爱好者DIY:用Multisim打造炫酷彩灯控制系统(含仿真+代码+报告)

电子爱好者DIY&#xff1a;用Multisim打造炫酷彩灯控制系统&#xff08;含仿真代码报告&#xff09; 1. 项目概述与设计思路 彩灯控制系统是电子设计入门的经典项目&#xff0c;既能锻炼数字电路设计能力&#xff0c;又能获得直观的视觉效果。本次设计的10路彩灯循环控制系统&a…...

实证论文不再卡壳!虎贲等考 AI 数据分析:零代码做出期刊级结果

在本科、硕士毕业论文与期刊发表中&#xff0c;数据分析往往是最容易卡住、最耗时、最容易出错的环节。不会 Stata、不懂 Python、SPSS 操作复杂、面板数据不会处理、回归结果不会解读…… 这些问题让大量学生与研究者卡在实证阶段&#xff0c;反复返修、延期、被拒稿。 如今&…...

Wan2.2-I2V-A14B开发利器:在IDEA中配置远程Python解释器进行模型调试

Wan2.2-I2V-A14B开发利器&#xff1a;在IDEA中配置远程Python解释器进行模型调试 1. 为什么需要远程Python解释器 当开发Wan2.2-I2V-A14B这类AI模型项目时&#xff0c;我们经常遇到一个典型问题&#xff1a;本地机器性能不足&#xff0c;而模型运行需要服务器级别的GPU资源。…...

【情感计算模块性能黄金标准】:IEEE P2892草案未公开的4项硬性指标(含微表情响应延迟≤83ms实测数据)

第一章&#xff1a;情感计算模块在AIAgent架构中的定位与演进脉络 2026奇点智能技术大会(https://ml-summit.org) 情感计算模块已从早期独立的情感识别插件&#xff0c;演变为AIAgent多模态认知闭环中不可或缺的语义调制中枢。它不再仅服务于“检测微笑是否代表愉悦”&#xf…...

MPD音频处理架构揭秘:解码器、输出插件和混音器的协同工作

MPD音频处理架构揭秘&#xff1a;解码器、输出插件和混音器的协同工作 【免费下载链接】MPD Music Player Daemon 项目地址: https://gitcode.com/gh_mirrors/mp/MPD Music Player Daemon&#xff08;MPD&#xff09;作为一款强大的音频服务器&#xff0c;其核心优势在于…...

Hermes Agent:越用越强的自进化AI智能体,与OpenClaw深度对比

目录引言一、Hermes Agent是什么&#xff1f;二、Hermes Agent的核心特性1. 内置学习闭环&#xff1a;越用越强2. 全平台接入与灵活部署3. 安全沙盒机制三、OpenClaw是什么&#xff1f;四、Hermes Agent与OpenClaw的深度对比1. 设计理念&#xff1a;学习闭环 vs 连接控制2. 记忆…...

DLSS Swapper终极指南:免费快速升级游戏画质的完整解决方案

DLSS Swapper终极指南&#xff1a;免费快速升级游戏画质的完整解决方案 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专为游戏玩家设计的实用工具&#xff0c;能够轻松管理、下载和替换游戏中的DL…...