赞助论坛
  • 9710阅读
  • 0回复

学习单片机之---24C系列的读写程序 [复制链接]

楼层直达
jswr  
发帖
339
精华
1
金币
264
威望
8
贡献
7
好评
15
注册
2008-06-30
楼主    jswr 发表于: 2008-08-20 16:20:34 
SCL BIT P1.7;定义24C02的串行时钟线   ClimberWin   2005.8.4
SDA BIT P1.6;定义24C02的串行数据线
    ORG 00H
START:
  MOV R1,#20H   ; 数据保存地址
  MOV R7,#120   ; 取数据的个数
;;**********************************
  CALL FIRST   ;开始命令
  MOV A,#0A0H   ;写器件地址
  CALL SUBS
;;**********************************
  MOV A,#00h ;所要读的器件的地址
  CALL SUBS
;;**********************************
  CALL FIRST   ;开始命令
  MOV A,#0A1H   ;开始读数据
  CALL SUBS
;;**********************************
WIN: CALL SUBR
    MOV @R1,A
    INC R1
    DJNZ R7,WIN
    CLR SDA
    CALL DELAY
    SETB SCL
    CALL DELAY
    SETB SDA
    JMP $
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SUBR:   MOV R0,#08H
LOOP2: SETB SCL
    CALL DELAY
    MOV C,SDA
    RLC A
    CLR SCL
    CALL DELAY
    DJNZ R0,LOOP2
    CJNE R7,#00h,LOW1   ;改
    SETB SDA
    JMP CLIMBER
LOW1:   CLR SDA
CLIMBER:CALL DELAY
    SETB SCL
    CALL DELAY
    CLR SCL
    CALL DELAY
    SETB SDA
    RET
SUBS:   MOV R5,#08H
LOOP:   CLR SCL
    RLC A
    MOV SDA ,C
    NOP
    SETB SCL
    CALL DELAY
    DJNZ R5,LOOP
    CLR SCL
    CALL DELAY
    SETB SCL
REP:   MOV C, SDA
    JC REP
    CLR   SCL
    RET
DELAY: NOP
    NOP
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
FIRST: SETB SDA
    SETB SCL
    CALL DELAY
    CLR SDA
    CALL DELAY
    CLR SCL   ;开始传数据
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  END