<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

51單片機控制24C02串行E2PROM的讀寫(xiě)

作者: 時(shí)間:2013-03-21 來(lái)源:網(wǎng)絡(luò ) 收藏


讀寫(xiě)子程序如下:

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

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

ACALL SUBS

AGAIN: MOV A,@R1

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

  DJNZ  R7,AGAIN;連續寫(xiě)n個(gè)字節

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

  ACALL DELAY ;延時(shí)以滿(mǎn)足傳輸速率要求

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

  ACALL DELAY

  SETB   P1.0

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

LOOP: CLR P1.1
RLC  A

  MOV  P1.0,

  NOP
  SETB P1.1

  ACALL DELAY

  DJNZ R0,LOOP ;循環(huán)8次送8個(gè)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)=欲讀數據存放地址指針
;; R3=10100001(命令1010+器件3位地址+讀/寫(xiě)。 器件地址一個(gè)芯片,是000)

;(R4)=片內字節地址

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

MOV A,R4   ;送片內字節地址

  ACALL SUBS

  MOV P1,#0FFH
  CLR P1.0   ;再發(fā)開(kāi)始信號
  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 ;接受單字節子程序

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  ;若是最后一個(gè)字節置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指令),這是為了滿(mǎn)足I2C總線(xiàn)上數據傳送速率的要求,只有當SDA數據線(xiàn)上的數據穩定下來(lái)之后才能進(jìn)行讀寫(xiě)(即SCL線(xiàn)發(fā)出正脈沖)。另外,在讀最后一數據字節時(shí),置應答信號為“1”,表示讀操作即將完成。
上拉電阻相關(guān)文章:上拉電阻原理

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

關(guān)鍵詞: 51單片機 24C02 E2PROM

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>