標題: 為什么用proteus仿真DS18B20總是無法初始化 [打印本頁]

作者: omikeai    時間: 2018-6-22 14:02
標題: 為什么用proteus仿真DS18B20總是無法初始化
sbit RS = P2^0;
sbit RW = P2^1;
sbit E  = P2^2;
sbit DQ = P2^4;

void main()
{       
        lcd_1602_init(); //初始化
        while(ds18b20_init()) lcd_1602_dispaly(1,1,"Init error");       
        lcd_1602_dispaly(1,1,"Init OK");
        while(1)
}

bit ds18b20_init()
{
        bit tmp;
        DQ = 1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        DQ = 0;
        Delay500us();
        DQ = 1;
        Delay68us();
        tmp = DQ;
        Delay500us();
        return tmp;
}


永遠初始化失敗,直接在初始化函數(shù)返回0,1602上顯示初始化成功了
看到網(wǎng)上都是這么初始化的,為什么我的不行

仿真圖.png (28.9 KB, 下載次數(shù): 93)

仿真圖

仿真圖

作者: zsyzdx    時間: 2018-6-22 15:53
把別人的程序拿過來試試。。。。。。。。。。!
作者: zhb2004xp    時間: 2018-6-22 16:34
        DQ=0;                           //À­µÍDQÏòµ¥×ÜÏß·¢³öѯÎÊ£¬Ê±¼ä540>t>480uS
        delay_us(250);          
        DQ=1;                                //ÊÍ·ÅDQ£¨DQÖÃ1£©
        while(DQ==1);                        //µÈ´ýDS18B20Ó¦´ð½«DQÀ­µÍ
        delay_us(120);                //ÔÙ´ÎÑÓʱ>240uS
        DQ=1;
作者: zhb2004xp    時間: 2018-6-22 17:03
還有寫啟動DS18B20啟動轉換命令0x44后需要等待1秒后再讀取數(shù)據(jù)
作者: omikeai    時間: 2018-6-23 15:33
已經(jīng)解決了,同樣的程序上了板子就沒有問題
作者: cuiyawei1988    時間: 2018-6-23 17:04
仿真軟件有時沒有實物那么好用
作者: wifingtta    時間: 2020-3-24 10:25
要確認你的程序在實物中以12M晶振運行時是正確的,然后把仿真單片機運行頻率調(diào)為6M就OK了,仿真時間與實物不同,時序要求嚴格的話就不行,1602時序要求不嚴格,所以沒啥關系




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