📄 24c04.asm
字号:
;24c04初始化
ORG 000H
START MOV SP,#65H
;
;ajmp wwww
;
MOV 30H,#06H
MOV 31H,#07H
MOV 32H,#08H
MOV 33H,#09H
MOV R3,#0A0H ;联系命令
MOV R4,#0abH ;片内地址
MOV R1,#30H ;缓冲地址
MOV R7,#04H ;读写字节数
LCALL EEPW ;调写
ACALL DELAY1
wwww MOV R3,#0A0H
MOV R4,#0abH
MOV R1,#30H
MOV R7,#04H
LCALL EEPR ;调读
MOV 25H,30H ;显示缓存
MOV 26H,31H
MOV 27H,32H
MOV 28H,33H
LCALL DIR ;调显示
abcd jmp abcd
EEPW SETB P1.0 ;写多字节子程序
SETB P1.1
NOP
CLR P1.0 ;发开始信号
MOV A,R3
ACALL SUBSS
MOV A,R4
ACALL SUBSS
AGAIN MOV A,@R1
ACALL SUBSS
INC R1
DJNZ R7,AGAIN
CLR P1.0 ;停止
ACALL DELAY
SETB P1.1
ACALL DELAY
SETB P1.0
RET
SUBSS MOV R0,#08H
LOOP CLR P1.1
RLC A
Mov P1.0,C
NOP
SETB P1.1
ACALL DELAY
DJNZ R0,LOOP
CLR P1.1
ACALL DELAY
SETB P1.1
REP MOV C,P1.0 ;读应答信号
JC REP ;为1等待
CLR P1.1
RET
DELAY NOP
NOP
RET
DELAY1 MOV 40H,#0FFH
DE3 MOV 41H,#0FFH
DE2 MOV 42H,#04H
DE1 DJNZ 42H,DE1
DJNZ 41H,DE2
dJNZ 40H,DE3
RET
EEPR SETB P1.0 ;读多字节子程序
SETB P1.1
CLR P1.0 ;开始
MOV A,R3
ACALL SUBSS ;写命令
MOV A,R4
ACALL SUBSS ;写地址
SETB P1.0
SETB P1.1
CLR P1.0 ;重新开始
MOV A,R3
SETB ACC.0 ;读命令
ACALL SUBSS
MORE ACALL SUBRR
MOV @R1,A
INC R1
DJNZ R7,MORE ;读完否
CLR P1.0 ;停止信号
ACALL DELAY
SETB P1.1
ACALL DELAY
SETB P1.0
RET
SUBRR MOV R0,#08H
LOOP2 SETB P1.1
ACALL DELAY
MOV C,P1.0
RLC A
CLR P1.1
ACALL DELAY
DJNZ R0,LOOP2
CJNE R0,#01H,LOWw ;不为最后字节主机应答
SETB P1.0 ;为最后字节主机不应答
AJMP SETOK
LOWw CLR P1.0
SETOK ACALL DELAY
SETB P1.1
ACALL DELAY
CLR P1.1
ACALL DELAY
SETB P1.0
RET
dir mov dptr,#tab ;显示子程序
mov a,25h
movc a,@a+dptr
mov 29h,a
mov dptr,#tab
mov a,26h
movc a,@a+dptr
mov 2ah,a
mov dptr,#tab
mov a,27h
movc a,@a+dptr
mov 2bh,a
mov dptr,#tab
mov a,28h
movc a,@a+dptr
mov 2ch,a
acall dir1
ret
;
dir1 clr p1.5
clr p1.4
mov r6,#04h
mov r0,#2ch
dir1x acall shift
dec r0
djnz r6,dir1x
setb p1.5
nop
NOP
clr p1.5
ret
shift mov a,@r0
mov r7,#08h
SHIFTx RRC A
MOV P1.3,C
SETB P1.4
NOP
NOP
NOP
CLR P1.4
DJNZ R7,SHIFTx
MOV R7,#08H
RET
tab db 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h,0feh,0f6h
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -