新手求教ds18b20如何正确显示正负温度值

unsigned char gett(void)
{

Init_DS18B20(); //将DS18B20初始化
WriteOneChar(0xCC); // 跳过读序号列号的操作
WriteOneChar(0x44); // 启动温度转换
for(time_DS18B20=0;time_DS18B20<100;time_DS18B20++);
//温度转换需要一点时间
Init_DS18B20(); //将DS18B20初始化
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器,前两个分别是温度的低位和高位
temp_l=ReadOneChar();
//低位在前
temp_h=ReadOneChar();
//高位在后
flag1=temp_h&0xf8;
if(flag1)
{ n=flag1;
temp_h=~temp_h;
if(temp_l==0)temp_h++;
//若低8位全为0且温度为负,取补时就要向高位进1
temp_l=~temp_l+1;

}
temnum=(temp_h*256+temp_l)/16;
return temnum; //返回温度值
}

上面是我的程序,但是temnum无法读出为负时的值,如何修改才能让返回的温度值temnum具有正负性

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
DS18B20读取温度并显示在数码管上
下面是我的函数 分3个文件:头文件,DS18B20系列子函数文件,主函数部分(既数据处理和显示部分) 头文件 #ifndef __TEMP_H_ #define __TEMP_H_ #include&amp;lt;reg52.h&amp;gt; #ifndef uchar #define uchar unsigned char #endif #ifndef uint #define uint unsign...
通过DS18B20检测环境温度,并在LCD12864上实时显示温度。
通过DS18B20检测环境温度,并在LCD12864上实时显示温度。
DS18B20读取温度(带小数)
由于DS18B20对时间精度要求很高,所以在写读取温度之前一定要改时序 1. 单总线延时函数 //单总线延时函数 void Delay_OneWire(unsigned int t) { t*=12; //t改成t*12 while(t--); } 2. 读取温度(整数) unsigned char read_temperature1() { unsigned c...
DS18B20温度传感器,将实时温度用数码管显示
DS18B20温度传感器(单线通讯,严格按照时序图) 特点: 1、电压范围:3.0v~5.5V 2、独特的单线接口,仅需一条串口线即可实现微处理器与DS18B20的双向通讯; 3、支持电组网功能,实现组网多点测温 4、不需要任何外围原件 5、范围-55‘C~+125’C,精度0.5 6、高精度测温,分辨率9~12位 7、速度快...
蓝桥杯DS18B20学习(读取温度显示在数码管上)
DS18B20是最常见的数字温度传感器,有着诸多优点,比如:体积小;精度高(12位时精度可以达到0.625摄氏度,出厂默认12位);接线简单,无需外围短路;封装形式多样,能满足不同应用需求等等。DS18B20工作时序十分复杂,信号传输只在微妙之间,稍有不慎(例如延时函数的使用不够恰当)就可能导致其整个传感器的工作时序混乱。因此,在写DS18B20的控制程序时一定要弄清工作时序并使用合适的延时函数。...
【cc2541历程】ds18b20发送数值到App
一、简介 本文介绍如何在SimpleBLEPeripheral工程中,采集ds18b20的温度值,通过char6,传送到手机APP端。 二、实验平台 编译环境:IAR820.02 协议栈:BLE-CC254x-1.40 代码查看器:Source Insight 3.5 硬件平台:SmartRf 开发板 安卓APP平台:SmartRf
DS18B20显示温度并报警
DS18B20显示温度并报警 2016-07-24 花花雪 跟单片机谈恋爱 目录: 引言 1理论     1.1DS18B20原理     1.2系统原理图 2程序 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 引言     这个系统想要实现的功能: (1
已成功的DS18B20温度显示程序(带高低限报警、断电记忆)
DS18B20传感器应用的完整程序,一个设定按键,两个调整温度报警值的增、减按键(+125℃~-55℃),设定后将报警值存入其EEPROM中,上电后从中读取报警值。经过使用稳定可靠。
ds18b20.zip(STM32F103使用DS18B20读取代码 C语言 串口打印温度值)
STM32F103使用DS18B20读取代码 C语言 串口打印温度值temp=Get_DS18B20_Tmp()/10; //读取温度 // printf("%0.4lf \r\n",temp);
读取温度传感器DS18B20的实例
配置IO引脚#define DS18B20 BIT4 //配置IO引脚 #define DS18B20_HIGH P2OUT |= BIT4 #define DS18B20_LOW P2OUT &= ~BIT4精确延时宏代码#define CPU_CLOCK 8000000UL //MCL
51单片机下oled显示ds18b20采集温度
将ds18b20采集到的温度通过OLED显示全部源码开发环境51单片机c语言
【学习笔记】Arduino 与 DS18B20 数字温度传感器 联合调试
“DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点 DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯 工作电压范围为3.0 V至5.5 V ,测量温度范围为-55 ° C至+125 ℃ ”——百度百科 管脚定义:面朝印字面,左为GND,右为VCC,中间为数字输出引脚(须接上4.7K—10K的上...
DS18B20读取序列号并匹配读取温度值
此代码详细叙述了DS18B20的单总线的序列号读取方式来读取温度值,处理器是单片机,应用数量更少的io资源
用ds18b20测试温度并且显示在LCD1602上
主函数文件: #include #include #include #include "./delay/delay.h" sbit ds = P1^0; bit ack = 0; sbit RS = P2^4; sbit RW = P2^5; sbit E = P2^6; #define LCDPORT P0 #define LCD_WRITE_DATA 1 #define LCD
基于STM32的DS18B20的温度测量和OLED的显示
本程序可以直接移植使用,DS18B20引脚是接在PB9,需要的可以略作修改就可用
基于FPGA的DS18B20温度测量以及数码管显示
这是我在CSDN的第一篇文章,如果文章排版不好或者存在其它的一些问题,希望大家海涵。 FPGA与各器件的连接如图所示: dq为DS18B20的单总线 dtube_cs_n为数码管的4位 dtube_data为数码管的8段 ext_clk_25m为时钟输入 ext_rst_n为复位输入 顶层文件: module DS18B20( input ext_c...
DS18B20温度采集+串口发送+模块化编程 51单片机
DS18B20温度采集+串口发送+模块化编程
STM32F103ZET6如何驱动DS18B20温度传感器
学stm32差不多一个星期了,学完基础的想自己做个温控风扇,要用到DS18B20,网上的文章都差不多,代码解释很少。我也是一个小白,第一次写博客,我的代码也是借鉴了原子哥的教程,但注释时写出了自己的看法;希望能让更多人能够理解如何去驱动DS18B20吧;接下来我们开启Code模式吧!!! c头文件:ds18b20.h 内容如下:  #ifndef __DS18B20_H #define __...
读温感DS18B20显示温度值带小数.rar
读温感DS18B20显示温度值带小数.rar 读温感DS18B20显示温度值带小数.rar 读温感DS18B20显示温度值带小数.rar 读温感DS18B20显示温度值带小数.rar 读温感DS18B20显示温度值带小数.rar 读温感DS18B20显示温度值带小数.rar
读温感DS18B20显示温度值整数.rar
读温感DS18B20显示温度值整数.rar 读温感DS18B20显示温度值整数.rar 读温感DS18B20显示温度值整数.rar 读温感DS18B20显示温度值整数.rar 读温感DS18B20显示温度值整数.rar 读温感DS18B20显示温度值整数.rar
在stm32F103RCT上实现DS18b20温度显示在大彩串口屏上
在stm32F103RCT上实现DS18b20温度显示在大彩串口屏上,可以作为一个测试程序,使用的是stm32的串口1.
树莓派3 读取DS18B20 温度
突然想玩一玩那一块闲置了N久的树莓派3B。 买的时候就介绍说这个是做物联网等东西的神器,于是我就想,第一个还是把现有的DS18B20温度传感器的数值读回来吧。搞了一晚上都没有找到合适的答案,于是一早Google了英文网站,找到了结果。 在这里分享一下。DS18B20与树莓派连线DS18B20单总线(1-wire)传感器可以以非并行连接接入,这一点几乎与其他市售的传感器都不同!所有传感器共享相同的
stm32F429HAL库使用DS18B20输出温度到电脑串口助手
本程序使用DS18B20数字温度传感器把温度值输出到电脑的窗口调试助手上,程序是更改原子哥的例程。 stm32f29HAL库 DS18B20数字温度传感器 串口调试助手 由于移植的程序没有过多的更改,这里直接就贴程序了,删除了显示屏LCD和SRAM的相关函数,其他没改多少,主程序如下: #include "sys.h" #include "delay.h" #include "usart.h"...
ds18b20温度传感器最简系统 程序+proteus仿真图
这是一个极简的单片机温度传感器实验,只有单片机最小系统加ds18b20传感器及显示部分就可以完成。 *分享给大家* 因为本人没有材料,这些都是东拼西凑的,数码管只有3个,前面两个显示温度,后面度数符号,还有前面两个led亮代表温度为负值。 当温度绝对值大于99即超过两位数码管显示范围时,数码管及led灯会显示-----。 这个原理简单,程序易懂,希望能够帮助初学的同学!单片机交流汇集群189837137。
STC15F2K60S2读取DS18B20温度实例
STC15F2K60S2读取DS18B20温度代码实例下载
19、基于 STM32 的 DS18B20 温度读取
DS18B20 的内部光刻 ROM 中有 64 位序列号, 开始 8 位(28H)是产品类型标号, 接着的 48 位是自身的序列号,最后 8 位是前面 56 位的循环冗余校验码。该传感器可编程为 9、10、11、12 位精度,分别以0.5℃、0.25℃、0.125℃、0.0625℃增量递增,上电默认是 12 位。    12 位的数据转换完之后保存在两个 8 位的 RAM 中, 高字节的前
基于FPGA的DS18b20温度检测verilog
基于FPGA-verilog的DS18b20温度检测,七段数码管显示
ds18b20正负温度检测
ds18b20温度检测 很方便
用DS18B20精确到小数点后一位的温度测量实现
用DS18B20精确到小数点后一位的温度测量实现,C语言。
温度传感器DS18B20 用串口助手显示
温度传感器ds18b20在单片机上的时序实现,并且通过串口调试助手得到返回值.
ATMEGA16读取DS18B20温度,1602显示,并用proteus仿真,成功。
ATMEGA16单片机读取DS18B20的温度数据,用lcd1602显示,并用proteus实现仿真。 实现温度的实时读取,程序中设定温度的上下限,当温度超限时报警,用led小灯进行 指示。    共同学习 q  :1425636507
STC89C51采集DS18B20温度控制继电器
STC89C51采集DS18B20温度,控制2个继电器 温度低于一定的时候动作1个 高于一定的时候动作另1个
基于51单片机及DS18B20温度传感器的数字温度计设计
基于51单片机及DS18B20温度传感器的数字温度计设计,是知创学院Jason大学时做的课程设计,虽说比较简单,但对初学者还是有一些借鉴意义。好多朋友也在微信中留言询问有没有相关资料。特借此机会公布一下下载地址,希望能为需要的朋友提供一点帮助。感谢大家关注知创学院(zicreate.com) 1、实物效果图 2、资料包含的主要内容 3、仿真效果图
DS18B20 LCD显示当前温度
include include “./delay/delay.h”include include <1602.h>include define SUCC 1define ERR 0void ds18b20_init() { ds = 0; delay_us(200); delay_us(200);ds = 1; delay_us(30); if(ds == 0) {
S3C2440 温度传感器ds18b20的驱动编写与测试
ds18b20的详细信息百度百科都有比较详细的介绍:http://www.baidu.com/link?url=tgDW0RZumyv2JQbC7ohrnKj_jtFZmqkrnJd7vp3V24KCiG8bkOHqD7vRoQev3OjBPFgIGUvUyVpfdtgSzJUwm_&wd=&eqid=cb79eb5b0000da5a0000000555e061f4 再有就是特别感谢这位提供da
STM32F103C8T6+OLED+BS18B20温度显示
STM32F103C8T6+七线SPI OLED+BS18B20温度显示,带有四线SPIOLED
详解温度传感器DS18B20编程与使用
DS18B20是由DALLAS半导体公司推出的一种的“一线总线”接口的温度传感器, 与传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。 1.测量温度范围:-55~+125℃ 2.精度:±0.5℃ 3.数据传输:“一线总线”的数字方式传输 图1 硬件连接图 DS18B20共有6种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1 1.复位操作...
基于51单片机的DS18B20温度控制(1602显示)
基于STC89S52单片机的温度控制系统,可以通过按键设置最大最小温度值,DS18B20温度传感器采集回来温度通过1602液晶显示屏显示。内含电路图和程序源码
STM32单片机学习(11) DS18B20温度传感器实验
STM32单片机学习(11) DS18B20温度传感器实验 本程序主要实现 DS18B20温度传感器数据获取,并利用串口通信把温度数据传至计算机 注:使用普中科技开发板测试时,需要拔掉Boot1插口,因为用到的是PA15管脚, 由开发板电路图可知,需要改变PA15 管脚的映射,将其设置成普通IO口 参考资料 DS18B20中文手册.pdf   http://download
关于DS18B20温度传感器的时序详解及代码分析
关于DS18B20温度传感器的时序详解及代码分析简要说明测温工作**:**DS18B20的核心功能是它的直接读数字的温度传感器。温度传感器的精度为用户可编程的9,10,11或12位,分别以0.5℃,0.25℃,0.125℃和0.0625℃增量 递增。在上电状态下默认的精度为12位(所以最后获取的数据要乘以0.0625得到实际温度)。DS18B20启动后保持低功耗等待状态; 当需要执行温度测量(和