在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機控制24C02串行E2PROM的讀寫

      51單片機控制24C02串行E2PROM的讀寫

      作者: 時間:2013-03-21 來源:網(wǎng)絡 收藏


      讀寫子程序如下:

      ;寫串行子程序EEPW
      ; R3=10100000(命令1010+器件3位地址+讀/寫。 器件地址一個芯片,是000)
      ; (R4)=片內字節(jié)地址
      ; (R1)=欲寫數(shù)據(jù)存放地址指針
      ; (R7)=連續(xù)寫字節(jié)數(shù)n
      EEPW: MOV P1,#0FFH

        CLR  P1.0  ;發(fā)開始信號
        MOV  A,R3  ;送器件地址
        ACALL  SUBS
        MOV  A,R4  ;送片內字節(jié)地址

      ACALL SUBS

      AGAIN: MOV A,@R1

        ACALL SUBS ;調發(fā)送單字節(jié)子程序INC   R1

        DJNZ  R7,AGAIN;連續(xù)寫n個字節(jié)

        CLR    P1.0  ;SDA置0, 準備送停止信號

        ACALL DELAY ;延時以滿足傳輸速率要求

        SETB   P1.1  ;發(fā)停止信號

        ACALL DELAY

        SETB   P1.0

        RET
      SUBS: MOV R0,#08H ;發(fā)送單字節(jié)子程序

      LOOP: CLR P1.1
      RLC  A

        MOV  P1.0,

        NOP
        SETB P1.1

        ACALL DELAY

        DJNZ R0,LOOP ;循環(huán)8次送8個bit

        CLR  P1.1

        ACALL DELAY

      SETB P1.1
      REP: MOV C,P1.0

        JC  REP  ;判應答到否,未到則
        CLR  P1.1

      RER
      DELAY: NOP

        NOP
        RET
      ;讀串行子程序EEPR

      ;(R1)=欲讀數(shù)據(jù)存放地址指針
      ;; R3=10100001(命令1010+器件3位地址+讀/寫。 器件地址一個芯片,是000)

      ;(R4)=片內字節(jié)地址

      ;(R7)=連續(xù)讀字節(jié)數(shù)
      EEPR: MOV P1,#0FFH
      CLR  P1.0  ;發(fā)開始信號
      MOV  A,R3  ;送器件地址
        ACALL SUBS   ;調發(fā)送單字節(jié)子程序

      MOV A,R4   ;送片內字節(jié)地址

        ACALL SUBS

        MOV P1,#0FFH
        CLR P1.0   ;再發(fā)開始信號
        MOV A,R3
        SETB ACC.0  ;發(fā)讀命令
      ACALL SUBS
      MORE: ACALL SUBR

        MOV @R1,A

        INC R1

        DJNZ R7,MORE

        CLR P1.0

        ACALL DELAY

        SETB P1.1
        ACALL DELAY

        SETB P1.0 ;送停止信號
        RE
      SUBR: MOV  R0,#08H ;接受單字節(jié)子程序

      LOOP2: SETB  P1.1
        ACALL DELAY
        MOV C,P1.0

        RLC 
        CLR P1.1

        ACALL DELAY

        DJNZ R0,LOOP2

        CJNE R7,#01H,LOW

        SETB P1.0  ;若是最后一個字節(jié)置A=1

        AJMP SETOK

      LOW: CLR P1.0  ;否則置A=0

      SETOK: ACALL DELAY

        SETB  P1.1

        ACALL DELAY

        CLR  P1.1

        ACALL DELAY

        SETB P1.0  ;應答畢,SDA置1

        RET
        程序中多處調用了DELAY子程序(僅兩條NOP指令),這是為了滿足I2C總線上數(shù)據(jù)傳送速率的要求,只有當SDA數(shù)據(jù)線上的數(shù)據(jù)穩(wěn)定下來之后才能進行讀寫(即SCL線發(fā)出正脈沖)。另外,在讀最后一數(shù)據(jù)字節(jié)時,置應答信號為“1”,表示讀操作即將完成。
      上拉電阻相關文章:上拉電阻原理

      上一頁 1 2 3 下一頁

      關鍵詞: 51單片機 24C02 E2PROM

      評論


      相關推薦

      技術專區(qū)

      關閉