找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5520|回復: 5
收起左側

DS1302和DS18B20的沖突問題?急用 謝謝

[復制鏈接]
ID:98557 發(fā)表于 2016-11-16 21:41 | 顯示全部樓層 |閱讀模式
30黑幣
大家好,今天遇到了一個問題,希望大家?guī)兔鉀Q一下,急用!
當沒有將溫度傳感器接入51單片機的時候,12864顯示時間正常,當接入溫度傳感器的時候,12864上面顯示時間就會變快,比如說兩秒連著顯示:當到第一秒的時候,顯示了1之后就馬上又顯示2了。。

但是測試多次,只要把溫度傳感器去掉,12864顯示時間就正常了,只要加上去,時間顯示就快了。。。

謝謝


回復

使用道具 舉報

ID:123289 發(fā)表于 2016-11-17 01:24 | 顯示全部樓層
這是你的程序資源分配不合理造成的,程序做A就顧不了B.
回復

使用道具 舉報

ID:111634 發(fā)表于 2016-11-17 09:23 | 顯示全部樓層
兩個子程序配合有問題。
回復

使用道具 舉報

ID:85726 發(fā)表于 2016-11-20 09:58 | 顯示全部樓層
你可以把代碼和原理圖發(fā)給我,我可以幫你看看!
回復

使用道具 舉報

ID:342895 發(fā)表于 2018-8-28 20:59 | 顯示全部樓層
以前我遇到和你相似的問題,可能是ds1302和ds18b20使能沖突了,將ds1302程序里讀取數據的那個函數里的使能位注釋掉就沒問題了,至少我是解決了

評分

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

查看全部評分

回復

使用道具 舉報

ID:768564 發(fā)表于 2020-12-18 12:55 | 顯示全部樓層
我也遇到過,將ds1302的讀函數改成這樣就可以正常同時顯示了
unsigned char DS1302_ReadData(unsigned char addr){
        unsigned char i,reval=0,temp;
        CE = 0;
        SCLK = 0;
        CE = 1;
        // 寫寄存器地址
        for(i=0;i<8;i++){
                SCLK = 0;
                SDIO = addr & 0x01;
                addr >>= 1;
                SCLK = 1;                                                                                        // 上升沿讀入數據
        }
        // 讀數據
        for(i=0;i<8;i++){
                SCLK = 1;
                SCLK = 0;       
                temp = SDIO;
                reval = (temp<<7) | (reval>>1);        // 下降沿讀出數據
        }
        CE = 0;
        SCLK = 1;
        SDIO = 0;
        SDIO = 1;
        CE = 1;
        reval = reval/16*10+(reval%16);
        return reval;
}
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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