您当前的位置:五五电子网电子知识单片机-工控设备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单片机

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

; 模块包含: READ(读), WRITE(写), WRAL(片写), ERASE(擦除), ERAL(片擦除),
; EWEN(擦写允许), EWDS(擦写禁止).
; 此模块适用于: AT93C46/56/57/66 EEPROM 芯片, 8位(ORG=0)或16位(ORG=1)的读、写、
; 擦除等操作。
; 8位或16操作,只需置标志位SIZE为"0"或为"1"和设置NADDR的位即可,非常方便实用。
;           93C46       93C56       93C57       93C66
;----------------------------------------------------------------------------
; Data bits:    8    16    8    16    8    16    8    16
; Address bits:    7    6    9    8    8    7    9    8
;----------------------------------------------------------------------------

NADDR        EQU    7    ;  8-bit data,地址为7位
;NADDR        EQU    6    ;  16-bit data,地址为6位


SIZE        EQU    F0    ; 0 = 8-bit data, 1 = 16-bit data 标志位

DATA_LO        EQU    2AH    ; 数据低字节
DATA_HI        EQU    2BH    ; 数据高字节
ADDR_LO        EQU    2CH    ; 地址低字节
ADDR_HI        EQU    2DH    ; 地址高字节

DATA01        EQU    30H    ;数据缓存区首址

CS    BIT    P1.0        ; AT93Cxx 片选端
SK    BIT    P1.1        ; 时钟信号输入端
DI    BIT    P1.2        ; 串行数据输入端
DO    BIT    P1.3        ; 串行数据输出端

    DSEG AT 20H

    ORG    60H        ; stack origin
STACK:    DS    20H        ; stack depth
    CSEG
    ORG    0000H        ;
    JMP    ON_RESET
    ORG    0003H        
    reti            
    ORG    000BH        
    reti            
    ORG    0013H        
    reti            
    ORG    001BH        
    reti            
    ORG    0023H        
    reti            
    ORG    0080H        
    USING    0        ;选择工作寄存器0        
ON_RESET:
    MOV    SP, #(STACK-1)    

    CLR    CS        ; LOW
    CLR    SK        ; LOW
    SETB    DI        ; HIGH
    SETB    DO        ; HIGH        

    CLR    SIZE        ; SPECIFY 8-BIT DATA
;    SETB    SIZE        ; SPECIFY 16-BIT DATA
    
    JB    SIZE,DATA16    ;SIZE=1时,为16-bit操作
    AJMP    DATA8
;==========================================================
; 8-bit  Byte (SIZE/ORG=0) 程序操作演示    

DATA8:
    CALL    Byte_read    ;读出数据,以便观察
    
    CALL    EWEN        ;擦写允许
    
    MOV    ADDR_LO, #0    ; 地址
    MOV    DATA_LO, #33H    ; 数据
    CALL    WRITE        ; 指定地址写
    
    CALL    Byte_read
    
    CALL    ERAL        ;片擦除 (全部单元置"1")    

    CALL    Byte_read

; 8-bit 片写,将芯存储器全部写入55H的数据

;    CALL    EWDS        ; 擦写禁止

    MOV    DATA_LO, #55H    ; 片写数据(片写之前最好片擦除)
    CALL    WRAL        ; 片写        

    AJMP    DATA8
;==========================================================
;==========================================================

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


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