昨天推了一篇DS18B20测温与数码管显示的文章(见DS18B20测温与数码管显示),今天做一个DS18B20与LCD1602温度测量与显示应用案例。

  1. 系统原理图

    引脚接线

    LCD1602的数据引脚D0-D7接单片机P0引脚

    LCD1602的RS引脚接单片机的P2.5引脚

LCD1602的R/W引脚接单片机的P2.6引脚

LCD1602的EN引脚接单片机的P2.7引脚

2.软件实现

DS18B20测量的温度值中,有小数和整数两部分。在显示的时候需要对测量结果进行处理,常用的带小数的数据处理方法有两种:一种是定义成浮点型直接处理;一种是定义成整型,然后把小数和整数部分分离出来,再合适的位置点上小数点即可。在DS18B20测温与数码管显示案例中使用的就是第二种方法。在本次应用案例中,我们采用第一种方法,直接定义浮点数据。主函数代码如下:

#include <reg52.h>

#include "DS18B20.H"

#include "LCD_1602.h"

#include <stdio.h>

unsigned char Disp_Buffer[20];

void main()

{

float Temp;

InitLcd1602();

dsInit();

LcdShowStr(0, 0, "Temp Val:00.0\xDF\x43");

while(1)

{

sendChangeCmd();

Temp=getTmpValue();

sprintf(Disp_Buffer,"%4.1f",Temp);

LcdShowStr(9, 0,Disp_Buffer );

}

}

定义一个数据unsigned char Disp_Buffer[20];用来存储要显示的数据。float Temp;   用于存储浮点的温度数据。 LcdShowStr(0, 0, "Temp Val:00.0\xDF\x43");液晶显示字符串函数,单片机上电初始化的时候显示

Temp Val:00.0℃,其中DF对应°,43对应C。Temp=getTmpValue();调用读取温度函数,获取当前温度。然后利用sprintf将浮点型的温度值转换为字符串,并存放在Disp_Buffer中。代码如下所示,sprintf(Disp_Buffer,"%4.1f",Temp);

3.运行效果(点击下方链接)

DS18B20与LCD1602温度测量显示案例 (qq.com)

公众号回复《DS18B20》自动获取完整程序

DS18B20与LCD1602温度测量显示案例相关推荐

  1. 51单片机温度语音播报系统TTS播报DS18B20温度LCD1602显示

    实践制作DIY- GC0023-温度语音播报系统 一.功能说明: 基于51单片机设计-温度语音播报系统 功能介绍: 1.STC89C52单片机(STC89C51/52 AT89C51/52 任选其一) ...

  2. 51单片机DS18B20温度传感器使用及数码管温度计、LCD1602温度显示代码详解

    温馨提示:读者若要彻底理解并会灵活使用DS18B20温度传感器,请详细阅读中文手册,并且对照代码注释充分分析代码.请不要觉得中文手册内容繁多!如能静心分析,定能深有体会,获益匪浅! 一.DS18B20 ...

  3. DS18B20温度转换与显示

    单片机练习 - DS18B20温度转换与显示 最近都在学习和写单片机的程序, 今天有空又模仿DS18B20温度测量显示实验写了一个与DS18B20基于单总线通信的程序. DS18B20 数字温度传感器 ...

  4. 【Proteus仿真】Arduino UNO + PCF8563 +LCD1602时间显示

    [Proteus仿真]Arduino UNO + PCF8563 +LCD1602时间显示 Proteus仿真 所需库 Rtc_Pcf8563库 LiquidCrystal库 编译信息 使用 1.0 ...

  5. AT32F437基于LVGL的桌面显示案例

    AT32F437基于LVGL的桌面显示案例 示例目的 提供AT32F437基于LVGL V8的桌面显示案例. 注:本示例代码是基于雅特力提供的V2.x.x板级支持包(BSP)而开发,对于其他版本的BS ...

  6. 51单片机 DHT11+LCD1602温湿度显示 + Proteus仿真

    51单片机 DHT11+LCD1602温湿度显示+ Proteus仿真 主程序代码 #include <reg52.h> #include <LCD1602.h> #inclu ...

  7. 【Proteus】Arduino UNO + DS1307+LCD1602时间显示

    [Proteus]Arduino UNO + DS1307+LCD1602时间显示 Proteus仿真演示 添加串口输出信息,只是为了方便调试时查看信息. 所需库 可以在Arduino IDE管理库( ...

  8. 基于FPGA的 DS18B20多功能温度显示

    基于FPGA的 DS18B20多功能温度显示 实现功能: 1.实时温度显示在数码管上,更新速率1-2s一次 2.按下按键显示最近30s内的最高温和最低温 不包含板子, 3.按下按键可以存储当前温度,最 ...

  9. 【51单片机】在LCD1602上显示时间:包含按键进行校准时间+闹钟功能:按键设置闹钟响铃时间,以及响铃的时间长度

    在51开发板上面实现,晶振为:11.0592Mhz 电路如下: LCD1602 蜂鸣器部分: 显示时间界面: 更改时间页面: 设置触发闹钟时间页面: 设置闹钟响铃时长页面:(O泡时间长度  为3秒) ...

最新文章

  1. 致敬YOLO!华科提出YOLOS:基于视觉Transformer的目标检测
  2. 关于SpringCloud配置中心,ConfigClient需要注意的问题
  3. 面试必会:HashMap 实现原理解读
  4. 圣思园java se培训总结(82-)(观察者设计模式)
  5. python字符串字面量有哪四种定义方式_Python学习笔记(四)字符串型
  6. .net core 与ELK(4)后台运行els可视化工具和Kibana
  7. 娱乐游戏及计算机动画论文,有关游戏美术设计论文
  8. md文件转换成word文档
  9. 软件 | 快速计算网络自然连通度评估群落稳定性
  10. 读书笔记-财务报表分析的目的
  11. Pytorch 3D卷积
  12. 攻防世界-reverse-easyRE1
  13. 谷粒学院(十五)JWT | 阿里云短信服务 | 登录与注册前后端实现
  14. 邮件归档,在VIP邮箱怎么设置?
  15. 云管边端架构图_【学术论文】车路协同的云管边端架构及服务研究
  16. 【面试】 瓜子二手车 Java 方向面经
  17. html编辑器怎么添加视频教程,怎样在网站上添加视频?-米拓建站帮助中心
  18. 【Python学习日记】 第四天
  19. oracle执行报错ora-00955,Oracle:ORA-00955: name is already used by an existing object
  20. 简体中文影子系统2.8版(电脑的保护神)

热门文章

  1. 文件定时上传服务器,文件定时上传至服务器
  2. 37岁接触Python,在危机中抓住新机,3年搭建Python金融“金字塔”
  3. 排序四| 选择类排序(java实现)
  4. 苹果和特斯拉供应商台达电子遭勒索攻击 360专家提出四点建议应对
  5. sqrt在matlab是什么意思,matlab中sqrt()是什么功能的函数?
  6. 游戏的“自我赋权”和“非自我赋权”倾向
  7. 学生信息管理系统错误集(3)
  8. 谈一谈最近工作的收获!!!
  9. 豆瓣评分的背后【最不靠谱的书评分,一般不靠谱的音乐分,基本真实的电影分】...
  10. 微信公众号开发总结(Node.js + express + winston)