永发信息网

单片机读DS18B20温度负值补码问题

答案:2  悬赏:0  手机版
解决时间 2021-02-24 22:19
想用DS18B20采集温度,来给检测系统做温度补偿的,准备在-30度至80度内给检测系统的输出值采N个点,对照不同的温度下系统的检测值用二项式拟合修正。
所以现在要得出DS18B20采集温度的负值,据说DS18B20里是用9位表示温度值,负数用补码表示,我要的是得到温度值给系统修正,不用显示出温度值,那我现在直接用DS18B20得出的二进制码作温度值来给系统修正计算行不行??还是先判断是正还是负然后取温度??因为负数用补码表示的值也可以表示一个正数啊

如果DS18B20的温度值寄器是16位的,负数用补码表示,那我定义一个int型变量行吗? 那么负数的补码会不会是这16范围中另一个正数吗?
最佳答案
你可需判断低12位就可以了,高位不管
你可以参考一下我的程序,18B20中的负温度是以补码表示的!!!!!!


uchar ReadTemperature(void)
{
uchar a;
uchar b;
uint t=0;

Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度

a=ReadOneChar(); //低8位
b=ReadOneChar(); //高8位

t=b;
t<<=8;
t=t|a;
if(t>=2048)//最高位为一说明是个负温
{
t^=0xffff;
dis_buf[0]=17;//在数码管上显示“-”,你可以用一个程序标志位的0,1来表示正温负温
}
else
{
dis_buf[0]=16;
}
t=t>>4;//*0.0625; //数值转换
return((uchar)t);
}
全部回答

1、ds18b20的三个引脚的功能是什么?

答:ds18b20的3个引脚分别为vcc电源正极、gnd电源负极、dq数据端。

2、 ds18b20复位时间是多少?

答:ds18b20复位时间是480us~960us。

3、 如何判断ds18b20工作正常?

答:不存在此功能。

4、单片机如何实现对ds18b20的写0操作?

答:不存在此功能。(你是不是说如何启动读取ds18b20,启动只需让单片机与dq的接口至低电平保持1微妙以上时间)

5、 ds18b20的分辨率为多少位?如何设置分辨率位数?

答:"ds18b20的分辨率为在-55~127摄氏度,分辨率可以进行量化为9、10、11、12位对应一个单位的温度为:0.5摄氏度、0.25摄氏度、0.125摄氏度、0.0625摄氏度。

6、ds18b20的温度数据如何?如何将区分正负温?

答:ds18b20的温度数据的数据为一个16位二进制数。高5位为判断正负位(高5位为1时温度为负、高5位为0时温度为正),对数据处理的方法,由于负数的数据在存储的时候是以补码的形式存储的,所以在显示的时候补码应该相应的转换为原码。

还有什么疑问?可以追问~上面的希望对你有帮助~

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
【形容风大的句子】形容风大的句子
东方山水酒店(深圳福永店)我想知道这个在什么
信用卡到了还款日期。还能迟几天还
有一句歌词是这样的:『你现在还好吗』?这首
电视剧情剑山河里的赵匡胤爱京娘吗
现在拉伸机价格怎么样?
盛世名城的房子怎么样?知道的说说。
什么时候可以吻女孩子
纵横和创世还有起点哪个小说网站适合新人发展
玩具不倒翁被扳倒以后会自动站立起来,是因为
微信我发给好友图文笔记,朋友打不开
宏达中路/荣昌东街(路口)地址在哪,我要去那
福建到广州有多远
最近刚了解了OA这个概念,这类app多吗,哪个
0.76kg等于多少斤
推荐资讯
wow7.0恶魔猎手怎么去潘达利亚
收到贷款会计分录怎么做?
硅pu材料跟pu有什么区别?
苏宁电器二七广场旗舰店东门这个地址在什么地
帮我的女儿起个名字,有寓意,要秀气一点的。
毛泽东在《论人民民主专政》一文中指出,人民
求关于纪律的板报的素材
有没有在常德盘子女人坊团购拍摄过的?效果、
viking29031可以进口吗
大白天的总是忘记喘气,尤其是坐着的时候,会
从蝌蚪发育到青蛙,呼吸器官的变化是DA. 鳔、
形容景点人多的成语有哪些
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?