新聞中心

EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 牛人業(yè)話 > 例說(shuō)單片機(jī)數(shù)據(jù)通信之模擬IIC通信

例說(shuō)單片機(jī)數(shù)據(jù)通信之模擬IIC通信

作者:Liklon 時(shí)間:2014-06-25 來(lái)源:電子產(chǎn)品世界 收藏

   即Inter-Integrated Circuit(集成電路總線),這種總線類(lèi)型是由飛利浦半導(dǎo)體公司在八十年代初設(shè)計(jì)出來(lái)的,主要是用來(lái)連接整體電路(ICS) ,是一種多向控制總線,也就是說(shuō)多個(gè)芯片可以連接到同一總線結(jié)構(gòu)下,同時(shí)每個(gè)芯片都可以作為實(shí)時(shí)數(shù)據(jù)傳輸?shù)目刂圃础_@種方式簡(jiǎn)化了信號(hào)傳輸總線。

本文引用地址:http://m.butianyuan.cn/article/248808.htm

  I2C串行總線一般有兩根信號(hào)線,一根是雙向的數(shù)據(jù)線,另一根是時(shí)鐘線SCL。所有接到I2C總線設(shè)備上的串行數(shù)據(jù)都接到總線的上,各設(shè)備的時(shí)鐘線SCL接到總線的SCL上。以51和AT24C02介紹IO模擬通信。

  啟始與停止

  啟始條件:必須在所有命令之前發(fā)送,時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從高到低的跳變作為IIC總線的啟動(dòng)信號(hào)。

  停止條件:時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從低到高的跳變作為IIC總線的停止信號(hào)。操作結(jié)束時(shí)必須發(fā)送停止條件。

  void startbit()

  {

  clrSCL();

  setSDA();

  setSCL(); //時(shí)鐘為高時(shí)

  clrSDA(); //SDA下降沿

  clrSCL();

  }

  void stopbit()

  {

  clrSCL();

  clrSDA();

  setSCL(); //時(shí)鐘為高時(shí)

  setSDA(); //SDA上升沿

  clrSCL();

  }

  應(yīng)答信號(hào)

  每次數(shù)據(jù)傳送成功后,從設(shè)備發(fā)送一個(gè)應(yīng)答信號(hào)。當(dāng)?shù)诰艂€(gè)時(shí)鐘信號(hào)產(chǎn)生時(shí),產(chǎn)生應(yīng)答信號(hào)的器件將SDA下拉為低,通知已經(jīng)接收到8位數(shù)據(jù)。

  void respond()

  {

  unsigned char i = 0;

  setSDA(); //釋放總線

  setSCL(); //時(shí)鐘

  while(SDA != 0)

  {

  i++;

  if(i > 200) break;

  }

  clrSCL();

  }

  讀寫(xiě)字節(jié)操作

  IIC總線協(xié)議定義如下:

  1. 只有在總線非忙時(shí)才被允許進(jìn)行數(shù)據(jù)傳輸。

  2. 在數(shù)據(jù)傳輸時(shí),當(dāng)時(shí)鐘線為高電平,數(shù)據(jù)線必須為固定狀態(tài),不允許跳變,時(shí)鐘線為高電平時(shí)數(shù)據(jù)線的任何電平變化都會(huì)被當(dāng)做總線的啟動(dòng)或停止條件

模擬信號(hào)相關(guān)文章:什么是模擬信號(hào)


51單片機(jī)相關(guān)文章:51單片機(jī)教程


pic相關(guān)文章:pic是什么


單片機(jī)相關(guān)文章:單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理


數(shù)字通信相關(guān)文章:數(shù)字通信原理


通信相關(guān)文章:通信原理



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

關(guān)鍵詞: IIC 單片機(jī) SDA

評(píng)論


相關(guān)推薦

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

關(guān)閉