久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6697|回復(fù): 19
打印 上一主題 下一主題
收起左側(cè)

關(guān)于多個ds18b20測溫數(shù)碼管顯示的問題

  [復(fù)制鏈接]
回帖獎勵 100 黑幣 回復(fù)本帖可獲得 20 黑幣獎勵! 每人限 1 次(中獎概率 50%)
跳轉(zhuǎn)到指定樓層
樓主
ID:86791 發(fā)表于 2015-12-12 10:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
為什么使用單個ds18b20測溫用數(shù)碼管顯示很正常。
當(dāng)多個ds18b20測溫時,數(shù)碼管顯示其中一個ds18b20的溫度時數(shù)碼管一個很亮,其他數(shù)碼管很暗還會一直閃??

源碼:
#include"delay.h"
void delay(uint z)      //毫秒級延時函數(shù)
{
     uint x,y;
  for(x=z;x>0;x--)
   for(y=240;y>0;y--);
}
void delay_18B20(uint t)  //ds18b20延時函數(shù)
{
     while(t--);
}

數(shù)碼管程序:
#include<stc12c5a60s2.h>
#include"smg.h"
#include"delay.h"
#define DataPort P1     //定義數(shù)據(jù)端口 程序中遇到DataPort 則用P0 替換
sbit LATCH2=P2^3;    //位選
sbit LATCH1=P2^2;    //段選
uchar code smg_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar code smg_we[]={0xbf,0x7f};
void display(uchar i,uchar dat)
{
       DataPort=0;   //清空數(shù)據(jù),防止有交替重影
       LATCH1=1;     //段鎖存
       LATCH1=0;   
    DataPort=smg_we[i]; //取位碼
       LATCH2=1;     //位鎖存
       LATCH2=0;
    DataPort=smg_du[dat]; //取顯示數(shù)據(jù),段碼
       LATCH1=1;     //段鎖存
       LATCH1=0;
         
//    delay_18B20(200); // 掃描間隙延時,時間太長會閃爍,太短會造成重影
//    DataPort=0;   //清空數(shù)據(jù),防止有交替重影                  
}

ds18b20程序:
#include<stc12c5a60s2.h>
#include"ds18b20.h"
#include"smg.h"
#include"delay.h"      //注:stc12c5a60s2單片機執(zhí)行一條語句的時間是普通51單片機的1/12,在寫時序時一定要注意到
sbit DQ=P2^0;
uchar code str1[]={0x28,0xC2,0x99,0x41,0x07,0x00,0x00,0xBE}; //ROM 1
uchar code str2[]={0x28,0xAE,0x79,0xFA,0x05,0x00,0x00,0x90}; //ROM 2
uchar data disdata[2];
uint tvalue;         //溫度值

void init_ds18b20()//ds1820復(fù)位   
{
DQ=1;          //DQ復(fù)位
delay_18B20(40); //延時
DQ=0;          //DQ拉低
delay_18B20(1000); //精確延時大于480us
DQ=1;          //拉高
delay_18B20(400);
}
void write_byte(uchar dat)      //寫一個字節(jié)
{
    uchar i=0;
    for(i=8;i>0;i--)
    {
   DQ=0;
      DQ=dat&0x01;
      delay_18B20(100);
      DQ=1;
      dat>>=1;
    }
}
uchar read_byte()       //讀一個字節(jié)
{
    uchar i=0;
uchar dat=0;
for(i=8;i>0;i--)
{  
     DQ=0; //給脈沖信號
     dat>>=1;
     DQ=1; //給脈沖信號
     if(DQ)
     dat|=0x80;
     delay_18B20(100);
}
   return(dat);
}
void ds18b20_Matchrom(uchar a)  //匹配ROM
{
char j;
write_byte(0x55);    //發(fā)送匹配ROM命令
if(a==1)
{
for(j=0;j<8;j++)
  write_byte(str1[j]);  //發(fā)送18B20的序列號,先發(fā)送低字節(jié)
}
if(a==2)
{
for(j=0;j<8;j++)
  write_byte(str2[j]);  //發(fā)送18B20的序列號,先發(fā)送低字節(jié)
}
}
uchar read_temp(uchar z)   //讀取溫度值并轉(zhuǎn)換
{
    uchar a,b;
init_ds18b20();   
write_byte(0xcc);   //跳過讀序列號
init_ds18b20();
if(z==1)
{
  ds18b20_Matchrom(1);   //匹配ROM 1
}
if(z==2)
{
  ds18b20_Matchrom(2);   //匹配ROM  2
}
write_byte(0x44);//*啟動溫度轉(zhuǎn)換*/
delay(5);
init_ds18b20();   
write_byte(0xcc);    //跳過讀序列號
init_ds18b20();
if(z==1)
{
  ds18b20_Matchrom(1);       //匹配ROM 1
}
if(z==2)
{
  ds18b20_Matchrom(2);    //匹配ROM  2
}
write_byte(0xbe);//*讀取溫度*/
a=read_byte();
b=read_byte();
tvalue=b<<4;
tvalue|=(a&0xf0)>>4;
return(tvalue);
}

void ds1820display()//溫度值顯示
{   
   
   if(z==1)
  {
      read_temp();
      disdata[0]=tvalue%100/10;//十位數(shù)
      display(0,disdata[0]);
   delay_18B20(2000);
   disdata[1]=tvalue%10;//個位數(shù)
   display(1,disdata[1]);
//   delay(5);
   
      
  }
  
}

