找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3065|回復: 8
打印 上一主題 下一主題
收起左側(cè)

單片機oled顯示多級菜單、時間、溫度程序問題

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1041590 發(fā)表于 2022-9-7 17:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
80黑幣
我在一個多層菜單里準備加入ds1302readtime(),但會顯示2055/55/55,
另外這塊板子也有ds18b20,一加入ds1302readtime()也會使溫度不再更新,急求解決方案
代碼:
void fun1(void)
{
         
      int     tem=0;
            int temperature;
      temperature        = Ds18b20ReadTemp();
      tem=temperature*0.625*10+0.5;        
            OLED_ShowString(0,0,"TIME: " ,16);
            OLED_ShowString(0,2,"DATE: ",16);  
            OLED_ShowString(0,4,"TEMP: ",16);
            OLED_ShowString(96,6,"MENU ",16);
         
        OLED_ShowNum(48,4,tem%10000/1000,1,16);        //溫度十位
                                OLED_ShowNum(56,4,tem%1000/100,1,16);                //溫度個位
                                OLED_ShowString(64,4,".",16);
                                OLED_ShowNum(72,4,tem%100,1,16);                        //溫度小數(shù)位
                           OLED_ShowCHinese(80,4,0);
                                Delay1ms(10);         
        
        
        

                   OLED_ShowNum(48,0,TIME[2]/16,1,16);        //時
                   OLED_ShowNum(56,0,TIME[2]&0x0f,1,16);
                   OLED_ShowString(64,0,":",16);                                 
                   OLED_ShowNum(72,0,TIME[1]/16,1,16); //分
                   OLED_ShowNum(80,0,TIME[1]&0x0f,1,16);        
                   OLED_ShowString(88,0,":",16);
                   OLED_ShowNum(96,0,TIME[0]/16,1,16);        //秒
                   OLED_ShowNum(104,0,TIME[0]&0x0f,1,16);
                   OLED_ShowString(48,2,"2",16);
                   OLED_ShowString(56,2,"0",16);
                   OLED_ShowNum(64,2,TIME[6]/16,1,16);        //年
                   OLED_ShowNum(72,2,TIME[6]&0x0f,1,16);
                   OLED_ShowString(80,2,"/",16);
                   OLED_ShowNum(88,2,TIME[4]/16,1,16);        //月
                   OLED_ShowNum(96,2,TIME[4]&0x0f,1,16);
                   OLED_ShowString(104,2,"/",16);
                   OLED_ShowNum(112,2,TIME[3]/16,1,16);        //日
                   OLED_ShowNum(120,2,TIME[3]&0x0f,1,16);
                  
                                                
                                                 OLED_Clear1(0,6,96,16);
                   OLED_ShowString(80,6,"->",16);
}

附件里包含完整工程

lzj.rar

114.87 KB, 下載次數(shù): 31

最佳答案

查看完整內(nèi)容

刷新再調(diào)慢一些,或者在18B20完成轉(zhuǎn)換的過程保護起來
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:893997 發(fā)表于 2022-9-7 17:19 | 只看該作者
刷新再調(diào)慢一些,或者在18B20完成轉(zhuǎn)換的過程保護起來

評分

參與人數(shù) 1黑幣 +5 收起 理由
bearovo + 5

查看全部評分

回復

使用道具 舉報

板凳
ID:213173 發(fā)表于 2022-9-7 18:18 | 只看該作者
ds1302和ds18b20都是對時序比較敏感的器件,讀取的時間、溫度信息暫存在緩存,oled按秒更新速度刷新,不應該發(fā)生沖突。

評分

參與人數(shù) 1黑幣 +5 收起 理由
bearovo + 5 很給力!

查看全部評分

回復

使用道具 舉報

地板
ID:624769 發(fā)表于 2022-9-7 20:09 | 只看該作者
DS1302 讀到 55 就是 IO需要上拉。 讀到FF 就是 Delay 不夠。

評分

參與人數(shù) 1黑幣 +5 收起 理由
bearovo + 5 很給力!

查看全部評分

回復

使用道具 舉報

5#
ID:1043522 發(fā)表于 2022-9-7 22:14 | 只看該作者
wulin 發(fā)表于 2022-9-7 18:18
ds1302和ds18b20都是對時序比較敏感的器件,讀取的時間、溫度信息暫存在緩存,oled按秒更新速度刷新,不應 ...

DS1302還好點,起碼他有時鐘輸入。DS18B20單線通信就是確實敏感。

評分

參與人數(shù) 1黑幣 +5 收起 理由
bearovo + 5 很給力!

查看全部評分

回復

使用道具 舉報

6#
ID:1041590 發(fā)表于 2022-9-8 16:26 | 只看該作者
188610329 發(fā)表于 2022-9-7 20:09
DS1302 讀到 55 就是 IO需要上拉。 讀到FF 就是 Delay 不夠。

謝謝指點迷津
回復

使用道具 舉報

7#
ID:1041590 發(fā)表于 2022-9-8 16:26 | 只看該作者
188610329 發(fā)表于 2022-9-7 20:09
DS1302 讀到 55 就是 IO需要上拉。 讀到FF 就是 Delay 不夠。

謝謝指點迷津
回復

使用道具 舉報

8#
ID:1041590 發(fā)表于 2022-9-8 16:27 | 只看該作者
ezuoju 發(fā)表于 2022-9-7 22:14
DS1302還好點,起碼他有時鐘輸入。DS18B20單線通信就是確實敏感。

是的  我也看到了與我類似的問題  都是時序原因
回復

使用道具 舉報

9#
ID:999824 發(fā)表于 2022-9-8 19:36 | 只看該作者
換一下刷新的頻率試試

評分

參與人數(shù) 1黑幣 +5 收起 理由
bearovo + 5

查看全部評分

回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表