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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2053|回復: 12
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
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);
        }         
        
}





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

使用道具 舉報

沙發
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);
        }                 
}
回復

使用道具 舉報

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

使用道具 舉報

6#
ID:1010435 發表于 2023-1-30 10:32 | 只看該作者
把后面delay16秒去掉試試,如果你趴在屏幕前盯著屏幕,16秒是很漫長的
回復

使用道具 舉報

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

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

使用道具 舉報

8#
ID:1055423 發表于 2023-1-31 13:48 | 只看該作者
coody_sz 發表于 2023-1-29 23:17
時序!時序!時序!

我再去檢查一遍吧
回復

使用道具 舉報

9#
ID:1055423 發表于 2023-1-31 13:48 | 只看該作者
mtt661 發表于 2023-1-30 10:32
把后面delay16秒去掉試試,如果你趴在屏幕前盯著屏幕,16秒是很漫長的

復位應該會變吧
回復

使用道具 舉報

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

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

使用道具 舉報

11#
ID:155507 發表于 2023-1-31 18:53 | 只看該作者



你的行數不對


  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. }
復制代碼






回復

使用道具 舉報

12#
ID:1055423 發表于 2023-1-31 23:55 | 只看該作者

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

使用道具 舉報

13#
ID:596109 發表于 2023-2-1 08:31 | 只看該作者
debug看看提取的溫度值T變不變吧,不變的話查一查DS18B20的相關程序,問題很可能在時序上
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色免费在线网址 | 日本a v在线播放 | 日韩欧美理论片 | 中文字幕一区二区三区精彩视频 | 日日夜夜狠狠操 | 激情a | 亚洲九色 | 日韩中文字幕在线观看视频 | 欧区一欧区二欧区三免费 | 亚洲一区二区三区久久久 | 亚洲黄色片免费观看 | 久久久精品一区二区 | 亚洲国产精品成人久久久 | 亚洲成人在线免费 | 久久精品久久久久久 | 91日b| 一级中国毛片 | 欧美亚洲视频在线观看 | 亚洲精品久久区二区三区蜜桃臀 | 黄视频免费观看 | 亚洲成人自拍 | 成人国产精品 | 免费日本视频 | 午夜精品一区二区三区免费视频 | 久久成人精品视频 | 欧美第一页 | 亚洲成人av一区二区 | 精品免费国产一区二区三区 | 激情三区 | 日韩精品影院 | 国产传媒毛片精品视频第一次 | 日韩欧美国产一区二区 | 真人一级毛片 | 日韩中文字幕2019 | 亚洲黄色一级 | 一区二区在线 | 欧美三级视频在线观看 | 国产精品毛片无码 | 先锋av资源在线 | 欧美一区二区成人 | 香蕉视频在线播放 |