您当前的位置:五五电子网电子知识单片机-工控设备51单片机AT93C46汇编读写示例程序(测试OK) 正文
AT93C46汇编读写示例程序(测试OK)

AT93C46汇编读写示例程序(测试OK)

点击数:7348 次   录入时间:03-04 11:38:25   整理:http://www.55dianzi.com   51单片机
    LCALL    WRIT        ;写入一个字节    
    LCALL    DLY1ms        ;延时1ms
    INC    R0        ;指向8051下一个数据地址
    INC    R1        ;指向93C46下一个写入单元地址
    DJNZ    R7,WR61        ;判6字节数据写完否?未完继续    
    CLR    CS        ;93C46进入备用状态,降低功耗
    CALL    DLY10ms
    RET
WR61:    JB    DO,WRIT6    ;判REDAY/BUSY,DO=1,写入下一字节
    SJMP    WR61        ;DO=0,转等待

;==========================================================
; 启动读子程序
; 说明: STATRD子程序输出启动和读操作代码"110"
;----------------------------------------------------------
STATRD:
    CLR    CS    ;片选置低
    CLR    SK    ;时钟置低
    SETB    CS    
    SETB    DI    ;置启动"1"
    SETB    SK    ;时钟上升沿输出启动信号"1"
    CLR    SK
    SETB    SK    ;时钟上升沿输出"1"
    CLR    SK
    CLR    DI    ;置输出"0"
    SETB    SK    ;时钟上升沿输出"0"
    CLR    SK    ;时钟置低
    RET
;----------------------------------------------------------    
; 启动写子程序
; 说明: STATWR子程序输出启动和写操作代码"101"
;----------------------------------------------------------
STATWR:
    CLR    CS    ;片选置低
    CLR    SK    ;时钟置低
    SETB    CS    ;置片选
    SETB    DI    ;置启动"1"
    SETB    SK    ;时钟上升沿输出启动信号"1"
    CLR    SK
    CLR    DI    ;置输出"0"
    SETB    SK    ;时钟上升沿输出"0"
    CLR    SK
    SETB    DI    ;置输出"1"
    SETB    SK    ;时钟上升沿输出"1"
    CLR    SK    ;时钟置低
    RET
;----------------------------------------------------------
; 擦写允许/禁止启动和操作代码 "100"
; 该子程序可用于: 擦写允许(EWEN)、写禁止(EWDS)、片写(WRAL)、片擦除(ERAL),
; 只是各自的地址不同而也.
; 擦写允许/禁止操作代码"100",地址"11xxxxx"/"00xxxxx"
;----------------------------------------------------------
EWNE:        
    CLR    CS    ;片选置低
    CLR    SK    ;时钟置低
    SETB    CS    ;置片选
    SETB    DI    ;置启动"1"
    SETB    SK    ;时钟上升沿输出启动信号"1"
    CLR    SK
    CLR    DI    ;置输出"0"
    SETB    SK    ;时钟上升沿输出"0"
    CLR    SK
    CLR    DI    ;置输出"0"
    SETB    SK    ;时钟上升沿输出"1"
    CLR    SK    ;时钟置低
    RET
;----------------------------------------------------------
; 擦指令ERASE  启动和操作代码 "111"
;----------------------------------------------------------
ERASE:        
    CLR    CS    ;片选置低
    CLR    SK    ;时钟置低
    SETB    CS    ;置片选
    SETB    DI    ;置启动"1"
    SETB    SK    ;时钟上升沿输出启动信号"1"
    CLR    SK
    SETB    DI    ;置输出"1"
    SETB    SK    ;时钟上升沿输出"0"
    CLR    SK
    SETB    DI    ;置输出"1"
    SETB    SK    ;时钟上升沿输出"1"
    CLR    SK    ;时钟置低
    RET
;----------------------------------------------------------    
; 输出读写单元地址子程序
; 入口: 7位地址已存在A中D6~D0
;----------------------------------------------------------
INADR:
    MOV    R2,#7    ;置写入地址位数(存储单元8位结构时,地址为7位)
    RLC    A    ;先左移一位,地址移至D7~D1,D0无效
IR1:    CLR    SK    ;时钟置低
    RLC    A    ;左移一位
    MOV    DI,C    ;存入DI端口
    SETB    SK    ;时钟上升沿输出至93C46DI端
    DJNZ    R2,IR1    ;判断7位地址写完否,未完继续    
    RET
;----------------------------------------------------------
; 输出擦单元地址子程序

INADREW:
    CALL    INADR

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


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