欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

ds1302和ds18b20發生沖突

  [復制鏈接]
跳轉到指定樓層
樓主
25黑幣
最近寫了一個基于51單片機實現溫度和時間顯示之間的轉換,但是問題在于如果將溫度程序和時鐘程序分開寫,功能都能實現,但合在一起之后時間能顯示,但溫度在數碼管上只顯示0,這個問題困擾了我很久,一直未解決。

電子溫度表.rar

42.43 KB, 下載次數: 83

最佳答案

查看完整內容

這個問題,我已經不知道發過多少次了。。。! unsigned char Ds1302Read(unsigned char addr) { unsigned char n,dat,dat1; CE = 0; _nop_(); SCLK = 0; _nop_(); CE = 1; _nop_(); for(n=0; n>= 1; SCLK = 1; _nop_(); SCLK = 0; _nop_(); } _nop_(); ...

評分

參與人數 1黑幣 +30 收起 理由
HardyChen + 30 絕世好帖!

查看全部評分

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

使用道具 舉報

沙發
ID:164602 發表于 2018-8-27 20:39 | 只看該作者
這個問題,我已經不知道發過多少次了。。。。
unsigned char Ds1302Read(unsigned char addr)
{
        unsigned char n,dat,dat1;
        CE = 0;
        _nop_();

        SCLK = 0;
        _nop_();
        CE = 1;
        _nop_();

        for(n=0; n<8; n++)
        {
                DSIO = addr & 0x01;
                addr >>= 1;
                SCLK = 1;
                _nop_();
                SCLK = 0;
                _nop_();
        }
        _nop_();
        for(n=0; n<8; n++)
        {
                dat1 = DSIO;
                dat = (dat>>1) | (dat1<<7);
                SCLK = 1;
                _nop_();
                SCLK = 0;
                _nop_();
        }

//        CE = 0;
        _nop_();
        SCLK = 1;
        _nop_();
        DSIO = 0;
        _nop_();
        DSIO = 1;
        _nop_();

        return dat;        
}

紅色那一條語句,原來有,現在我將它去掉,就好了。其它的什么都不用改。

究其原因,可能是兩器件使能沖突。

評分

參與人數 1黑幣 +30 收起 理由
HardyChen + 30 很給力!

查看全部評分

回復

使用道具 舉報

板凳
ID:96682 發表于 2018-8-27 23:06 | 只看該作者
時鐘溫度計用液晶屏來顯示最好,如用八位數碼管得做交替顯示才行

評分

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

查看全部評分

回復

使用道具 舉報

地板
ID:7485 發表于 2018-8-28 09:17 | 只看該作者
DS18B20的溫度轉換時間較長,不可以讓程序在那里一直等待轉換結束,執行完轉換指令后去做其他事情,大約800ms以上在讀取時間值。
回復

使用道具 舉報

5#
ID:342895 發表于 2018-8-28 20:42 | 只看該作者
謝謝大佬,以前這個問題困擾了我很久,非常感謝
回復

使用道具 舉報

6#
ID:453741 發表于 2019-4-16 13:17 | 只看該作者
HC6800-ES-V2.0 發表于 2018-8-27 20:39
這個問題,我已經不知道發過多少次了。。。!
unsigned char Ds1302Read(unsigned char addr)
{

真的可以啦哈哈哈,謝謝啦樓主
回復

使用道具 舉報

7#
ID:337308 發表于 2019-4-16 16:11 | 只看該作者
HC6800-ES-V2.0 發表于 2018-8-27 20:39
這個問題,我已經不知道發過多少次了。。。!
unsigned char Ds1302Read(unsigned char addr)
{

我去,牛逼!大佬。〈罄校∵@個問題困擾了我4個小時。真心牛逼大佬。十分感謝!。。。。。。。。。!
回復

使用道具 舉報

8#
ID:627541 發表于 2019-10-31 21:10 | 只看該作者
uchar Ds1302Read(uchar addr)
{
        uchar n,dat,dat1;
        RST = 0;
        _nop_();

        SCLK = 0;//先將SCLK置低電平。
        _nop_();
        RST = 1;//然后將RST(CE)置高電平。
        _nop_();

        for(n=0; n<8; n++)//開始傳送八位地址命令
        {
                DSIO = addr & 0x01;//數據從低位開始傳送
                addr >>= 1;
                SCLK = 1;//數據在上升沿時,DS1302讀取數據
                _nop_();
                SCLK = 0;//DS1302下降沿時,放置數據
                _nop_();
        }
        _nop_();
        for(n=0; n<8; n++)//讀取8位數據
        {
                dat1 = DSIO;//從最低位開始接收
                dat = (dat>>1) | (dat1<<7);
                SCLK = 1;
                _nop_();
                SCLK = 0;//DS1302下降沿時,放置數據
                _nop_();
        }

        RST = 0;
        _nop_();        //以下為DS1302復位的穩定時間,必須的。
        SCLK = 1;
        _nop_();
        DSIO = 0;
        _nop_();
        DSIO = 1;
        _nop_();
        return dat;       
}
回復

使用道具 舉報

9#
ID:627541 發表于 2019-10-31 21:12 | 只看該作者
HC6800-ES-V2.0 發表于 2018-8-27 20:39
這個問題,我已經不知道發過多少次了。。。!
unsigned char Ds1302Read(unsigned char addr)
{

uchar Ds1302Read(uchar addr)
{
        uchar n,dat,dat1;
        RST = 0;
        _nop_();

        SCLK = 0;//先將SCLK置低電平。
        _nop_();
        RST = 1;//然后將RST(CE)置高電平。
        _nop_();

        for(n=0; n<8; n++)//開始傳送八位地址命令
        {
                DSIO = addr & 0x01;//數據從低位開始傳送
                addr >>= 1;
                SCLK = 1;//數據在上升沿時,DS1302讀取數據
                _nop_();
                SCLK = 0;//DS1302下降沿時,放置數據
                _nop_();
        }
        _nop_();
        for(n=0; n<8; n++)//讀取8位數據
        {
                dat1 = DSIO;//從最低位開始接收
                dat = (dat>>1) | (dat1<<7);
                SCLK = 1;
                _nop_();
                SCLK = 0;//DS1302下降沿時,放置數據
                _nop_();
        }

        RST = 0;
        _nop_();        //以下為DS1302復位的穩定時間,必須的。
        SCLK = 1;
        _nop_();
        DSIO = 0;
        _nop_();
        DSIO = 1;
        _nop_();
        return dat;       
}
為啥我的不行
回復

使用道具 舉報

10#
ID:760 發表于 2020-5-20 14:39 | 只看該作者
HC6800-ES-V2.0 發表于 2018-8-27 20:39
這個問題,我已經不知道發過多少次了。。。。
unsigned char Ds1302Read(unsigned char addr)
{

為什么我注釋掉了CE還是不行
回復

使用道具 舉報

11#
ID:759213 發表于 2020-5-26 09:02 | 只看該作者
厲害,這個問題處理了一天,在這里發現解決辦法,謝謝分享
回復

使用道具 舉報

12#
ID:785191 發表于 2020-7-22 18:09 | 只看該作者
simple1103 發表于 2020-5-20 14:39
為什么我注釋掉了CE還是不行

還有一個寫字節的函數也要注釋掉,這樣就行了。
回復

使用道具 舉報

13#
ID:798483 發表于 2020-7-28 12:55 | 只看該作者
HC6800-ES-V2.0 發表于 2018-8-27 20:39
這個問題,我已經不知道發過多少次了!。。!
unsigned char Ds1302Read(unsigned char addr)
{

大佬牛逼。。
回復

使用道具 舉報

14#
ID:797929 發表于 2020-9-28 08:52 | 只看該作者
HC6800-ES-V2.0 發表于 2018-8-27 20:39
這個問題,我已經不知道發過多少次了!。。!
unsigned char Ds1302Read(unsigned char addr)
{

這個方法真可行,問題解決,謝謝
回復

使用道具 舉報

15#
ID:593106 發表于 2021-3-17 22:40 | 只看該作者
困擾了一天,還是在這里找到了解決辦法,大佬nb
回復

使用道具 舉報

16#
ID:1045217 發表于 2022-9-19 17:04 | 只看該作者
牛啊,解決了我的問題了,感謝
回復

使用道具 舉報

17#
ID:895754 發表于 2022-11-20 06:01 | 只看該作者
使能沖突是因為什么
回復

使用道具 舉報

18#
ID:1058975 發表于 2023-6-21 23:26 | 只看該作者
很強,完美解決
回復

使用道具 舉報

19#
ID:1034262 發表于 2023-6-23 16:58 | 只看該作者
兩個通信完全不同的東東,怎么會沖突?很奇怪。
回復

使用道具 舉報

20#
ID:1064915 發表于 2023-7-20 17:51 | 只看該作者
也解決了我的大問題
回復

使用道具 舉報

21#
ID:1064915 發表于 2023-10-22 09:00 | 只看該作者

由電路圖可知   ds18b20引腳  與   ds1302引腳  不沖突


由圖而知   當CS=0  DOUT=0     CS=1   DOUT為高阻狀態

由此而知   當p35=0  p37=0

所以  當ds1302時鐘芯片  和   溫度ds18b20  工作時

一旦將  p35=0  那么p37=0    則使然   ds1302  和   ds18b20沖突  


回復

使用道具 舉報

22#
ID:1102319 發表于 2023-12-3 22:09 | 只看該作者
HC6800-ES-V2.0 發表于 2018-8-27 20:39
這個問題,我已經不知道發過多少次了。。。。
unsigned char Ds1302Read(unsigned char addr)
{

這段代碼是放在ds1302的庫函數還是主函數里面
回復

使用道具 舉報

23#
ID:1040327 發表于 2024-3-24 16:05 | 只看該作者
joyb 發表于 2023-10-22 09:00
由電路圖可知   ds18b20引腳  與   ds1302引腳  不沖突

牛。。!
回復

使用道具 舉報

24#
ID:1069830 發表于 2024-12-23 20:54 | 只看該作者
FB0 發表于 2020-7-22 18:09
還有一個寫字節的函數也要注釋掉,這樣就行了。

牛!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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