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

歷史上的今天

今天是:2024年10月14日(星期一)

正在發生

2020年10月14日 | 24c08 I2C總線協議操作程序匯編和C語言2個版本詳解

發布者:atech123 來源: 51hei關鍵字:24c08  I2C  總線協議  操作程序  匯編  C語言 手機看文章 掃描二維碼
隨時隨地手機看文章


;24c08操作時序為:起始信號sclk拉高情況下sda由高變低,表示起始

;                 結束信號sclk拉高情況下sda由低變高,表示結束

;                 字節由高位向低位依次發送

;                第一個字節是地址和讀寫控制,第二個是存儲地址,第三個是數據,每個數據結束器件都會發送 ack應答信號;

;  I2C 總線協議

;I2C 總線協議定義如下

;1 只有在總線空閑時才允許啟動數據傳送

;2 在數據傳送過程中當時鐘線為高電平時數據線必須保持穩定狀態不允許有跳變時鐘線

;為高電平時數據線的任何電平變化將被看作總線的起始或停止信號

;起始信號

;時鐘線保持高電平期間數據線電平從高到低的跳變作為I2C 總線的起始信號

;停止信號

;時鐘線保持高電平期間數據線電平從低到高的跳變作為I2C 總線的停止信號

;

ORG 0000H

SCL EQU P2.6

SDA EQU P2.7

AJMP MAIN

ORG 00030H

MAIN:LCALL INIT   ;主函數,

     LCALL WRITE2408

  LCALL DELAY1

  LCALL READ2408

  MOV P0,A

  AJMP $      


INIT: SETB SCL    ;初始化

    LCALL  DELAY

SETB SDA

LCALL DELAY

RET


START:SETB SDA  ;起始信號

     LCALL DELAY

  SETB SCL

  LCALL DELAY

  CLR SDA

  LCALL DELAY

  RET

STOP:CLR SDA ;   停止信號

     LCALL DELAY

  SETB SCL

  LCALL DELAY

  SETB SDA

  RET

ACK:SETB SCL  ;應答信號

     LCALL DELAY

JB SDA,$

     CLR  SCL

LCALL DELAY

SETB SDA

LCALL DELAY

RET

WRITE:     MOV R4,#08H  ;寫

     LOOP:  CLR SCL

     LCALL DELAY

     RLC A

     MOV SDA,C

     LCALL DELAY

     SETB SCL

     LCALL DELAY

     DJNZ R4,LOOP

      

    CLR SCL      ;哎呀吃大虧了,我說怎么就是寫一個A0算完了而且還有一個停止信號,娘了個逼我程序里不是這樣的啊,奧今天我才看透,原來A0的最低位是0

     LCALL DELAY  ;這里以前是先把SDA釋放,再拉低SCL ,相當于一個停止信號啊,所以U820受到后把總線禁止了,也難怪寫不出了,哈哈哈又學一招

     SETB SDA   ;原來這么細微的變動都會是你的程序白搭,即使你其他的都是對的;

     LCALL DELAY  ;加油;2010年7月22日午與天津宿舍

     RET    ;EEPROM的成功讀取時很有意義的,嘿嘿


READ:MOV R4,#08H     ;讀

         SETB SDA

   LCALL DELAY

LOP:   CLR SCL

   LCALL DELAY

   SETB SCL

   LCALL DELAY

   MOV C,SDA

   RLC A

   DJNZ R4,LOP

    CLR SCL

    RET

DELAY:       ;數據穩定

NOP

NOP

NOP

NOP

NOP

RET


WRITE2408:LCALL START

       MOV A,#0A0H

    LCALL WRITE

    LCALL ACK    ;向U820的00H單元寫0x88;

    MOV A,#00H

    LCALL WRITE

    LCALL ACK

    MOV A,#88H

    LCALL WRITE

    LCALL ACK

    LCALL STOP

   RET

READ2408:LCALL START

          MOV A,#0A0H

    LCALL WRITE

    LCALL ACK

   MOV A,#00H  ;從U820的00H單元讀出數據

       LCALL WRITE

       LCALL ACK

    LCALL START

    MOV A,#0A1H

    LCALL WRITE

    LCALL ACK

    LCALL READ

    LCALL STOP

    RET

DELAY1:        ;延時1S,在應用中這個可以是主程序啊哈哈,真他媽了噶比的爽老子也做出來了;爽啊

    MOV R7,#0A7H

DL1:

    MOV R6,#0ABH

DL0:

    MOV R5,#10H

    DJNZ R5,$

    DJNZ R6,DL0

    DJNZ R7,DL1

    NOP

    RET

    END



#include

#define uchar unsigned char

sbit sda=P2^7;

sbit scl=P2^6;


void delay1(uchar z)

