打印

430 和ds18b20

[复制链接]
1486|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小营七郎|  楼主 | 2013-8-1 19:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ds18b20返回12位数据,包括符号位,数据有效位11位,温度精确小数点后一位,这十一位在4段数码管显示程序怎么写的。求各位给个思路。

本来是想仿照照6段数码管来写的,程序如下:

4段就要与上BIT4到BIT8,因为这是整数部分的前四位,如果这样的话,BIT0到BIT3和高几位的二进制数怎么处理了?

   void Disp_Numb(uint temper){
    uchar i;

    for(i = 0;i < 6;i++) dN[i] = 0; //初始化显示变量

    //数值转换
    if(temper & BIT0)
    {
        dN[0] = 5;
        dN[1] = 2;
        dN[2] = 6;
    }
    if(temper&BIT1)     
    {
        dN[1] += 5;
        dN[2] += 2;
        dN[3] += 1;
    }
    if(temper & BIT2)     
    {
        dN[2] += 5;
        dN[3] += 2;
        if(dN[2] >= 10)
        {
            dN[2] -= 10;
            dN[3] += 1;
        }
    }
    if(temper&BIT3)     
    {
        dN[3] += 5;
    }
    if(temper & BIT4)
    {
        dN[4] += 1;
    }
    if(temper & BIT5)     
    {
        dN[4] += 2;
    }
    if(temper & BIT6)
    {
        dN[4] += 4;
    }
    if(temper & BIT7)     
    {
        dN[4] += 8;
        if(dN[4] >= 10)
        {
            dN[4] -= 10;
            dN[5] += 1;
        }
    }
    if(temper & BIT8)
    {
        dN[4] += 6;
        dN[5] += 1;
        if(dN[4] >= 10)
        {
            dN[4] -= 10;
            dN[5] += 1;
        }
    }
    if(temper & BIT9)
    {
        dN[4] += 2;
        dN[5] += 3;
        if(dN[4] >= 10)
        {
            dN[4] -= 10;
            dN[5] += 1;
        }
    }
    if(temper & BITA)
    {
        dN[4] += 4;
        dN[5] += 6;
        if(dN[4] >= 10)
        {
            dN[4] -= 10;
            dN[5] += 1;
        }
        if(dN[5] >= 10)
        {
            dN[5] -= 10;
        }
    }
}


相关帖子

沙发
dirtwillfly| | 2013-8-1 20:09 | 只看该作者
没看明白楼主的意思,难道从DS18B20里读出的十一位二进制数直接显示在数码管上?
一般读出的数据转换成温度后,位数就变少了,小数点后保留一位就行

使用特权

评论回复
板凳
小营七郎|  楼主 | 2013-8-1 20:45 | 只看该作者
dirtwillfly 发表于 2013-8-1 20:09
没看明白楼主的意思,难道从DS18B20里读出的十一位二进制数直接显示在数码管上?
一般读出的数据转换成温度 ...

我就是不会转呀,转成4个数码管显示的,之前是6个数码管显示。

使用特权

评论回复
地板
dirtwillfly| | 2013-8-1 21:12 | 只看该作者
给你份资料,这个资料写的挺详细的。 DS18B20中文全套资料.pdf (394.19 KB)

使用特权

评论回复
5
1988020566| | 2013-8-2 00:02 | 只看该作者
4个和六个的 有什么区别么?

使用特权

评论回复
6
1988020566| | 2013-8-2 00:02 | 只看该作者
舍去两位数就行的。

使用特权

评论回复
7
小营七郎|  楼主 | 2013-8-3 09:30 | 只看该作者
dirtwillfly 发表于 2013-8-1 21:12
给你份资料,这个资料写的挺详细的。

嗯,最近忙,资料收了,谢谢啦。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

94

主题

1813

帖子

3

粉丝