怎么样用18B20读取小数点后一位?我的数码管显示小数点后一位,一直是8...

uint ReadTemperature(void) { uchar a=0,b=0; uint t=0; /********开始转换********/ Init_DS18B20(); WriteOneChar(0xCC); /*跳过ROM指令*/ WriteOneChar(0x44); /*开始转换温度*/ /********度暂存数据********/ Init_DS18B20(); WriteOneChar(0xCC); /*跳过ROM指令*/ WriteOneChar(0xBE); /*写入读暂存命令*/ a=ReadOneChar(); b=ReadOneChar(); t=b; t<<=8; t=t|a; t=t*0.625; return(t);}

第1个回答  2012-09-25
a=ReadOneChar();
b=ReadOneChar();
t=b;
t<<=8;
t=t|a;

a = t % 16; //取出小数部分
t = t / 16; //这是整数部分

return(t);

a 中,已经是小数,可以根据你的需求,自行处理。

怎么样用18B20读取小数点后一位?我的数码管显示小数点后一位,一直是8...
b=ReadOneChar();t=b;t<<=8;t=t|a;a = t % 16; \/\/取出小数部分 t = t \/ 16; \/\/这是整数部分 return(t);a 中,已经是小数,可以根据你的需求,自行处理。

请教关于DS18B20温度传感器的温度读取
delay(50); \/\/ 550us DQ = 1; \/\/给18B20发出复位信号 delay(6); \/\/ 66us flag = DQ; \/\/检测18B20发出的存在脉冲"0",判断复位是否成功 } delay(45); \/\/延时500us flag = ~DQ;\/\/18B20存在脉冲过后变"1",取反后仍为"0"} DQ=1;} \/\/18B20写1个字节函数 * 向1-WIRE总线上...

基于18B20的多点温度显示系统
3、用4位数码管进行循环显示,其中最高位显示通道提示符A~H,低3位显示实际温度值,每秒切换一个通道进行轮流显示; 4、 可以随时查看指定通道的温度值(扩充功能)。 二、设计指导 1、方案选择 该系统主要由温度检测和数据采集两部分组成。下面列举两种实现方案: 方案一:温度检测可以使用低温热偶或铂电阻,数据采集部...

单片机18b20的资料
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃\/LSB形式表达,其中S为符号位。 这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际...

DS18B20和单片机测温,双位或四位LED显示,为什么最后一位特别亮,前面的...
在每位数码管的延时后再送一次数据,这个数据主要为关闭显示(把所有位选置为无效)。如果没有关闭,那么在显示最后一位数码管后会执行别的子程序,这些子程序对最后一位数码管来说相当于又延时了一下。这样看来最后一位数码管的延时时间比其它几位的要长,当然会亮很多了。另外你可以参考一下我的...

谁看看我的程序,数码管只显示小数点,不显示18b20测出的温度怎么回事,18b...
sbit dula=P2^6; \/\/数码管段选线 sbit wela=P2^7; \/\/数码管位选线 uint temp;float f_temp;unsigned char code table[]={ 0x3f,0x06,0x5b,0x4f, \/\/带小数点编码 0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; \/\/不...

18B20测温时读取到的温度数据怎么转换!
b_bit equ 21h ;数码管十位数存放内存位置 ;进行温度显示,这里我们考虑用网站提供的两位数码管来显示温度 ;显示范围00到99度,显示精度为1度 ;因为12位转化时每一位的精度为0.0625度,我们不要求显示小数所以可以抛弃29H的低4位 ;将28H中的低4位移入29H中的高4位,这样获得一个新字节,这个...

用51单片机和18b20做一个温度计,求一个完整程序,要求用12864显示。
这个是用数码显示的 你自己改改显示就ok了 12864 有带字库的那种,只要输入ASCII码就行了 程序有点乱,你注意换行就行 1.DS18B20基本知识 DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很...

有关温度报警器的程序,有关DS18B20的程序已写好,求助有关蜂鸣器报警和温...
YES 确认键 用户设定目标温度后进行确认NO 清除键 用户设定温度错误或误按了 YES 键后使用3图3 键盘接口电路 显示采用 3 位共阳 LED 动态显示方式,显示内容有温度值的十位、个位及小数点后一位。用 P2 口作为段控码输出,并用 74HC244 作驱动。P1.0—P1.2 作为位控码输出,用PNP 型三极管做驱动。模块电路如...

...以下是我的DS18B20 部分的程序,求: 怎么读取小数和负数啊,现在只能...
我不会设置分辨率,直接用的是0.0625...比如你从里面得到0xf8(高字节temph),0x08(低字节templ);里面的1就是小数部分,8H=1000d 所以1*2负一次方+0*2负2次方...+ 再比如你把它提出来之后,保存在tempdf中,执行if(tempdf>=8)tempdf=5;else tempdf=0;直接用于显示就行啦,至于负数 if((...

相似回答
大家正在搜