主程序;
#include"ds18b20.h"

void main()
{
    init_ds18b20();
    while(1)
{
    ds1820display();    //溫度值顯示
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報

沙發(fā)
ID:76227 發(fā)表于 2015-12-12 11:34 | 只看該作者
多個DS18B20的時候電流較比單個DS18B20需求的電流大,對于這種情況建議   你的數(shù)碼管單獨使用供電電源   不要直接用單片機上的電源供電
回復(fù)

使用道具 舉報

板凳
ID:99411 發(fā)表于 2015-12-12 12:37 | 只看該作者

回帖獎勵 +20 黑幣

我也不懂,只是想回答拿個積分下載
回復(fù)

使用道具 舉報

地板
ID:67175 發(fā)表于 2015-12-20 07:43 | 只看該作者
使用多個傳感器要用到單總線,你可以看看。
回復(fù)

使用道具 舉報

5#
ID:94642 發(fā)表于 2016-1-20 15:05 | 只看該作者

回帖獎勵 +20 黑幣

這個應(yīng)該和硬件有關(guān),和軟件沒關(guān)系
回復(fù)

使用道具 舉報

6#
ID:103977 發(fā)表于 2016-1-21 10:20 | 只看該作者
多個DS18B20的時候電流較比單個DS18B20需求的電流大
回復(fù)

使用道具 舉報

7#
ID:103999 發(fā)表于 2016-1-21 13:24 | 只看該作者
看不到C只會用匯編
回復(fù)

使用道具 舉報

8#
ID:115486 發(fā)表于 2016-4-20 19:25 | 只看該作者

回帖獎勵 +20 黑幣

寫的很好
回復(fù)

使用道具 舉報

9#
ID:115545 發(fā)表于 2016-4-20 20:36 | 只看該作者
這是基于無線的嗎?
回復(fù)

使用道具 舉報

10#
ID:75321 發(fā)表于 2016-4-26 16:26 | 只看該作者

回帖獎勵 +20 黑幣

檢查一下你的硬件電路,看電壓是否有跳動
回復(fù)

使用道具 舉報

11#
ID:75321 發(fā)表于 2016-4-26 16:28 | 只看該作者
如果電壓很穩(wěn)定,則可以看看是否存在虛焊的地方;數(shù)碼管與單片機之間可以去掉限流電阻

評分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

12#
ID:99938 發(fā)表于 2016-4-26 22:56 | 只看該作者
首先你需要看看電壓是否穩(wěn)定,數(shù)碼管不亮可能是焊接的問題,或驅(qū)動的地方的焊接。既然一個能很亮,很可能在焊接的地方。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

13#
ID:97438 發(fā)表于 2016-4-27 09:41 | 只看該作者
和軟件也是有關(guān)系的。。。你的延時太久了,導(dǎo)致數(shù)碼管刷新很慢,所以會出現(xiàn)這個問題

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

14#
ID:104472 發(fā)表于 2016-4-27 09:57 | 只看該作者
18b20直接讀出的數(shù)據(jù)在數(shù)碼管上來不斷刷,造成數(shù)碼管無法顯示。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

15#
ID:115486 發(fā)表于 2016-5-19 20:39 | 只看該作者
有什么問題嗎?
回復(fù)

使用道具 舉報

16#
ID:115486 發(fā)表于 2016-5-19 20:39 | 只看該作者
怎么只有8幣
回復(fù)

使用道具 舉報

17#
ID:122080 發(fā)表于 2016-5-19 23:03 | 只看該作者

回帖獎勵 +20 黑幣

如果寫ROM的時候選擇了跳過序列碼模式,可能導(dǎo)致只有一個溫度傳感器響應(yīng)
回復(fù)

使用道具 舉報

18#
ID:197037 發(fā)表于 2017-5-5 19:36 | 只看該作者
和軟件也是有關(guān)系的吧。延時太久會導(dǎo)致數(shù)碼管刷新很慢的
回復(fù)

使用道具 舉報

19#
ID:170270 發(fā)表于 2017-5-6 13:26 | 只看該作者
程序的問題 數(shù)碼管刷新在2MS左右正常  把顯示程序放在2MS的定時中斷里面就OK了
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久99精品久久久久久 | 久久99精品国产自在现线小黄鸭 | 日韩欧美专区 | 久草视频网站 | 男人的天堂avav | 国产精品99久久久久久久vr | 在线视频h| 99久久久久久久 | 日韩国产精品一区二区三区 | 免费在线一区二区 | 欧美精品一区二区三区蜜桃视频 | 精品国产欧美一区二区三区成人 | 国产精品久久二区 | 久久成人精品视频 | 久久一区二区三区四区 | 午夜视频在线观看网址 | 99re视频| 亚洲欧美自拍偷拍视频 | 三级国产三级在线 | 天天干精品 | 欧美专区日韩专区 | 日韩精品一区二区三区老鸭窝 | 亚洲国产一区二区三区, | 午夜亚洲 | 99亚洲精品 | 亚洲欧美一区二区三区国产精品 | 国产精品视频999 | 国产成人精品一区二区三区四区 | 久久成人18免费网站 | 国产一区在线视频 | a级在线| 亚洲一区av| 亚洲欧美综合精品另类天天更新 | 日韩中文字幕视频在线观看 | 福利视频网站 | 一区二区视频在线 | 久久久久亚洲av毛片大全 | 91九色在线观看 | 91视频一区 | 国内av在线 | 台湾佬久久 |