欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機+DS18B20寫入一個字節數據程序的疑問

查看數: 2435 | 評論數: 5 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2023-3-2 12:51

正文摘要:

DS18B20 的位讀寫時序,如圖: 當要給 DS18B20 寫入 0 的時候,單片機直接將引腳拉低,持續時間大于 60us 小于 120us 就可以了。圖上顯示的意思是,單片機先拉低 15us 之后,DS18B20 會在從 15us 到 6 ...

回復

ID:673647 發表于 2023-3-3 09:30
wulin 發表于 2023-3-3 07:21
簡單的講,寫0就是一段持續60us~ 120us的低電平,寫1就是一個至少1us的低電平,隨后緊接著60us~ 120us的 ...

謝謝解答,有點理解了!
ID:213173 發表于 2023-3-3 07:21
cwb2038 發表于 2023-3-2 15:05
這兩句話怎么理解?程序好像并沒有反應出來啊?
       1、當要給 DS18B20 寫入 0 的時候,單片機直接將 ...

簡單的講,寫0就是一段持續60us~ 120us的低電平,寫1就是一個至少1us的低電平,隨后緊接著60us~ 120us的高電平。程序好像并沒有反應出來1us的低電平延時是因為CPU執行兩條語句的時間至少1us,不必單獨寫1us的低電平延時,如果加了一條_nop_();也無所謂。如果使用的高速單片機就要酌情加延時語句。
ID:161164 發表于 2023-3-2 21:06
本帖最后由 lkc8210 于 2023-3-3 09:27 編輯
cwb2038 發表于 2023-3-2 15:05
這兩句話怎么理解?程序好像并沒有反應出來啊?
       1、當要給 DS18B20 寫入 0 的時候,單片機直接將 ...
  1. void Write18B20(unsigned char dat)
  2. {
  3. unsigned char mask;

  4. EA = 0; //禁止總中斷
  5. for (mask=0x01; mask!=0; mask<<=1) //低位在先,依次移出 8 個 bit
  6. {
  7. IO_18B20 = 0; //產生 2us 低電平脈沖
  8. _nop_();
  9. _nop_();
  10. if ((mask&dat) == 0) //輸出該 bit 值
  11. IO_18B20 = 0;//<<<<<<<<<<<1
  12. else
  13. IO_18B20 = 1;//<<<<<<<<<<<2
  14. DelayX10us(6); //延時 60us
  15. IO_18B20 = 1; //拉高通信引腳
  16. }
  17. EA = 1; //重新使能總中斷
  18. }
復制代碼
ID:673647 發表于 2023-3-2 15:05

謝謝解答,有點理解了!

本帖最后由 cwb2038 于 2023-3-3 09:29 編輯
qsssuv 發表于 2023-3-2 14:51
沒看代碼,直接看你的疑問。你表述DS18B20會在某時間讀取一位,又表述程序沒有反映出15us后讀0,這明顯自相 ...

這兩句話怎么理解?程序好像并沒有反應出來啊?
       1、當要給 DS18B20 寫入 0 的時候,單片機直接將引腳拉低,持續時間大于 60us 小于 120us
就可以了。
       2、 當要給 DS18B20 寫入 1 的時候,單片機先將這個引腳拉低,拉低時間大于 1us,然后馬
上釋放總線,即拉高引腳,并且持續時間也要大于 60us。
   
ID:353115 發表于 2023-3-2 14:51
沒看代碼,直接看你的疑問。你表述DS18B20會在某時間讀取一位,又表述程序沒有反映出15us后讀0,這明顯自相矛盾。DS18B20在什么時間讀MCU在線上發出的電平狀態,為何需要在程序上反映呢?DS18B20讀線上電平關MCU在線上發電平狀態什么事兒?MCU只需要干自己的事就好了

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表