新手求教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里的 温度值正负判断 为什么要判断大于6348 ,为什么取这个值?
http://zhidao.baidu.com/question/576118682.html?quesup2&amp;amp;oldq=1
通过DS18B20检测环境温度,并在LCD12864上实时显示温度。
通过DS18B20检测环境温度,并在LCD12864上实时显示温度。
DS18B20温度转换与显示
单片机练习 - DS18B20温度转换与显示 最近都在学习和写单片机的程序, 今天有空又模仿DS18B20温度测量显示实验写了一个与DS18B20基于单总线通信的程序. DS18B20 数字温度传感器(参考:智能温度传感器DS18B20的原理与应用)是DALLAS 公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在
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读取温度并显示在数码管上
下面是我的函数 分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的实例
配置IO引脚#define DS18B20 BIT4 //配置IO引脚 #define DS18B20_HIGH P2OUT |= BIT4 #define DS18B20_LOW P2OUT &= ~BIT4精确延时宏代码#define CPU_CLOCK 8000000UL //MCL
DS18B20显示温度并报警
DS18B20显示温度并报警 2016-07-24 花花雪 跟单片机谈恋爱 目录: 引言 1理论     1.1DS18B20原理     1.2系统原理图 2程序 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 引言     这个系统想要实现的功能: (1
蓝桥杯DS18B20学习(读取温度显示在数码管上)
DS18B20是最常见的数字温度传感器,有着诸多优点,比如:体积小;精度高(12位时精度可以达到0.625摄氏度,出厂默认12位);接线简单,无需外围短路;封装形式多样,能满足不同应用需求等等。DS18B20工作时序十分复杂,信号传输只在微妙之间,稍有不慎(例如延时函数的使用不够恰当)就可能导致其整个传感器的工作时序混乱。因此,在写DS18B20的控制程序时一定要弄清工作时序并使用合适的延时函数。...
STC15F2K60S2读取DS18B20温度实例
STC15F2K60S2读取DS18B20温度代码实例下载
51单片机下oled显示ds18b20采集温度
将ds18b20采集到的温度通过OLED显示全部源码开发环境51单片机c语言
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 中, 高字节的前
DS18B20采集的温度实时显示在lcd液晶屏上
本程序是pic18单片机中的一个实例,通过DS18B20温度传感器对温度的采集,然后在pic18f452单片机控制下实时显示在lcd液晶屏上。部分程序如下: #include <pic18.h> //调用头文件,可以去PICC18软件下去查找PIC18FXX2.H __CONFIG(1,XT) ; //晶振为外部4M __CONFIG(2,WDTDIS) ; //看门狗关闭 __CONFIG(4,LVPDIS) ; //禁止低电压编程 #define RSPIN RB5 //Data or Instrument Select #define RWPIN RB4 //Write or Read #define EPIN RB3 //6800 mode Enable single unsigned char temp1; //采集到的温度高8位 unsigned char temp2; //采集到的温度低8位 //转换后的温度值小数点部分查表 const unsigned char tablexiao[16]={0,0,1,2,2,3,4,4,5,6,6,7,8,8,9,9};
Socket再学习——开发板ds18b20获取温度值并上报服务器
经过一段时间的学习、积累,自己对于物联网、计算机网络、socket编程等相关的领域和知识有了新的理解,网络部分一直是重中之重。因此重新再学习了Linux下的socket,并结合了一个简单的实际例子再来学习client端与server端工作流程。===========================================文件描述符:实际上就是Linux内核给分配的“称谓”,而在我们的TCP通
STM32F103ZET6如何驱动DS18B20温度传感器
学stm32差不多一个星期了,学完基础的想自己做个温控风扇,要用到DS18B20,网上的文章都差不多,代码解释很少。我也是一个小白,第一次写博客,我的代码也是借鉴了原子哥的教程,但注释时写出了自己的看法;希望能让更多人能够理解如何去驱动DS18B20吧;接下来我们开启Code模式吧!!! c头文件:ds18b20.h 内容如下:  #ifndef __DS18B20_H #define __...
单片机+DS18B20+12864液晶显示温度及温度变化的波形
<br />#include<reg51.h><br />#include<stdlib.h><br />#include<stdio.h>//头文件<br />#define uchar unsigned char<br />#define uint unsigned int<br />sbit DQ=P2^6;//ds18b20与单片机连接口<br />sbit PWM=P2^5;//控制信号的输出<br />unsigned char code str[]={"my name is zhb "};<b
用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
Arduino Uno R3连接 DS18B20 获取当前环境温度
一、工作电压3.0V-5.5V,测量温度范围-55,+125(摄氏度) 二、引脚定义: 面朝平的一面,左为GND,右为VCC,中间为数字引脚(必须接4.7K-10K的上拉电阻) 三、接线示意   1.(本图片来源于互联网) 2.本人自己的接线 代码: #include&amp;lt;OneWire.h&amp;gt; #include&amp;lt;DallasTemperature.h&amp;gt; ...
LCD1602显示实时温度代码(STC15W4K56S4)
该文件为利用STC15W4K56S4芯片的核心板,以及用DS18B20作为温度传感器,LCD1602作为显示用的屏幕,用C语言写的代码。
DS18B20温度测量报警 (可以设定温度上下限)
这是我大二的上学期的一个作品,代码有参考别人的,就是温度转换,LCD显示部分, 剩下的逻辑是自己写的, 给出来大家参考,代码没问题,实物验证过的. #include &lt;reg52.h&gt; #include &lt;stdio.h&gt; uchar DQ; uchar k; sbit ds=P2^4; //温...
DS18B20设置高低温限值(写暂存器)
最近使用到DS18B20,一个总线挂载多个传感器,为了识别每个传感器的实际位置,想了一个办法:在使用前先对DS18B20编号并记录该编号的实际放置位置。这样在读取数据后即可得到是哪个位置编号的温度值。看了看手册发现内部的高低温报警阈值是存储在EEPROM正好用来存储位置编号。 首先了解下通讯过程,ROM指令,RAM指令以及寄存器内容: // 根据DS18B20的通讯协议,主机(单片机)控制DS
ATMEGA16读取DS18B20温度,1602显示,并用proteus仿真,成功。
ATMEGA16单片机读取DS18B20的温度数据,用lcd1602显示,并用proteus实现仿真。 实现温度的实时读取,程序中设定温度的上下限,当温度超限时报警,用led小灯进行 指示。    共同学习 q  :1425636507
STM32的DS18B20数字温度传感器程序,亲测可用
STM32的DS18B20数字温度传感器程序,亲测可用。内有详细注释和说明文档,很好的参考资料。
LCD1602显示DS18B20的数据
使用arduino uno单片机,采集DS18B20数字是温度传感器的数据,并在LCD1602显示。
已成功的DS18B20温度显示程序(带高低限报警、断电记忆)
DS18B20传感器应用的完整程序,一个设定按键,两个调整温度报警值的增、减按键(+125℃~-55℃),设定后将报警值存入其EEPROM中,上电后从中读取报警值。经过使用稳定可靠。
壹拾玖:DS18B20的温度读取
1111
C# 读取18b20温度计度数 MODBUS协议
本程序能够自动读取温度数据,采用C#实现,对刚接触串口通讯的童鞋具有重要的意义。
51单片机控制温度传感器DS18B20
(1)DS18B20初步认识DS18B20是美国DALLAS半导体公司推出的一种数字化单总线器件,属于新一代适配微处理器的改进型智能温度传感器。我们先来看看DS18B20在芯片手册上的标题——“DS18B20 Programmable Resolution 1-Wire Digital Thermometer”。从这个标题上看我可以获取一些有价值的信息。首先分辨率是可以编程的,也就是我们可以通过程...
在stm32F103RCT上实现DS18b20温度显示在大彩串口屏上
在stm32F103RCT上实现DS18b20温度显示在大彩串口屏上,可以作为一个测试程序,使用的是stm32的串口1.
基于STC89C51单片机的DS18B20的温度报警器(1602显示温度)
这个程序是自己在做多点测温系统时用C语言顺便写的 还热乎呢 呵呵 基于DS18b20的温度报警器 绝对好使 同时能在液晶1602上显示温度
STM32单片机学习(11) DS18B20温度传感器实验
STM32单片机学习(11) DS18B20温度传感器实验 本程序主要实现 DS18B20温度传感器数据获取,并利用串口通信把温度数据传至计算机 注:使用普中科技开发板测试时,需要拔掉Boot1插口,因为用到的是PA15管脚, 由开发板电路图可知,需要改变PA15 管脚的映射,将其设置成普通IO口 参考资料 DS18B20中文手册.pdf   http://download
DS18B20温度格式转换
#include #include /* DS18B20温度格式转换 */ uint8_t tempIntPart[3]; uint8_t tempDecPart[4]; float convertToFloat(int16_t temperature) { float temp; temp = (float)temperature; temp /= 16.0f;
DS18B20读取序列号并匹配读取温度值
此代码详细叙述了DS18B20的单总线的序列号读取方式来读取温度值,处理器是单片机,应用数量更少的io资源
STC15F2K60S2读取DS18B20温度串口显示
//************************** //程序说明:stc15f2k60s2采集ds18b20温度数据,并从串口输出 //为方便大家调试,特附该程序的项目下载地址: //采用的是22.1184M晶振 //**************************#include<s
DS18B20温度读取笔记1-复位函数
DS18B20主要性质: 全数字输入/输出单总线通信结构 (只占用一个IO口,而且在这个IO口上能挂接多个DS18B20) 内部温度为12bit分辨率,精度为正负0.5℃ (注意不要将精度和分辨率混为一谈) 12位分辨率的时候转换工作周期最长为750ms (算是比较慢的外设了,设计时要考虑多任务工作的要求) 可以使用寄生电源模式(可以再省掉VCC的线,这种模式下总共只要2根线就能工
读温感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
基于51单片机及DS18B20温度传感器的数字温度计设计
基于51单片机及DS18B20温度传感器的数字温度计设计,是知创学院Jason大学时做的课程设计,虽说比较简单,但对初学者还是有一些借鉴意义。好多朋友也在微信中留言询问有没有相关资料。特借此机会公布一下下载地址,希望能为需要的朋友提供一点帮助。感谢大家关注知创学院(zicreate.com) 1、实物效果图 2、资料包含的主要内容 3、仿真效果图
关于蓝桥杯——ds18b20温度传感器
对于ds18b20,比赛会给我们驱动代码,不过,在我拿到的资料里——也就是以往比赛给的驱动,他的驱动代码有一些问题。首先是延时程序,它的延时程序是void Delay_OneWire(unsigned int t){  while(t--);}但是这个延时程序是STC12单片机的ds18b20驱动延时,15单片机的延时应该是void Delay_OneWire(unsigned int t){un...
DS18B20单线多点测温 单线多DS18B20测温
DS18B20单线多点测温,设计中采用ATMEGA16单片机做控制,一个IO引脚接入两个DS18B20, 通过读取DS18B20的rom中的序列号,匹配不同的DS18B20 实现单线多点测温。单线挂载多个 DS18B20顺序读取,并通过LCD1602显示,有实现proteus仿真。 开发环境为winavr。       共同学习  q  :1425636507。
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 新手如何学习java 新手如何学习产品经理