蓝桥之获取温度值小数点后部分

本文介绍了如何在国赛题目中处理18B20温度传感器的数据,特别是如何分别获取温度值的整数和小数部分。强调了获取小数部分时需使用float类型,并注意不同类型之间的转换。
摘要由CSDN通过智能技术生成

最近在做国赛的题,有要求要用到需要获取温度小数点后两部分

使用方法:

  1. 要获取18B20小数点后部分的温度值,需要建立两个函数,一个获取整数的温度,一个函数获取小数部分的温度。两个函数不可干扰。

获取整数部分的温度值

uint Read_18B20()
{
	uint temp;
	uchar TH,TL;
 
	init_ds18b20();
	Write_DS18B20(0xcc);
	Write_DS18B20(0x44);
	Delay_OneWire(100);
	init_ds18b20();
	Write_DS18B20(0xcc);
	Write_DS18B20(0xbe);
	TL = Read_DS18B20();
	TH = Read_DS18B20();
	temp = (TH<<4)|(TL>>4);

	return temp;
}
  1. 要注意的是用于获取温度小数部分的函数需要用flaot返回与赋值,因为我们处理的是小数部分的值

float Read_18B201()
{
	uchar TH,TL; 
	uint temp;

	init_ds18b20();
	Write_DS18B20(0xcc);
	Write_DS18B20(0x44);
	Delay_OneWire(100);
	init_ds18b20();
	Write_DS18B20(0xcc);
	Write_DS18B20(0xbe);
	TL = Read_DS18B20();
	TH = Read_DS18B20();

	temp = (TL%16)*100/16;
 
	return temp;
}

3.需要一提的是要注意使用flaot Read 18B20函数时要注意float型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值