51单片机 Ds18b20和TM1638 显示温度
时间: 2023-10-07 19:14:31 浏览: 129
基于51单片机DS18B20温度传感器数码管显示温度仿真设计资料 包含源程序及仿真文件
5星 · 资源好评率100%
可以使用51单片机来读取DS18B20温度传感器的数据,并将其显示在TM1638数码管上。下面是一个简单的示例代码:
```c
#include <reg51.h>
#include <stdio.h>
#include "ds18b20.h"
#include "tm1638.h"
void main()
{
unsigned char temp[2];
char buffer[5];
TM1638_Init();
DS18B20_Init();
while(1)
{
DS18B20_ReadTemp(temp);
sprintf(buffer, "%d", temp[0]);
TM1638_DisplayString(buffer);
TM1638_SetDisplaySegment(0, 0x80); // 显示小数点
TM1638_DelayMs(500);
}
}
```
其中,`ds18b20.h`和`tm1638.h`是自定义的头文件,分别用于初始化DS18B20和TM1638模块。`DS18B20_ReadTemp()`函数用于读取DS18B20传感器的温度值,返回值为两个字节的数组,其中第一个字节为整数部分,第二个字节为小数部分。`sprintf()`函数将整数部分转换为字符串格式,然后调用`TM1638_DisplayString()`函数将其显示在TM1638数码管上,最后调用`TM1638_SetDisplaySegment()`函数显示小数点。`TM1638_DelayMs()`函数用于延时一段时间,以便观察显示效果。
阅读全文