用DS18B20测温度并用LCD12864液晶屏显示.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
该文档涉及的知识点主要集中在如何使用DS18B20温度传感器测量温度,并将结果显示在LCD12864液晶显示屏上。以下是详细说明: 1. **DS18B20温度传感器**: - DS18B20是一款单线数字温度传感器,能够直接输出数字信号,具有精度高、接口简单等特点。 - 在代码中,通过`tempwritebyte()`函数向DS18B20写入命令,`tempreadbyte()`函数读取温度数据。 2. **温度转换**: - `get_temp()`函数用于获取温度数据。首先通过`tempwritebyte()`发送启动转换的命令(0xcc, 0x44),然后读取两次数据(低字节和高字节),组合成一个16位的整数`temp`。 - 温度值是按照0.0625°C的分辨率计算的,因此`f_temp = temp * 0.0625 * 10 + 0.5`用于将温度转换为浮点数,并进行四舍五入保留一位小数。 3. **LCD12864液晶显示屏**: - LCD12864是一种128×64像素的点阵液晶显示屏,常用于显示文本和简单图形。 - 在代码中,初始化LCD12864的函数是`lcd_init()`,它设置RS(数据/命令选择)、RW(读/写选择)和EN(使能信号)等控制引脚。 - `lcd_pos(uchar X, uchar Y)`函数用于设置光标位置,X和Y决定了显示的起始列和行。 - 显示数据的函数是`wr_data(date)`,它将数据写入到LCD的显示缓冲区。 - `wr_com(uchar com)`函数则用于发送LCD的命令,比如设置显示模式、光标位置等。 4. **程序流程**: - 程序首先初始化DS18B20和LCD12864,然后启动温度转换。 - 当温度转换完成后,程序读取温度值,转换为浮点数,并准备显示。 - 使用`lcd_pos()`和`wr_data()`将温度数据显示在LCD的第一行和第二行。 5. **延时函数**: - `delay(uint tms)`函数用于提供延时,通常基于循环计数来实现。这里的实现方式是嵌套循环,根据需要的毫秒数进行调整。 6. **位操作**: - 代码中使用了位操作,如`com>>1`和`m<<7`,这是对数据进行移位操作,用于数据的读写和处理。 7. **内存管理**: - `uchar code table[]`定义的是常量字符数组,存储要显示的文本字符串。 通过以上步骤,程序实现了从DS18B20获取温度数据,并在LCD12864屏幕上实时显示温度的功能。这在物联网、智能家居等领域有广泛的应用,例如环境监测、温控系统等。
- 粉丝: 71
- 资源: 5万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于springboot mybatis+Mysql 实现的图书管理系统 【web课程设计 】
- 伯克利大学机器学习-7Hidden Markov models& graphical models
- 资质证书系统网站源码 证书在线查询系统源码 自适应手机端
- springboot在线商城系统设计与开发-代码
- java-leetcode题解之Possible Bipartition.java
- java-leetcode题解之Positions of Large Groups.java
- java-leetcode题解之Populating Next Right Pointers in Each Node
- 伯克利大学机器学习-5Dimensionality reduction [Percy Liang]
- SwiftUI编写的贪吃蛇小游戏讲解
- 瑞昱主控 RTS5876 规格书