基于51单片机的ds18b20数字华氏温度计

news2025/1/18 8:44:51

资料编号:114  下面是相关功能视频演示:

114-基于51单片机的数字华氏温度计报警(源码+仿真+全套资料)

功能讲解:

采用51单片机采集DS18B20的温度,LCD1602显示,并且可以设置上下限值,超过对应的值LED会有提醒,并且可以通过按键进行华氏温度转换显示,全套资料齐全:

 下面是部分程序展示:

void main()
{
    init();                                //LCD初始化
    Init_DS18B20();                        //DS18B20初始化
    while(1)                            //大循环
    { if(s1==0||s1num>=1)
        {    keyscan();                    //按键扫描
        }
    else{    ReadTemp();                    //读取温度值
            write_temp_value(0,temp_value);    //LCD显示温度值
        }
        comp();        
    }
}

void delay(uint z)                        //延时程序
{
    uint x,y;
    for(x=z;x>0;x--)
    for(y=110;y>0;y--);
}

void init()                        //LCD初始化程序
{   lcden=0;
      lcdrw=0;
    write_com(0x38);             //设置16x2 显示5x7 点阵,8 位数据接口
    write_com(0x0c);             //设置开始显示不显示光标
    write_com(0x06);             //写一个字符后地址指针加1
    write_com(0x01);             //显示清零数据指针清零
    write_com(0x80);             //将数据指针第一行第一个字处,
    
    write_com(0x80+9);             //定义当前指针位置
    write_data('H');                 //写入
    write_data(':');                 //写入
    write_data('+');                 //写入
    write_data('5');                 //写入
    write_data('0');                 //写入
    write_data(0xdf);                 //写入°
    write_data('C');                 //写入C
    write_com(0x80+9+0x40);          //定义当前指针位置
    write_data('L');                 //写入
    write_data(':');                 //写入
    write_data('-');                 //写入
    write_data('1');                 //写入
    write_data('0');                 //写入
    write_data(0xdf);                 //写入°
    write_data('C');                 //写入C
    h=0x32;
    l=0-0x0a;                         //h=45
    D1=1;
    D2=1;
    figh=0;                             //给正确初始值,便于上电比较
    figl=1;                             //给正确初始值,便于上电比较
}

下面是该资料的分享下载链接:

https://pan.baidu.com/s/1jMpfjrZYIpQ7JkwJfrkVhg?pwd=vtx7 

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

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

相关文章

Unity UI 框架

开源地址: GitHub - NRatel/NRFramework.UI: 基于 Unity UGUI 的 UI 开发框架基于 Unity UGUI 的 UI 开发框架. Contribute to NRatel/NRFramework.UI development by creating an account on GitHub.https://github.com/NRatel/NRFramework.UI 一、需求/功能要点…

headscale的部署方法和使用教程

headscale的部署方法和使用教程1. headscale文件下载2. 上传并赋予文件权限3. 创建以及修改相关配置文件3.1 创建配置目录:3.2 创建目录用来存储数据与证书:3.3 创建空的 SQLite 数据库文件:3.4 创建 Headscale 配置文件:3.5 创建…

Vue 组件间通信并不是每一次操作都会触发新的通信

需求:新增或者修改都需要组件间立马通信。 操作:把B组件(子组件,这里指的是三级联动组件)的数据传输过来,在A(父组件)组件中处理 即 子传父 这里指的是修改页面或者新增页面三级联动下拉选择完之后 点击 提交 会执行A组件的修改操…

开启安全测试评估赛道,永信至诚发布“数字风洞”产品体系

11月19日,永信至诚产品战略发布会上,面向安全测试评估领域的“数字风洞”产品体系战略发布,标志着永信至诚作为网络靶场和人才建设领军企业,再次以“产品乘服务”的价值体系,开启网络安全测试评估专业赛道。 数字化时代…

MySQL安装

本笔记来自B站黑马程序员讲解的MySQL的使用。 目录 ​编辑 一、MySQL的安装 1、数据库基础概念 2、MySQL下载并安装​编辑 三、启动MySQL 四、连接MySQL数据库 1、使用MySQL提供的客户端命令来连接 2、使用Windows 命令打开: 第一步 配置path的环境变量 第…

uniapp入门:常用事件绑定与数据同步

1.常见事件与事件绑定 1.1点击事件bindtap 1.2 文本输入事件bindinput 1.3 切换事件bindtouchend 2.数据同步 2.1事件回调 2.2逻辑层中page对象中的中数据如何进行改变 2.3页面触发事件如何传参到page中数据 …

ASEMI代理艾赛斯二极管DSA300I100NA,肖特基DSA300I100NA

