找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1910|回复: 2
打印 上一主题 下一主题
收起左侧

关于DS18B20单片机程序中的问题

[复制链接]
跳转到指定楼层
楼主
ID:288485 发表于 2018-4-2 23:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        TEMP=TEMP_data[1]&0xf0;
        if(TEMP==0xf0)   
        {
                if(TEMP_data[0]==0)
                {
                        TEMP_data[0]=~TEMP_data[0]+1;
                        TEMP_data[1]=~TEMP_data[1]+1;
                }
                else
                {
                        TEMP_data[0]=~TEMP_data[0]+1;
                        TEMP_data[1]=~TEMP_data[1];
                }
这几段程序什么意思呢?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:164602 发表于 2018-4-3 08:45 | 只看该作者
老实说,这段程序是什么意思,还真不知道。你编过程序就知道,变量取名是有编程者思路的,没注释时,看程序是非常困难的。而且你还只发个部分出来。
所以没有人帮你,不是不帮,是帮不了。

我猜了个答案,不知道对不对:
因为18B20转换出来的温度值,是以补码方式保存的,所以,读温度值时,就必须转换为正常的数值。
补码规则是:正数的补码就是正数本身,负数的补码,是原码取反再加一。
看你这个程序,好像是这样的数据转换,至于是怎么用的,就不知道了。
我猜的,不知道对不对。
回复

使用道具 举报

板凳
ID:288485 发表于 2018-4-3 09:54 | 只看该作者
HC6800-ES-V2.0 发表于 2018-4-3 08:45
老实说,这段程序是什么意思,还真不知道。你编过程序就知道,变量取名是有编程者思路的,没注释时,看程序 ...

谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表