(1)先將數(shù)據(jù)線置高電平“1”。
(2)延時(shí)(該時(shí)間要求的不是很嚴(yán)格,但是盡可能的短一點(diǎn))
(3)數(shù)據(jù)線拉到低電平“0”。
(4)延時(shí)750微秒(該時(shí)間的時(shí)間范圍可以從480到960微秒)。
(5)數(shù)據(jù)線拉到高電平“1”。
(6)延時(shí)等待(如果初始化成功則在15到60毫秒時(shí)間之內(nèi)產(chǎn)生一個(gè)由DS18B20所返回的低電平“0”。據(jù)該狀態(tài)可以來確定它的存在,但是應(yīng)注意不能無限的進(jìn)行等待,不然會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)控制)。
(7)若CPU讀到了數(shù)據(jù)線上的低電平“0”后,還要做延時(shí),其延時(shí)的時(shí)間從發(fā)出的高電平算起(第(5)步的時(shí)間算起)最少要480微秒。
(8)將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。
二,DS18B20的寫操作
(1)數(shù)據(jù)線先置低電平“0”。
(2)延時(shí)確定的時(shí)間為15微秒。
(3)按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)。
(4)延時(shí)時(shí)間為45微秒。
(5)將數(shù)據(jù)線拉到高電平。
(6)重復(fù)上(1)到(6)的操作直到所有的字節(jié)全部發(fā)送完為止。
(7)最后將數(shù)據(jù)線拉高。
三,DS18B20的讀操作
(1)將數(shù)據(jù)線拉高“1”。
(2)延時(shí)2微秒。
(3)將數(shù)據(jù)線拉低“0”。
(4)延時(shí)15微秒。
(5)將數(shù)據(jù)線拉高“1”。
(6)延時(shí)15微秒。
(7)讀數(shù)據(jù)線的狀態(tài)得到1個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。
(8)延時(shí)30微秒。