娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年12月04日(星期三)

正在發生

2019年12月04日 | 基于51的IIC通訊原理及協議詳解(I2C)

發布者:Qingliu2022 來源: 51hei關鍵字:IIC通訊  協議  I2C 手機看文章 掃描二維碼
隨時隨地手機看文章

IIC 的一些特征:
兩條總線:串行數據總線(SDA)和串行時鐘總線(SCL)
真正的多主機總線
連接到相同總線的ic數量只受到總線的最大電容400pF限制。
串行8位雙向數據在標準模式下可達100K bit/s
快速模式400K bit/s,高速模式下3.4Mbit/s.

數據有效性規定:
IIC總線在進行數據傳輸時,SCL在高電平區間,SDA上的電平必須保持穩定
SDA的數據的高或者低電平狀態只有在SCL線的時鐘信號是低電平時才能改變。

起始和停止條件:
起始:SCL高電平時,SDA由高電平向低電平切換。
停止:SCL高電平時,SDA由低電平向高電平切換。

模擬時序如下:
起始與終止:

應答與非應答:

總線上進行一次數據傳輸的通信格式:


相關模擬時序的驅動函數:包括(start,stop,respons,write_byte,read_byte)
-----------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------
//SCL高電平區間,SDA一個下降沿啟動信號
void Start()
{
    SDA=1;
   delay();
    SCL=1;
   delay();
    SDA=0;
   delay();
}
-----------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------
//SCL在高電平區間,SDA一個上升沿停止信號
void Stop()
{
    SDA=0;
   delay();
    SCL=1;
   delay();
    SDA=1;
   delay();
}
-----------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------
//SCL在高電平區間,SDA被從設備拉低表示應答,
//(SDA==1)&&(i<255)表示如果一段時間未收到從期間
//的應答則默認從期間已經收到而不再等待應答信號
void Respons()
{
    uchari=0;
    SCL=1;
   delay();
   while((SDA==1)&&(i<255))
       i++;
    SCL=0;
   delay();   
}
-----------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------
//CY 為PSW寄存器中的CY位
//先移位,然互使用SCL控制發出去
void Write_Byte(uchar date)
{
    uchari,temp;
   temp=tada;
   for(i=0;i<8;i++)
    {
      temp=temp<<1;
       SCL=0;
      delay();
      SDA=CY;
      delay();
       SCL=1;
      delay();
    }
    SCL=0;
   delay();
    SDA=1;
   delay();
}

-----------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------
//定義臨時變量K,K左移一位后與SDA進行或運算,
//依次把8個獨立地位放入一個字節中來接受完成
void Read_Byte()
{
    uchari,k;
    SCL=0;
   delay();
    SDA=1;
   for(i=0;i<8;i++)
    {
       SCL=1;
      delay();
      k=(k<<1)|SDA;
       SCL=0;
      delay();
    }
   delay();
    returnk;
}
-----------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------
底層驅動完成以后,我們需要對實際的芯片使用通訊協議來進行操作。
目前大多的情況下一般比較受歡迎的是AT24cxx 系列。
AT24Cxx系列主要有:    以下系列:

以下僅以AT24C02為例來進行說明:
AT24C02芯片地址為:1010,其控制字格式如下:

其中A2,A1,A0為可編程選擇地址,此處A2,A1,A0均接地,即000,
因此發送寫信號的尋址字節為:10100000,即0XA0,
因此發送讀信號的尋址字節為:10100001,即0XA1,

下圖為寫一個字節的數據格式,有圖可知道:向AT24C02中寫入一個字節的時候,需要:
先發一個起始信號,再發一個字節的控制字,
在發送一個字節的控制字地址,都得到應答信號后,
再發送要存入的數據,最后發一個停止信號!
So,一個字節的數據已經寫入AT24C02中,OK!下面是數據格式,如圖:

程序如下:
-----------------------------------------------------------------------------------------------------------------------
//任意地址,寫入數據
void Write_Add(uchar address,uchar date)
{
   Start();

   Write_Byte(0xA0);
   Respons();
   Write_Byte(address);
   Respons();
   Write_Byte(date);
   Respons();

    Stop
}
-----------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------
下圖為讀一個字節的數據格式,其讀取一個字節的數據和寫入時候差不多,此處不再累贅,讀一字節數據格式如圖:

程序如下:
-----------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------
//任意地址,讀出數據
void Read_Add(uchar address)
{
    uchardate;

   Start();
   Write_Byte(0XA0);
   Respons();
   Write_Byte(address);
   Respons();

   Start();
   Write_Byte(0XA1);
   Respons();
   date=Read_Byte();
   Stop();

    returnbyte;      
}
-----------------------------------------------------------------------------------------------------------------------

關鍵字:IIC通訊  協議  I2C 引用地址:基于51的IIC通訊原理及協議詳解(I2C)

上一篇:基于89c52的簡易計算器設計
下一篇:基于NRF24L01的DS18B20溫度無線傳輸單片機源碼

推薦閱讀

