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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1992|回復: 12
收起左側

求助各位大佬 51單片機oled和ds18b20顯示實時溫度不論怎么復位,溫度一直不變

[復制鏈接]
ID:1055423 發表于 2023-1-29 19:50 | 顯示全部樓層 |閱讀模式
51單片機oled和ds18b20顯示實時溫度不論怎么復位,溫度一直不變,這是為什么?求各位大佬留下意見,以下是主函數。跪謝

#include "REG51.h"
#include "oled.h"
#include "bmp.h"
#include "DS18B20.h"

int main(void)
{
        OLED_Init();                        //初始化OLED ,oled代碼來源于中景園
        while(1)
        {               
                float T;//用于后續存儲讀取的溫度
                OLED_Clear();
                OLED_ShowString(0,4,"Temperature:",16);//顯示temperature,顯示在4列0行,占倆行
               
                 DS18B20_CONVERT_T();//開始,ds18b20代碼來源于江科大,此函數中包含,初始化->skip ROM->convert t
                T=DS18B20_READT();//提取溫度,存入T
                if(T<0){OLED_ShowString(0,6,"-",16);}//判斷正負顯示符號,顯示在6列0行
               
                 OLED_ShowNum(1,6,T,3,16);//三位整數部分
                OLED_ShowString(4,6,".");//顯示小數點
                OLED_ShowNum(5,6,(unsigned long)(T*10000)%10000,4,16);//顯示小數部分
                //延時函數
                delay_ms(8000);
                delay_ms(8000);
        }         
        
}





回復

使用道具 舉報

ID:1034262 發表于 2023-1-29 23:17 | 顯示全部樓層
時序!時序!時序!
回復

使用道具 舉報

ID:584814 發表于 2023-1-30 08:16 | 顯示全部樓層
很好的編程手法,只需主程序就可以通曉全部。
個人感覺只要有點耐心,溫度會變面包也會有的。順祝新年快樂
回復

使用道具 舉報

ID:213173 發表于 2023-1-30 08:42 | 顯示全部樓層
int main(void)
{
        OLED_Init();                        //初始化OLED ,oled代碼來源于中景園
        while(1)
        {               
                float T;//用于后續存儲讀取的溫度
                OLED_Clear();
                OLED_ShowString(0,4,"Temperature:",16);//顯示temperature,顯示在4列0行,占倆行       
                DS18B20_CONVERT_T();//開始,ds18b20代碼來源于江科大,此函數中包含,初始化->skip ROM->convert t
                T=DS18B20_READT();//提取溫度,存入T

                //加一條驗證語句,以區分問題在取樣部分還是顯示部分
                T=0x0190;//25度


                if(T<0){OLED_ShowString(0,6,"-",16);}//判斷正負顯示符號,顯示在6列0行
                OLED_ShowNum(1,6,T,3,16);//三位整數部分
                OLED_ShowString(4,6,".");//顯示小數點
                OLED_ShowNum(5,6,(unsigned long)(T*10000)%10000,4,16);//顯示小數部分
                //延時函數
                delay_ms(8000);
                delay_ms(8000);
        }                 
}
回復

使用道具 舉報

ID:752974 發表于 2023-1-30 09:24 | 顯示全部樓層
主要問題是18B20的數據讀取上,18B20是單總線器件,對時序的要求很嚴格,不是隨意搬個代碼就可用的。
回復

使用道具 舉報

ID:1010435 發表于 2023-1-30 10:32 | 顯示全部樓層
把后面delay16秒去掉試試,如果你趴在屏幕前盯著屏幕,16秒是很漫長的
回復

使用道具 舉報

ID:1055423 發表于 2023-1-31 13:47 | 顯示全部樓層
munuc_w 發表于 2023-1-30 09:24
主要問題是18B20的數據讀取上,18B20是單總線器件,對時序的要求很嚴格,不是隨意搬個代碼就可用的。

好的,感謝這位大佬的建議,
回復

