|
本帖最后由 xiaos 于 2015-4-3 23:52 編輯
DS18B20中有一個64位光刻ROM,按說明書說法,開始8位(28H)是產(chǎn)品類型標(biāo)號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的。
讀取ROM方法:先復(fù)位DS18B20,成功后執(zhí)行讀取ROM命令(33H),然后將這64位以8個字節(jié)的方式存入數(shù)組,最后用LCD或LED逐個字節(jié)顯示出來。下面是讀取ROM的主程序:
程序中用到的函數(shù)頭文件下載:http://www.zg4o1577.cn/mcu/2082.html
- void main()
- {
- uchar i;
- uint j=200;
- rest_ds18b20();//復(fù)位
- write_ds18b20(0x33); //讀序列號
- for(i=0;i<8;i++)
- Rom_18B20[i]=read_ds18b20();
- while(1)
- {
- for(i=0;i<8;i++)
- {
- while(j--)
- dis(i,16,Rom_18B20[i]/16,Rom_18B20[i]%16,16,16);//數(shù)碼管顯示
- j=200;
- }
- }
- }
復(fù)制代碼
在讀取ROM實驗中發(fā)現(xiàn):仿真或?qū)嶋H電路實驗第0字節(jié)均為28,這情有可原,因為這是DS的產(chǎn)品類型標(biāo)號。但第5、6字節(jié)均為00,無論仿真或?qū)嶋H電路實驗都是如此。如果真的這樣,那第5、6字節(jié)就失去意義了,64位ROM其實就只有48位了。真的嗎?
|
|