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单片机