⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 at24c02

📁 常用单片机程序范例代码
💻
字号:
      ;***************************************************************************
      ;*;AT24C02串行E2PROM的读写程序。      *
      ;* Support telephone:  (www.gg-dl.com )                       
      ;*
      ;* 试验功能是单片机复位一次, 自动从24C02中读取数据,
	   ;  然后加1,最终数码管中的数据就是开机的次数          
      ;*
      ;* 
      ;*************************************************************************** 


      ORG 0000H 



SDA  EQU  P3.5

SCL   EQU  P3.4 

     ORG  0000H 

     AJMP MAIN 

     ORG  0030H 

MAIN:CLR P3.5     ;打开写保护 

     MOV  DPTR,#TAB 

     MOV  A,#00H        ;读地址 

     LCALL    READ 

     CJNE A,#10,MAINL 

MAINL:  JNC  MAINL1 

     AJMP MAINL2 

MAINL1: MOV  A,#00 

MAINL2: MOV  30H,A 

     MOVC A,@A+DPTR 

     CLR  P2.4     ;开数码管 

     MOV  P0,A     ;送显示 

     MOV  A,30H 

     INC  A 

     MOV  B,A 

     MOV  A,#00H 

     LCALL    WRITE 

     AJMP $ 

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
; 
;****************************************************
READ:  PUSH ACC        ;读24C02子程序。 

        SETB SDA 

        CLR SCL 

        CALL START24   ;启动 

        MOV A,#0A0H 

        CALL SHIFT8    ;移位 

        CALL ACK   ;响应 

        POP ACC 

        CALL SHIFT8 

        CALL ACK 

        CALL START24 

        MOV A,#0A1H 

        CALL SHIFT8 

        CALL ACK 

SETB SDA 

        MOV R7,#8 

        CLR A 

        SETB SDA 

  RD000:  RL A         ;8个位 
  SETB SCL 

        MOV C,SDA 

        MOV ACC.0,C 

        CLR SCL 

        DJNZ R7,RD000 

        RET 

WRITE:   PUSH ACC; 写入24C02程序: 

        SETB SDA 

        CLR SCL 

        CALL START24 

        MOV A,#0A0H 

        CALL SHIFT8 

        CALL ACK 

        POP ACC 

        CALL SHIFT8 

        CALL ACK 

        MOV A,B 

        CALL SHIFT8 

        CALL ACK 

        CALL STOP 

        CALL DELAY2 

        RET 

START24:CLR SDA;开始条件 

        SETB SDA 

        SETB SCL 

        CLR SDA 

        CLR SCL 

        RET 

STOP:   CLR SDA;停止条件 

        SETB SCL 

        SETB SDA 

        RET 

ACK:    SETB SCL;应答信号 

        CLR SCL 

        RET 

SHIFT8: MOV R7,#8;读、写数据 

SH01:   RLC A 

        MOV SDA,C 

        SETB SCL 

        CLR SCL 

        DJNZ R7,SH01 

        RET 

DELAY2:  NOP 

END 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -