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

📄 2402@at89c51.asm

📁 用AT89C51写的24C02 掉电保护数据
💻 ASM
字号:
;UP-1 WR P3.6  ,  RD P3.7

SDA24           EQU             P3.7
SCLK24          EQU             P3.6

                ORG 0000H
                AJMP MAIN
                ORG 0030H
MAIN:           MOV      P2,#0
            ;    CLR             P3.7 ;打开写保护
                MOV             DPTR,#TAB
                MOV             A,#00H ;读地址
                LCALL           RD24
                CJNE            A,#10,TT
TT:             JNC             TT1
                AJMP             TT2
TT1:            MOV              A,#00
TT2:            MOV              30H,A
                MOVC              A,@A+DPTR
               ; CLR               P2.6 ;开数码管
                MOV               P0,A ;送显示

                MOV             A,30H
                INC             A
                MOV             B,A
                MOV             A,#00H
                LCALL           WT24
                AJMP            $
TAB: ;DB 28H,7EH,0A2H,62H,74H,61H,21H,7AH,20H,60H
     DB 0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0f8h
        ;  0     1     2    3    4    5   6     7
        DB 080h,090h,08ch
        ;  8     9     p
       ; end

RD24:           PUSH             ACC ;读24C02子程序。
                SETB              SDA24
                CLR               SCLK24
                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              SDA24
                MOV               R7,#8
                CLR               A
                SETB              SDA24
RD000:          RL                A
                SETB              SCLK24
                MOV               C,SDA24
                MOV               ACC.0,C
                CLR               SCLK24
                DJNZ              R7,RD000
                RET
;-------------------------------
;写入24C02程序:
WT24:            PUSH                   ACC
                 SETB                   SDA24
                 CLR                    SCLK24
                 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 SDA24
                                SETB SDA24
                                SETB SCLK24
                                CLR SDA24
                                CLR SCLK24
                                RET

;停止条件
STOP:                   CLR SDA24
                        SETB SCLK24
                        SETB SDA24
                        RET

;应答信号
ACK:                    SETB SCLK24
                        CLR SCLK24
                        RET

;读、写数据
SHIFT8:         MOV R7,#8
SH01:           RLC A
                MOV SDA24,C
                SETB SCLK24
                CLR SCLK24
                DJNZ R7,SH01
                RET

DELAY2:
       NOP
       NOP
       NOP
       NOP
       RET
                        END

⌨️ 快捷键说明

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