一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 6706|回复: 22

18B20温度显示3位数【百 十 个】问题请教

  [复制链接]
发表于 2011-3-16 16:57 | 显示全部楼层 |阅读模式
18B20温度显示3位数【百 十 个】问题请教
现在的程序只能显示2位【十 个位】想改成显示3位数。
谢谢先!!
程序如下。
请教18B20.rar (2.2 KB, 下载次数: 433)
发表于 2011-3-16 18:26 | 显示全部楼层
18B20与18S20有什么区别?
回复

使用道具 举报

发表于 2011-3-16 20:29 | 显示全部楼层
回复 1# shqi2003
     这样改改试试;

    uchar j,time,wendu_bai,wendu_shi,wendu_ge;         //数据变量定义
char dat;
void WriteByte();         //上半屏写一个字节数据函数
void init_timer0();          //中断初始化
/*-------------------------------------------*/
void main()
{uint temp;
                init_timer0();                          //中断初始化
                while(1)
                {        
                        if(time>=100)                   //每2.5秒刷新一次温度数据
                        {
                                time=0;
                                tempchange();     //温度转换命令
       temp=get_temp();
                                wendu_bei=temp/1000;
                                wendu_shi=temp%1000/100;
                                wendu_ge=temp%1000%100/10;
                                
                        }


                                                                        
                        for(j=0;j<16;j++)                        //行扫描
                   {                          
                                 OE=1;                        
                                dat=wendu[j][0];                  //温
                                WriteByte();
                                dat=wendu[j][1];         
                                WriteByte();
                                dat=wendu[j+16][0];         //度  
                                WriteByte();
                                dat=wendu[j+16][1];         
                                WriteByte();


                                
                               dat=table[wendu_bai][j];          //温度百位  需另加点阵字库
                                WriteByte();                                 
                     

                      四字屏" 温 "字会显示不完整了.
回复

使用道具 举报

 楼主| 发表于 2011-3-16 21:02 | 显示全部楼层
谢谢!!

四字屏" 温 "字会显示不完整了.这个没有问题,我会改。
回复

使用道具 举报

 楼主| 发表于 2011-3-16 23:04 | 显示全部楼层
回复  shqi2003
     这样改改试试;

    uchar j,time,wendu_bai,wendu_shi,wendu_ge;         //数据 ...
lyxing 发表于 2011-3-16 20:29 https://www.yleee.com.cn/images/common/back.gif

全部按照上面红色字修改,汇编后提示

    DS18B20.C(32):错误C202:'wendu_bei':未定义的标识符
回复

使用道具 举报

发表于 2011-3-16 23:11 | 显示全部楼层
不好意思  wendu_bei    应为wendu_bai  .
回复

使用道具 举报

 楼主| 发表于 2011-3-16 23:57 | 显示全部楼层
不好意思  wendu_bei    应为wendu_bai  .
lyxing 发表于 2011-3-16 23:11 https://www.yleee.com.cn/images/common/back.gif



    我检查也发现这个问题了。现在汇编通过可以显示。

经过测温发现,原来没有改以前,2位数显示应该是99.9度,结果到75度就显示为0了,等一下又从75度开始往下显示。会不会是18B20山寨版还是程序问题。

所以这个改的和没有改的一样不能显示到100度以上【指标是可以到125度】。

这下晕了
回复

使用道具 举报

 楼主| 发表于 2011-3-17 23:44 | 显示全部楼层
不好意思  wendu_bei    应为wendu_bai  .
lyxing 发表于 2011-3-16 23:11 https://www.yleee.com.cn/images/common/back.gif



    先严重感谢 lyxing, 现在可以显示到125度了。
   原来以为是程序问题,显示到70或者90就没有了,看到不同的管子显示的最高温度不一样,开始怀疑18B20是不是正中的了,在家里找了几年前板上的18B20才发现市场真是鱼目混珠,都是说是原装进口,实际上很多都是山寨版的。

   以后购买不知道怎么样鉴别正版的18B20,哪位朋友有经验。
温度显示125C.jpg
回复

使用道具 举报

发表于 2011-3-18 04:10 | 显示全部楼层
18b20如果不是拆机的,怎么造假?
回复

使用道具 举报

 楼主| 发表于 2011-3-18 13:34 | 显示全部楼层
18b20如果不是拆机的,怎么造假?
狗狗百里游 发表于 2011-3-18 04:10 https://www.yleee.com.cn/images/common/back.gif



    想想也是。
就64位光刻ROM,应该是造假不了,不过现在实际使用预到的问题确实比较郁闷,在同一测试条件完全一样的情况下,同样的2个管【都是全新的】,显示的最高温度确不一样,真是有点费解。
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2026-3-14 00:31 , Processed in 0.034385 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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