使用道具 舉報

ID:1055423 發表于 2023-1-31 13:48 | 顯示全部樓層
coody_sz 發表于 2023-1-29 23:17
時序!時序!時序!

我再去檢查一遍吧
回復

使用道具 舉報

ID:1055423 發表于 2023-1-31 13:48 | 顯示全部樓層
mtt661 發表于 2023-1-30 10:32
把后面delay16秒去掉試試,如果你趴在屏幕前盯著屏幕,16秒是很漫長的

復位應該會變吧
回復

使用道具 舉報

ID:1055423 發表于 2023-1-31 13:49 | 顯示全部樓層
man1234567 發表于 2023-1-30 08:16
很好的編程手法,只需主程序就可以通曉全部。
個人感覺只要有點耐心,溫度會變面包也會有的。順祝新年快樂 ...

對于新手來說,查bug簡直無從下手
回復

使用道具 舉報

ID:155507 發表于 2023-1-31 18:53 | 顯示全部樓層

OLED_18B20.jpg

你的行數不對


  1. int main(void)
  2. {
  3.             float T;//用于后續存儲讀取的溫度
  4.         OLED_Init();                        //初始化OLED ,oled代碼來源于中景園
  5.         while(1)
  6.         {               

  7.                 OLED_Clear();
  8.                 OLED_ShowString(0,4,"Temperature:",16);//顯示temperature,顯示在4列0行,占倆行
  9.                
  10.                  DS18B20_CONVERT_T();//開始,ds18b20代碼來源于江科大,此函數中包含,初始化->skip ROM->convert t
  11.                 T=DS18B20_READT();//提取溫度,存入T

  12.                 if(T<0){OLED_ShowString(0,6,"-",16);}//判斷正負顯示符號,顯示在6列0行
  13.                  OLED_ShowNum(1,6,(unsigned int)T,3,16);//三位整數部分
  14.                 OLED_ShowString(25,6,".",16);//顯示小數點
  15.                 OLED_ShowNum(29,6,(unsigned long)(T*10000)%10000,4,16);//顯示小數部分
  16.                 //延時函數
  17.                 //delay_ms(8000);
  18.                 delay_ms(1000);
  19.         }         
  20.         
  21. }
復制代碼






回復

使用道具 舉報

ID:1055423 發表于 2023-1-31 23:55 | 顯示全部樓層

感謝你,說實話,我沒看太懂中景園oled的代碼,
回復

使用道具 舉報

ID:596109 發表于 2023-2-1 08:31 | 顯示全部樓層
debug看看提取的溫度值T變不變吧,不變的話查一查DS18B20的相關程序,問題很可能在時序上
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 电影午夜精品一区二区三区 | 97超碰站 | 中文字幕在线观 | 久艹av | 91精品欧美久久久久久久 | 日韩高清www | 久久久久久免费观看 | 久久久久亚洲 | 91亚洲免费| 6996成人影院网在线播放 | 在线观看第一区 | 欧美精品在线免费观看 | 日本又色又爽又黄的大片 | 久久久日韩精品一区二区三区 | av天空| 我想看一级黄色毛片 | 日本三级线观看 视频 | 男女激情网 | 精品视频在线免费观看 | 99精品久久99久久久久 | 亚洲精品综合 | 国产成人一区二区 | 国产精品成人一区二区三区 | 日本三级线观看 视频 | 91精品国产综合久久精品 | 秋霞电影一区二区三区 | 人人草人人干 | 久久久久久高清 | 亚洲第一天堂 | 国产乱码精品一区二区三区av | 亚洲永久 | 欧美激情视频一区二区三区在线播放 | 成年无码av片在线 | 岛国av在线免费观看 | 亚洲欧美日韩精品久久亚洲区 | 亚洲风情在线观看 | 久久精品欧美一区二区三区不卡 | 久久久久久999 | 日韩一区二区久久 | 婷婷开心激情综合五月天 | 日韩一区在线播放 |