永发信息网

C51芯片编写电子时钟,以下是我的DS18B20 部分的程序,求: 怎么读取小数和负数啊,现在只能读取正整数啊.

答案:2  悬赏:50  手机版
解决时间 2021-02-06 20:15
  • 提问者网友:低吟詩仙的傷
  • 2021-02-05 19:22
C51芯片编写电子时钟,以下是我的DS18B20 部分的程序,求: 怎么读取小数和负数啊,现在只能读取正整数啊.
最佳答案
  • 五星知识达人网友:撞了怀
  • 2021-02-05 20:52
我不会设置分辨率,直接用的是0.0625......
比如你从里面得到0xf8(高字节temph),0x08(低字节templ);里面的1就是小数部分,8H=1000d
所以1*2负一次方+0*2负2次方.......+
再比如你把它提出来之后,保存在tempdf中,执行if(tempdf>=8)tempdf=5;
else tempdf=0;直接用于显示就行啦,至于负数
if((temph&0xf8)!=0x00) //若温度为负的处理,对二进制补码的处理
直接用于数码管显示就行啦,液晶就不知道啦,我不会液晶,妈的累死我啦,以后再也不这样做啦
全部回答
  • 1楼网友:持酒劝斜阳
  • 2021-02-05 21:05
把你取得的数乘以10,在把这个数赋值给一个整形变量,再把这个变量除以10取余 就能得到你要的小数了。负数 你看DS18B20芯片手册吧。追问就是 我在我原有程序的基础上 怎么再写语句呀,,这个C语言 没有学好啊追答int a ,b;
a=采集到的数据*10
b=a%10 这就到了小数追问加到 我给出的源程序 怎么加啊,,还有负数呢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