精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>傳感器>

初始化時序步驟 - DS18B20的調(diào)試總結(jié)和程序

2018年01月05日 08:57 網(wǎng)絡(luò)整理 作者: 用戶評論(0
關(guān)鍵字:DS18B20(79745)

初始化時序步驟:

1. 主機將端口設(shè)為輸出,先發(fā)送一個高電平,然后再拉低,維持480-960US;(推薦500-600US)

2. 主機將端口設(shè)為輸入,上拉電阻此時將電平拉高,主機等待60US-200US;(推薦100-150US)

3. 主機讀取端口數(shù)據(jù),低電平則初始化成功;高電平表示初始化失敗;

4.讀取數(shù)據(jù)完畢后,主機等待至少400US; (推薦450-500US)

注:

l 第四步很重要,讀取初始化狀態(tài)后,仍然延時400US才可以初始化完畢,否則傳感器不能正常使用;

l 在這里注意端口需要不停地改變方向;在主機發(fā)送時,設(shè)為輸出,主機接收時,設(shè)為輸出;

/*****************18B20的初始化程序***************************/

byte INIT_18B20() {

byte DQ_RETURN=2;

DQ_OUT=1; //引腳設(shè)置為輸出

DQ=1;

DELAY1(); //稍微延時,即可

DQ=0; //將電平拉低至少480uS,最大為960US

DELAY9(70);

DQ_OUT=0;

//設(shè)置為輸入,設(shè)為輸入15到60US

DELAY9(6); //等待18B20響應(yīng),如果為低電平表示初始化成功,維持60到240 //微秒

DQ_RETURN=DQ;

DELAY9(70); //讀完數(shù)據(jù)后,仍然延時,至少480US

return(DQ_RETURN); //返回值為1,表示失敗,返回值為0表示成功

}

端口寫數(shù)據(jù)時序

DS18B20的調(diào)試總結(jié)和程序

1. 主機將電平拉高,稍微延時(推薦值:2US),然后拉低電平,產(chǎn)生一個下降沿,表示寫數(shù)據(jù)開始;低電平維持至少1US;(此時推薦2US)

2. 此時,將要寫的1或0放在數(shù)據(jù)線上;(從寫數(shù)據(jù)第一步開始到現(xiàn)在,整個過程在15US之內(nèi)完成;

3. 然后主機延時等待至少50US;(推薦60US)

4. 主機最后將電平拉高;

5. 每寫兩位數(shù)據(jù)之間的間隔要大于1US;

注:

l 在寫步驟中,整個過程端口方向均為輸出;

這里對時序要求高,最好用示波器調(diào)整出精確的時序;

/*****************向18B20寫數(shù)據(jù)********************************/

void WRITE_18B20(unsigned char ch){

byte i;

for(i=0;i《8;i++) {

DQ_OUT=1; //端口設(shè)為輸出,并給個拉低電平的下降沿

DQ=1;

DELAY1();

DQ=0; //拉低電平,并維持一微秒以上,表示要發(fā)送數(shù)據(jù)

DELAY1();

DELAY1();

//在15US內(nèi)將要寫的電平寫在線上

if((ch&0x01)==1) //將數(shù)據(jù)按位取出,從LSB到MSB依次送出

DQ=1;

else

DQ=0;

ch=ch》》1;

DELAY9(8); //電平維持40US以上,18B20將在此時將數(shù)取出

DQ=1;

}

DQ=1; //最后將電平重新拉高

}

非常好我支持^.^

(87) 93.5%

不好我反對

(6) 6.5%

( 發(fā)表人:李倩 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?