微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 我是新学生,想问问DS18B20温度读出来,怎么转换成带小数的十进制数,显示出来

我是新学生,想问问DS18B20温度读出来,怎么转换成带小数的十进制数,显示出来

时间:10-02 整理:3721RD 点击:
我最近在学习DS18B20 , 温度读出来后不知如何转换成带小数的十进制数显示在1602上。希望大神工程师点拨一番。谢谢。

我发过一个帖子,你去我那看看,有源代码,也是1602显示的

datasheet上有说明呀

坛友将链接给小编附上呀         

这就去给发链接去

我的51学习之DS18B20
http://bbs.elecfans.com/jishu_940818_1_1.html
(出处: 中国电子技术论坛)
你可以看看这个帖子,有源代码

好的  多谢了              

相互帮助么,还有就是你回复的真迅速呀

正在看资料  准备睡觉了  

嗯嗯,早睡早起,明天继续战斗

谢谢各位,我昨天看资料写的程序
uint16_get_temp()
{
        uint8 a,b;
        uint16 d;
        float c;
        temp_change();
        INIT_DS18B20();
        delay(1);
        DS18B20_write(0xcc);
        DS18B20_write(0xbe);
        a=DS18B20_read();
        b=DS18B20_read();
        d=b;
        d<<=8;
        d=d|a;
        c=d*0.0625;
        temp1=c*10+0.5;
       
        return temp1;
}
奇怪的是,读出来的显示在1602的数,大了好多。不知是何故?
void main()
{
        LCD_init();
        while(1)
        {
                temp2=uint16_get_temp();
                delay_us(20);
                shi=temp2/10;
                ge=temp2%10;
                LCD_write_com(0x80);
                LCD_write_date(0x30+shi);
                LCD_write_date(0x30+ge);
                LCD_write_date('.');
               
                                
        }
}

就是数据类型的问题,没啥技术含量。

不知 那个资料到位了吗

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top