编辑-Z 艾赛斯硅肖特基二极管DSA300I100NA参数: 型号:DSA300I100NA 最大重复反向阻断电压(VRRM):100V 反向电流、漏极电流(IR):3mA 正向电压降(VF)&…

STM32CubeMX外部中断

建议提前学习:使用STM32CubeMX实现按下按键,电平反转; 目录 EXTI 中断 中断的概念 抢占优先级与响应优先级 中断分组 事件 上升沿,下降沿以及双边沿触发 上升沿,下降沿以及双边沿的概念 上升沿,下…

数据结构-双链表思路解析及代码实现

双链表是单链表的进阶版,单链表是1-2-3-4 一个个排排坐链接,只管向后拉手,其主要思想是当前节点与下一节点的关系,那么双链表就多了一层关系,当前节点不仅和一下一点连起来,也要和上一节点串联起来。与前与…

【全志T113-S3_100ask】13-1 Linux c语言ioctl驱动oled(iic、ssd1306)屏幕

【全志T113-S3_100ask】13-1 Linux C通过ioctl驱动oled[ssd1306]屏幕 背景(一)i2c关键结构体1、i2c_rdwr_ioctl_data结构体2、struct i2c_msg结构体(二)i2c关键代码1、写函数2、读函数(三)对oled的操作&…

深度学习和神经网络的介绍(一)

1、深度学习和神经网络 1.1 深度学习的介绍 目标: 知道什么是深度学习知道深度学习和机器学习的区别能够说出深度学习的主要应用场景知道深度学习的常见框架 1.1.1 深度学习的概念 深度学习是机器学习的分支,是一种以人工神经网络为架构&#xff0c…

计算机网络4小时速成:计算机网络基础,计网组成,计网分类,性能指标,标准化组织,计网结构模型,五层模型

计算机网络4小时速成:计算机网络基础,计网组成,计网分类,性能指标,标准化组织,计网结构模型,五层模型 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人&…

05_TCP并发服务器

知识点1【TCP并发服务器】 1、多线程(常用) 2、解决上述问题:端口复用 仅仅是端口的复用 3、并发服务器 多进程实现 总结: 知识点2【HTTP协议】 HTTP基于TCP 1、HTTP协议的概述 2、Webserver 通信过程 3、Web编程开发 知识…

Cadence orcad 批量设置原理图标题栏

前言 作为一份规范的原理图文件,必须要有Title Block,一般是在右下角的原理图信息,包括标题,图纸尺寸,设计师,时间,页码等等。 这里需要两个操作: 一、批量修改Title Block的信息 …

Go语言进阶篇,单元测试、基准测试的性能测试、内存占用测试

在go语言中的单元测试比较有意思,比如测试一个函数是很方便的,只需要将文件名修改为_test.go这样的后缀即可,我们新建一个目录xxx,然后新建xxx_test.go文件,当然这个xxx的名字你可以按照功能来命名,如下&am…

Java开发:多线程编程

本章篇幅主要记录多线程编程相关的知识,如有纰漏,望指出。 话不多说,正式开启多线程之旅... 目录 一、多线程使用方式 A、Thread B、Runnable(推荐) C、Callable 二、线程的五个状态 三、线程停止 四、线程休…

LabVIEW性能和内存管理 7 LabVIEW中局部和全局变量的内存分配

LabVIEW性能和内存管理 7 LabVIEW中局部和全局变量的内存分配 本文介绍LabVIEW性能和内存管理的几个建议7。 LabVIEW Cleanup – LabVIEW cleans upmany references when the owning VI goes idle and others when the process closes – Manually closereferences t…

Bean的作用域和生命周期

1. Bean 的作用域 对于全局变量,局部变量等的作用域相信大家都已经很清楚了,但是对于对象作用域有点摸不着头脑,下面通过一个简单的案例,康康对象的作用域 1.1 案例引入 现有一个公共的 Bean 对象 package com.bean.model;import org.springframework.stereotype.Componen…

【IEEE2017】RL:机器人库:一种面向对象的机器人应用程序的方法

RL:机器人库:一种面向对象的机器人应用程序的方法 摘要: 摘要:我们讨论了机器人库(RL)的架构和软件工程原理。在机器人系统、研究项目、工业应用和教育的需求的驱动下,我们确定了相关的设计需求…

linux上如何搭建Java环境

一 linux软件安装常用的方式对比 Linux下的软件安装,主要有如下三种,“正规”程度依次递减: 1、使用标准的yum/apt/yast包管理程序安装 2、使用标准rpm/deb或厂商自己的安装包(比如nVidia的显卡驱动用的bin包)安装 …