標題: DS1302在數碼管顯示為什么一直是85-85-85 [打印本頁]

作者: 陌路狂花    時間: 2017-11-30 12:47
標題: DS1302在數碼管顯示為什么一直是85-85-85
從網上找了關于DS1302這方面的,修改的也修改好了,為什么還是一直顯示85-85-85

作者: 劉江2017    時間: 2017-11-30 14:17
沒沒問問題的話,撿查一下13O2的,32.768
作者: zl2168    時間: 2017-11-30 14:54
本帖最后由 zl2168 于 2017-11-30 14:59 編輯

DS18B20初始數據為0x0550(表示85℃),具體轉換過程見程序注解。

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1,內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行,可演示,可觀測,程序語句條條有注解。

作者: 陌路狂花    時間: 2017-11-30 17:46
謝謝, 只是單純用DS1302在數碼管顯示時,分,秒。 沒有用到DS18B20
我們這個51單片機是我們學校老師買的,不可能是DS1302硬件有問題。







作者: 不倒翁.WZT    時間: 2017-11-30 19:44
檢查1302時序延時是否準確
作者: zl2168    時間: 2017-11-30 21:33
本帖最后由 zl2168 于 2017-11-30 21:36 編輯

實例93  具有校正功能的時鐘1302(LED數碼管顯示)
Proteus仿真一下,確認有效。
實例93 帶校正時分秒的時鐘1302(6位LED數碼管顯示).rar (732.75 KB, 下載次數: 72)

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。

實例61 LCD1602顯示屏顯示.rar

49.26 KB, 下載次數: 43


作者: lids    時間: 2017-12-5 16:37
你看看開發(fā)板有沒有需要連接的跳線,看你這個現象應該是1302沒有和單片機連起來
作者: zsnsony    時間: 2018-1-15 01:41
我也遇到過    檢查1302芯片管腳是否連接正確   程序中定義端口是否與接線一致
作者: ahshmj    時間: 2018-1-15 09:52
1302沒遇到過。ds18b20讀數不正確時就會這樣。
作者: middfat    時間: 2018-1-15 10:56
單片機讀數不正常是肯定的了。逐個隔離一下看是哪一個部件的問題。我試過有一次是1302插反了燒了,我不知道反回來插上(當時以為沒通電),就出這種結果。
作者: 1991660756    時間: 2018-4-19 01:11
我今天也遇到了,正在處理,求解釋啊,急急急。!
作者: ’久稚    時間: 2019-6-26 09:20
我也是這種情況 ,用1302+數碼管顯示時分秒,結果時和秒都正常,只有分一直是85
作者: a89588038    時間: 2019-6-26 11:37
是不是哪里的io口短接片沒拔掉或者短接??
作者: ’久稚    時間: 2019-7-14 19:57
a89588038 發(fā)表于 2019-6-26 11:37
是不是哪里的io口短接片沒拔掉或者短接??

找到問題所在了  在讀1302子函數中  讀數據的地方加  DIO=0;
程序如下; 這樣就可以了
unsigned char Read1302 ( unsigned char addr )
{
       unsigned char i,temp,dat1;
       CE=0;         
       SCLK=0;            
       CE = 1;
       //發(fā)送地址
       for ( i=8; i>0; i-- )                      //循環(huán)8次移位
       {   
              SCLK = 0;
              temp = addr;
              DIO = (bit)(temp&0x01);          //每次傳輸低字節(jié)
              addr >>= 1;                              //右移一位
              SCLK = 1;
       }
       //讀取數據
       for ( i=8; i>0; i-- )
       {
              ACC_7=DIO;
              SCLK = 1;
              ACC>>=1;
              SCLK = 0;
       }   
       CE=0;
       dat1=ACC;                                  
           DIO=0; // 加上之后顯示85的地方就能成功顯示了
       return (dat1);
}
作者: debug——1    時間: 2022-1-17 19:19
’久稚 發(fā)表于 2019-7-14 19:57
找到問題所在了  在讀1302子函數中  讀數據的地方加  DIO=0;
程序如下; 這樣就可以了
unsigned char  ...

大佬nb 已經解決了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1