<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > DSl8820 ROM編碼的一種搜索算法

DSl8820 ROM編碼的一種搜索算法

作者: 時(shí)間:2009-09-21 來(lái)源:網(wǎng)絡(luò ) 收藏

首先作如下幾個(gè)定義:對“兩讀”數據為00的位,之后“一寫(xiě)”操作要寫(xiě)的數據定義為“00寫(xiě)位”;所有00寫(xiě)位的集合定義為“00寫(xiě)位組”。那么所要解決的問(wèn)題就是:確立一個(gè)00寫(xiě)位組,確保命令能夠到一個(gè)唯一的,并在完成一次搜索后對00寫(xiě)位組做出更新,以確保下次的搜索命令能夠搜索到一個(gè)唯一的并且不會(huì )搜索到已經(jīng)搜索到的ROM編碼,直到完成總線(xiàn)上所有器件的ROM編碼搜索。
在給出搜索規則前再作如下幾個(gè)定義:00寫(xiě)位組中最高ROM編碼位對應的00寫(xiě)位定義為“最高00寫(xiě)位”;00寫(xiě)位組中鄰近最高00寫(xiě)位的00寫(xiě)位定義位“次高00寫(xiě)位”;如果更新后的00寫(xiě)位組不足以搜索到一個(gè)唯一的ROM編碼,則添加新的00寫(xiě)位,這個(gè)新的00寫(xiě)位定義為“新00寫(xiě)位”。
DS18820 ROM編碼的搜索規則:
①第一次搜索確立一個(gè)00寫(xiě)位組,其中所有00寫(xiě)位全部為0。
②每次搜索后更新00寫(xiě)位組并從最高00寫(xiě)位開(kāi)始更新。
③00寫(xiě)位組更新規則:如果最高00寫(xiě)位為0,則改最高00寫(xiě)位為1,更新完成;如果最高00寫(xiě)位為1,則棄去最高00寫(xiě)位并把次高00寫(xiě)位作為新的最高00寫(xiě)位。
④如果出現新00寫(xiě)位,新00寫(xiě)位一律為0并作為新的最高00寫(xiě)位。
⑤如果0寫(xiě)位組全為1,則搜索所有器件的ROM編碼,搜索結束。

本文引用地址:http://dyxdggzs.com/article/163566.htm

3 算法的C51實(shí)現
對一條“單線(xiàn)總線(xiàn)”上多片DS18820的ROM編碼搜索與識別,具體由C51編寫(xiě)的函數uchar SearchRomID(uchar RomID[n][8])來(lái)實(shí)現。函數的返回值是總線(xiàn)上查找到的器件個(gè)數,總線(xiàn)上所有器件的ROM編碼存入二維數組RomID[n][8]。其中n為總線(xiàn)上允許掛器件的最大值,這里取16。
首先對程序中的幾個(gè)重要變量做一些說(shuō)明:
_00wbit:一維數組,用來(lái)存儲00寫(xiě)位組全部?jì)热?。它的長(cháng)度由總線(xiàn)上允許掛接器件的最大值決定。每寫(xiě)一個(gè)00寫(xiě)位都可以“排除”至少一個(gè)總線(xiàn)上的器件,當總線(xiàn)上器件數為n時(shí),_00wbit數組的長(cháng)度應為n-1。當然這是最壞情況下的取值,很多情況下_00wbit數組的長(cháng)度小于這個(gè)值,這時(shí)不用的 _00wbit數組位用2來(lái)填充。
Rom:一維數組,臨時(shí)存儲64位ROM編碼。
b:搜索結束標志位。
R1、R2:“兩讀”數據位。
編者注:程序略。

結 語(yǔ)
本文提出了一種對掛接在同一條“單線(xiàn)總線(xiàn)”上的多片DS18B20 ROM編碼的搜索算法,并給出了具體的C51實(shí)現方法,經(jīng)驗證完全可行。由于該算法可自動(dòng)識別總線(xiàn)上的器件個(gè)數,因此實(shí)際運用中,在總線(xiàn)上添加和刪除器件都十分靈活,這為多點(diǎn)測溫帶來(lái)了很大的方便。該算法也適用于其他“單線(xiàn)總線(xiàn)”器件。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 算法 搜索 編碼 ROM DSl8820

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>