?集微網消息,近日華為暢享系列一款新機暢享9被曝光,據了解華為暢享9是一款定位長續航手機,并且著名爆料人士Slashleaks也放出了華為暢享9的渲染圖以及配置。從渲染圖可以看到,華為暢享9采用了6.26英寸珍珠屏設計,分辨率為1520×720像素,背部配備300萬+200萬像素豎排雙攝,尺寸為158.92×76.91×8.1mm。并且搭載了高通驍龍450處理器,配備4GB內存+64G...
全球微電子工程公司 Melexis宣布引入新一代LIN RGB (W) LED 控制器IC產品。作為車內氛圍燈解決方案的全球領導者,全新的MLX81113 將支持基于 LIN 的 RGB LED 車內氛圍燈應用(也稱為 LIN RGB)進一步發展,LIN RGB 幾乎已經獲得全球所有OEM 的認可。與廣受歡迎的 MLX81108 相比,MLX81113 具有更大的片上內存、更高的恒流源輸出和更強...
12月3日,據上交所科創板上市委2020年第113次審議會議結果顯示,上海霍萊沃電子系統技術股份有限公司(以下簡稱“霍萊沃”)科創板IPO成功過會。針對霍萊沃本次IPO,發審委并未出具審核意見,但提出問詢,要求霍萊沃說明主營業務相控陣校準測試系統、相控陣相關產品的市場空間、市場競爭情況及發行人的競爭優勢、未來發展戰略。招股書顯示,霍萊沃致力于電...
廣告摘要聲明廣告撰文 | 潘敏瑤回顧2020年,對于移動機器人來說,從疫情中的“抗疫戰士?到產線倉儲中的得力助手,可謂危機并存。高工機器人產業研究所(GGII)數據顯示,2020年全球移動機器人市場規模150.4億元人民幣,同比增長7.81%。其中,2020年中國工業領域移動機器人市場規模36.54億元,同比增長40.05%。總體而言,移動機器人領域實現了超預期增長...

史海拾趣

問答坊 | AI 解惑

電子工程師的宿命

年齡:26 學歷:大專 專業:電子應用 行業:電力系統,主要負責嵌入式的輔助開發工作 特長:PCB設計,C程序的開發 工作經驗:5年 感言:工作這么多年,深深感覺到電子技術的發展速度之快,對做這一行工作的我們來說,每天都面臨著新的挑戰,不進則退,不進 ...…

查看全部問答∨

基于TMS320DM642的MPEG4編碼器的設計與實現

近年來,隨著網絡和多媒體技術的發展,視頻信息通信的重要性和需求急劇增長,而其中的關鍵就在于視頻壓縮編碼技術的應用。文獻[1]曾提出了一種基于TMS320DM642 DSP的視頻編碼方案,實現了H.264算法。同H.264相比,MPEG4具有軟硬件開發成本低和更容 ...…

查看全部問答∨

LabVIEW在控制系統中的應用

LabVIEW在控制系統中的應用…

查看全部問答∨

wince camera CameraTest 的問題,請各位做過的幫忙看看。。。

各位,我在開發攝像頭的Demo時,執行到下面的代碼時,f總是0,GetLastError()總是1。會是那個地方出問題?我只有客戶給的dll。沒有任何說明,經過再三要求給了一個WebCamSDK.h文件。請大家幫忙看看。             ...…

查看全部問答∨

如何設定一個熱鍵啟動指定的程序?

我使用2440,wince4.2,應用程序也寫好了,功能正常,還帶有一個4×4的鍵盤(鍵盤也調試好了)。 現在是通過觸摸屏啟動應用程序,現在想實現以下功能: 通過鍵盤上一個按鈕啟動應用程序,最好是啟動后再按這個按鈕一下,就能關閉程序。 請各位大俠 ...…

查看全部問答∨

請問在WinCE6.0中怎么導入BSP呀

請問在WinCE6.0(集成到Visual Studio 2005中的)中怎么導入外部的BSP呀 小弟急用 謝啦…

查看全部問答∨

UART_SendByte('\r')

最近在看一段操作2410的UART的代碼,有一些疑問,請各位大俠指教。 void UART_SendStr(char const *str) {     whlie(*str!=\'\\0\')     {         if(*str==\'\\n\')  UART_Se ...…

查看全部問答∨

請問一下:STM32F10x的SPI怎樣接收LTC2440的32位的AD轉換結果

                                 STM32F10x的SPI一幀數據為8位或16位,而LTC2440的A/D轉換器在一次片選后連續輸出32位結果,可以用硬件以DMA方式接 ...…

查看全部問答∨

Cyclone III LVDS IP核應用

正在用高速AD+cyclone III做數據采集,AD的輸出為LVDS Data7+/-,Data6+/-,...,Data1+/-,Data0+/-。在應用IP核時不知道如何設置參數,特別是What is the number of channels?和What is the deserialization factor?不知道是何意思,哪位前輩做過麻 ...…

查看全部問答∨

第一次發貼:MIFARE卡資料大放送,讀MIFARE卡芯片資料(有中文也有英文的)

這些都是我珍藏的資料,有些在網上很難找得到的。 今天要回家了,希望 RF/無線 的朋友都能夠回家過個好年………

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 兰考县| 碌曲县| 泰顺县| 辰溪县| 习水县| 洱源县| 淮安市| 瑞安市| 谷城县| 北流市| 新闻| 沂南县| 保康县| 新乡市| 益阳市| 嵩明县| 水富县| 景洪市| 玉溪市| 得荣县| 江北区| 天等县| 玉林市| 洛宁县| 通化县| 庄河市| 满城县| 禄劝| 伊宁县| 平塘县| 清新县| 沁阳市| 门头沟区| 临西县| 琼结县| 灌阳县| 克什克腾旗| 嘉祥县| 海兴县| 广元市| 宁国市|