{

uchar j,k;

    for(k=0;k                     

       {           

                      for(j=0;j<100;j++) ;  //此處j不得小于27否則讀不出數據

        

        }        

}

void delay()

{


;;

}

void init()

{

sda=1;

delay();

scl=1;

delay();

}

void start()

{

sda=1;

  delay();

scl=1;

delay();

sda=0;

delay();

}

void stop()

{

sda=0;

delay();

scl=1;

  delay();

  sda=1;

   delay();


}

void ack()

{

scl=1;

   delay();

  if(sda==1)

  {  delay1(1000);


  }

scl=0;

  delay();

sda=1;

delay();

}

void write_24c08(uchar add)

{

uchar a,i;

      i=add;

    scl=0;

  delay();

for(a=0;a<8;a++)

  {  

  i=i<<1;

  sda=CY;

   delay();

   scl=1;

    delay();

      scl=0;

  delay();

}

scl=0;

delay();

sda=1;

delay();

}

uchar read_24c08()

{

   uchar a,readdate;

    scl=0;

   delay();

  sda=1;

    delay();

for(a=0;a<8;a++)

{


  scl=1;

   delay();  

readdate=(readdate<<1)|sda;  //這里注意啊,不要換成別的

scl=0;

  delay();


}

return readdate;

}



void main()

{

init();

start();

write_24c08(0xa0);

ack();

write_24c08(0x21);

ack();

write_24c08(0xf0);

ack();

stop();


    delay1(100);

  start();

write_24c08(0xa0);

ack();

write_24c08(0x21);

ack();

start();

  write_24c08(0xa1);

ack();

P0=read_24c08();

  stop();

while(1);

}


關鍵字:24c08  I2C  總線協議  操作程序  匯編  C語言 引用地址:24c08 I2C總線協議操作程序匯編和C語言2個版本詳解

上一篇:STC12C5A60S2單片機制作的鋰電池容量測試源程序
下一篇:自編超聲波測距模塊(HC-SR04)STC單片機程序

推薦閱讀

前不久,國內AI巨頭科大訊飛陷入了一場“造假”漩渦之中,有媒體報道,科大訊飛的AI同傳可能是人類翻譯冒充,并非機器翻譯。雖然科大訊飛事后澄清并未造假,卻無法打消大家的質疑。?實際上,類似的事件之前也出現過,在江蘇衛視《最強大腦》節目中,百度大腦挑戰一眾最強大腦,也有網友認為其中可能存在鮮為人知的內幕。那么,為何大家會對AI產生諸多質疑...
十一期間,韓國巨頭三星電子宣布關閉在中國最后一家智能手機工廠。盡管三星在華閉廠近兩年來并不鮮見,但最后一家工廠宣告結業,依然被認為是這家昔日巨頭遭遇的中國“滑鐵盧”。 另一個三星沒落的證據是其財報數據。10月8日,三星電子公布2019年第三季度財報,預計當季營收為62萬億韓元,營業利潤為7.7萬億韓元,與去年同期相比下滑超過56%。這被認為是中...
一、示波器上的FFT 是什么?二、示波器的FFT 能解決什么問題?三、示波器的FFT 經常變成用戶手里的雞肋,問題在哪?四、我們把示波器上的頻譜分析功能做到極致,怎么做到的?五、示波器上的頻譜分析功能發展趨勢 一、有了數字示波器,我們對波形的處理就不在單純了,不再只是停留在看看波形形狀,不再滿足只是測量幾個參數了。我們總想著對采下來的數...
MCU 控制寄存器包含了電源管理的控制位。· Bits 7, 5, 4 – SM2..0: 休眠模式選擇位 2、1 和0如 Table 13 所示,這些位用于選擇具體的休眠模式。· Bit 6 – SE: 休眠使能為了使MCU 在執行SLEEP 指令后進入休眠模式, SE 必須置位。為了確保進入休眠模式是程序員的有意行為,建議僅在SLEEP 指令的前一條指令置位SE。MCU 一旦喚醒立即清除SE

史海拾趣

小廣播
設計資源 培訓 開發板 精華推薦

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 平乐县| 七台河市| 开鲁县| 昌宁县| 凤城市| 元朗区| 十堰市| 迁西县| 台山市| 靖远县| 镇沅| 海宁市| 县级市| 湖州市| 福鼎市| 田东县| 西乡县| 甘孜| 白城市| 明光市| 利川市| 琼结县| 华阴市| 石嘴山市| 汽车| 榆社县| 简阳市| 聊城市| 龙门县| 三亚市| 平邑县| 宜阳县| 民权县| 上高县| 鱼台县| 尤溪县| 丹阳市| 静乐县| 宁河县| 德令哈市| 安塞县|