您当前的位置:五五电子网电子知识单片机-工控设备51单片机AT93C46/56/57/66 EEPROM 芯片通用读写程序 正文
AT93C46/56/57/66 EEPROM 芯片通用读写程序

AT93C46/56/57/66 EEPROM 芯片通用读写程序

点击数:7863 次   录入时间:03-04 11:46:02   整理:http://www.55dianzi.com   51单片机
; 16-bit  Word (SIZE/ORG=1) 程序操作演示

DATA16:
    CALL    Word_read    ;读8个单元数据,观察
        
    CALL    EWEN        ;擦写允许
    
    CALL    ERAL        ;片擦除 (全部单元置"1")    
    
    CALL    Word_read
    
    MOV    ADDR_LO, #0    ; 向指定地址写数据
    MOV    DATA_LO, #55H    ; DATA,数据低字节
    MOV    DATA_HI, #0AAH    ; DATA,数据高字节
    CALL    WRITE        ; 指定地址写
    
    CALL    Word_read

; 将芯片存储器全部写入0AAH(高)和55H(低)的数据 

    MOV    DATA_LO, #55H    ; DATA
    MOV    DATA_HI, #0AAH    ; DATA
    CALL    WRAL        ; 

    CALL    Word_read

;    CALL    EWDS        ; 擦写禁止

; 将指定单元的内容擦除(置为"1")    
    MOV    ADDR_LO, #0    ; 
    CALL    ERASE        ; 将指定单元(00H 01H)擦为"1"
        
    AJMP    DATA16
;==========================================================
;读 Read (byte if SIZE/ORG=0, word if SIZE/ORG=1).
Byte_read:    
    MOV    R0,#DATA01    ;缓存区首址
    MOV    ADDR_HI,#0
    MOV    ADDR_LO,#0    ;指向AT93CXX首址
    MOV    R7,#8        ;字节数
READ01:            
    CALL    READ
    MOV    A,DATA_LO
    MOV    @R0,A
    INC    R0
    INC    ADDR_LO
    DJNZ    R7,READ01
    RET    
;==========================================================
;读 Read ( word if SIZE/ORG=1).低地址为低字节单元,高地址为高字节单元
Word_read:    
    MOV    R0,#DATA01    ;缓存区首址
    MOV    ADDR_LO,#0
    MOV    R7,#8        ;字节数
WORD01:    
    CALL    READ        ;读数据
    MOV    A,DATA_LO    ;低字节内容
    MOV    @R0,A    
    INC    R0
    MOV    A,DATA_HI    ;高字节内容
    MOV    @R0,A
    INC    R0
    INC    ADDR_LO        
    DJNZ    R7,WORD01
    RET    
;----------------------------------------------------------
;==========================================================
;名称: 读指令(READ指令)
;功能: 从指定的地址单元中把数据读出
;----------------------------------------------------------
READ:
    SETB    CS        ;片选置1    
    MOV    DPL, #110B    ;起始位和操作码"110"
    MOV    B, #3
    CALL    OUTDATA        
    MOV    DPL,ADDR_LO    ;低字节地址
    MOV    DPH,ADDR_HI    ;高字节地址
    MOV    B,#NADDR    ;地址位数(8-bit data,NADDR=7)
    CALL    OUTDATA        ;输出读/写单元地址        
    CALL    INDATA        
    CLR    CS        
    RET
;==========================================================
;名称: 写指令(WRITE 指令)
;功能: 将数据写入到指定的地址单元中
;----------------------------------------------------------
WRITE:
    SETB    CS        ;    
    MOV    DPL, #101B    ;起始位和操作码"101B"
    MOV    B, #3        ;位数
    CALL    OUTDATA        ;输出数据
    MOV    DPL, ADDR_LO    
    MOV    DPH, ADDR_HI    
    MOV    B, #NADDR    
    CALL    OUTDATA    
    MOV    DPL, DATA_LO    
    JB    SIZE, EE61    ;SIZE=0时,8bit; SIZE=1时,16bit;
    MOV    B, #8
    JMP    EE62
EE61:
    MOV    DPH, DATA_HI    
    MOV    B, #16

上一页  [1] [2] [3] [4]  下一页


本文关键字:通用  程序  51单片机单片机-工控设备 - 51单片机