📄 at45db0.asm
字号:
$INCLUDE (t89c51cc01.INC)
AT_SCK EQU P0.5
AT_SI EQU P0.6
AT_CS EQU P3.3
AT_SO EQU P3.7
ORG 0030H
AJMP MAIN
ORG 0100H
MAIN: MOV P0,#0FFH
MOV P3,#0FFH
MOV R3,#01H
MOV R4,#01H
MOV R5,#01H
;MOV 30H,#5FH
;MOV 31H,#01H
;MOV 32H,#02H
;MOV 33H,#03H
;MOV 34H,#04H
;MOV 35H,#05H
;MOV 36H,#06H
;MOV 37H,#07H
LCALL WRITAT
LCALL READAT
;LCALL RDSTA
;MOV P2,A
RDSTA: CLR AT_CS ;读状态寄存器
MOV A,#57H
LCALL WRAT45
LCALL RDAT45
SETB AT_CS
RET
WRITAT: CLR AT_CS
CLR AT_SCK
MOV A,#82H
LCALL WRAT45
LCALL SENADDR ;写入地址
;MOV R0,#30H ;待写的数据存放在30H-37H内存单元中
;MOV R1,#01H
WRITAT1:;MOV A,@R0
MOV A,#96H
LCALL WRAT45
;INC R0
;DJNZ R1,WRITAT1
SETB AT_SCK
SETB AT_CS
RET
READAT: CLR AT_CS
CLR AT_SCK
MOV A,#52H
LCALL WRAT45
LCALL SENADDR
LCALL UNVALID
;MOV R0,#40H ;读出的数据暂存在40H-47H内存单元中
;MOV R1,#01H
READAT1:;MOV A,#63H
LCALL RDAT45
;MOV A,#63H
MOV P2,A ;
;MOV @R0,A
;INC R0
;DJNZ R1,READAT1
SETB AT_CS
SETB AT_SCK
RET
WRAT45: MOV R2,#08H
WRAT451:CLR AT_SCK
RLC A
MOV AT_SI,C
SETB AT_SCK
DJNZ R2,WRAT451
RET
RDAT45: MOV R2,#08H
RDAT451:CLR AT_SCK
NOP
SETB AT_SCK ;
MOV C,AT_SO
RLC A
SETB AT_SCK
DJNZ R2,RDAT451
RET
SENADDR:MOV A,R5
LCALL WRAT45
MOV A,R4
LCALL WRAT45
MOV A,R3
LCALL WRAT45
RET
UNVALID:
MOV A,#00H
LCALL WRAT45
MOV A,#00H
LCALL WRAT45
MOV A,#00H
LCALL WRAT45
MOV A,#00H
LCALL WRAT45
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -