找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 9942|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)讀取DS18B20序列號(hào)c51程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:75926 發(fā)表于 2015-4-3 23:49 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 xiaos 于 2015-4-3 23:52 編輯

      DS18B20中有一個(gè)64位光刻ROM,按說明書說法,開始8位(28H)是產(chǎn)品類型標(biāo)號(hào),接著的48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。
    讀取ROM方法:先復(fù)位DS18B20,成功后執(zhí)行讀取ROM命令(33H),然后將這64位以8個(gè)字節(jié)的方式存入數(shù)組,最后用LCD或LED逐個(gè)字節(jié)顯示出來。下面是讀取ROM的主程序:
程序中用到的函數(shù)頭文件下載:http://www.torrancerestoration.com/mcu/2082.html
  1. void main()
  2. {
  3. uchar i;
  4. uint j=200;
  5. rest_ds18b20();//復(fù)位
  6. write_ds18b20(0x33); //讀序列號(hào)
  7. for(i=0;i<8;i++)
  8.   Rom_18B20[i]=read_ds18b20();
  9.     while(1)
  10.     {
  11.   for(i=0;i<8;i++)
  12.   {
  13.    while(j--)
  14.     dis(i,16,Rom_18B20[i]/16,Rom_18B20[i]%16,16,16);//數(shù)碼管顯示
  15.    j=200;
  16.   }
  17.     }
  18. }
復(fù)制代碼


    在讀取ROM實(shí)驗(yàn)中發(fā)現(xiàn):仿真或?qū)嶋H電路實(shí)驗(yàn)第0字節(jié)均為28,這情有可原,因?yàn)檫@是DS的產(chǎn)品類型標(biāo)號(hào)。但第5、6字節(jié)均為00,無論仿真或?qū)嶋H電路實(shí)驗(yàn)都是如此。如果真的這樣,那第5、6字節(jié)就失去意義了,64位ROM其實(shí)就只有48位了。真的嗎?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:98370 發(fā)表于 2015-12-8 21:40 | 只看該作者
里面還有嗎
回復(fù)

使用道具 舉報(bào)

板凳
ID:60379 發(fā)表于 2015-12-8 22:25 | 只看該作者
是對(duì)的,比如:28 74 93 7F 02 00 00 DE

28 57 8D 7F 02 00 00 EF
28 D5 8E 7F 02 00 00 25
28 83 A7 7F 02 00 00 B2
回復(fù)

使用道具 舉報(bào)

地板
ID:194184 發(fā)表于 2017-4-27 14:38 | 只看該作者
學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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