找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 5589|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

為什么用proteus仿真DS18B20總是無法初始化

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:233756 發(fā)表于 2018-6-22 14:02 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
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;
}


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

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

仿真圖

仿真圖
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:320306 發(fā)表于 2018-6-22 15:53 | 只看該作者
把別人的程序拿過來試試�。。。。。。。。。。�!
回復(fù)

使用道具 舉報

板凳
ID:234075 發(fā)表于 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;
回復(fù)

使用道具 舉報

地板
ID:234075 發(fā)表于 2018-6-22 17:03 | 只看該作者
還有寫啟動DS18B20啟動轉(zhuǎn)換命令0x44后需要等待1秒后再讀取數(shù)據(jù)
回復(fù)

使用道具 舉報

5#
ID:233756 發(fā)表于 2018-6-23 15:33 | 只看該作者
已經(jīng)解決了,同樣的程序上了板子就沒有問題
回復(fù)

使用道具 舉報

6#
ID:357332 發(fā)表于 2018-6-23 17:04 | 只看該作者
仿真軟件有時沒有實物那么好用
回復(fù)

使用道具 舉報

7#
ID:208271 發(fā)表于 2020-3-24 10:25 | 只看該作者
要確認(rèn)你的程序在實物中以12M晶振運行時是正確的,然后把仿真單片機運行頻率調(diào)為6M就OK了,仿真時間與實物不同,時序要求嚴(yán)格的話就不行,1602時序要求不嚴(yán)格,所以沒啥關(guān)系
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表