DS18B20温度负数显示问题

尼娅和大家 尼娅和大家 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

int Read_tem()
{
uint t;
uchar a,b;
DS18B20();
delay(1);
Write(0xcc); //跳过
Write(0x44); //温度转换
DS18B20();
delay(1);
Write(0xcc); //跳过
Write(0xbe); //读温度寄存器
a=Read(); //低八位
b=Read(); //高八位
t=b;
t<<=8; //左移
t=t|a;
return t;
}



uint tem_change()
{

float tp;
tem=Read_tem();
if(tem<0)
{
tem=tem-1;
tem=~tem;
tp=tem*0.0625;
tem=tp*10+0.5;
return 1;
}
else
{
tp=tem*0.0625;
tem=tp*10+0.5;
return 0;
}
}

void display_tempt(uint x)
{
uchar i,j,k;
i=tem/100;
j=tem%100/10;
k=tem%100%10;

if(x) //x=1温度为负
{
write_com(0xc0+5);
write_data('-');
}
else
{
write_com(0xc0+6);
}
write_data(disp[i]);
write_data(disp[j]);
write_data('.');
write_data(disp[k]);
if(tem<100)
{
BUZ=1;
}
if(tem>=100)
{
BUZ=0;
}
}
...全文

相关推荐

DS18B20 温度传感器 数码管显示.rar

数据处理:解析温度数据,处理可能的负数、小数点和精度问题。5. 显示控制:根据处理后的数据,驱动数码管进行显示更新。总结,DS18B20温度传感器凭借其独特的优点和广泛应用,是电子工程师的得力助手。

July工作室

STM32F407驱动DS18B20温度采集与串口屏显示实战解析

嵌入式温度采集是工业监控、智能家居等场景的常见需求,DS18B20作为单总线数字温度传感器,只需一根数据线即可完成通信,但微秒级时序精度是保证数据可靠的关键。在STM32F407平台上,基于HAL库的GPIO模式切换、DWT延时以及ROM匹配读取,决定了传感器能否稳定工作。同时,将采集到的温度数据通过串口发送到淘晶驰串口屏,涉及指令帧封装与波特率匹配等细节。本文从单总线通信原理出发,结合工程实践,深入讲解DS18B20驱动时序、串口屏数据帧格式、编译环境配置等要点,并扩展分析多点测温、负数处理等进阶问题,为

Hdhnrjdjjf

基于DS18B20温度检测系统的单片机程序(C语言)

**数据类型定义**:`#define uchar unsigned char` 和 `#define uint unsigned int` 定义了无符号字符型和整型变量,这在处理数字时避免了负数问题,

b071180112

18B20数码管显示温度

解析过程通常包括校验和计算、温度值的位移操作以及可能的负数表示(如二进制补码)。4. **数码管显示**:C51单片机通常有多个GPIO口,可用于驱动数码管。

kaermaiye

用单片机设计温度计(汇编语言)

- **DS18B20温度传感器**:用于测量环境温度。- **LED显示器**:用于显示温度值。- **晶振**:用于提供单片机所需的时钟信号。#### 遇到的问题及解决方案1.

a77912
评论 3
收藏 已收藏
分享
返回顶部
尼娅和大家
单片机/工控 27,522 成员 28,796 内容