📄 sle4.asm
字号:
;这是写SLE4442卡程序,文件名为SLE4.ASM
;功能: 校验密码(55AA55),将88H写入地址f5H,或将ea60H写入地址f0H和f1H,
; 或将F4240H(1000000)写入地址f0H和f1H,f2H,f3H; ram(00-FFH,0-31BIT,0-03H)
;要写存储器,首先必须校验密码,密码校验通过后,方可写入.
;(1) 密码校验程序是 VERIFI --校验密码(55AA55)
;(2) 写主存储器程序是 WRMAI1(1 BYTE),WRMAI2(2 BYTE),WRMAI4(4 BYTE)
;(3) 写保护存储器程序是 WRPROT
;CODE 55AA55H
RST BIT P1.0
CLK BIT P1.1
IO BIT P1.2
VDD BIT P1.3
FLAG BIT 0D5H
CBYTE1 EQU 30H
ABYTE2 EQU 00H
DBYTE3 EQU 55H
ORG 0000H
LJMP MAIN
ORG 0040H
MAIN: MOV SP,#30H
CLR EA
CLR VDD
CLR FLAG
LCALL RESET
LCALL VERIFI
LCALL WRMAI1
;LCALL WRMAI2
;LCALL WRMAI4
;LCALL WRPROT
SETB VDD
SJMP $
RESET: MOV R1, #32
CLR RST
CLR CLK
LCALL DY
SETB RST
LCALL DY
SETB CLK
LCALL DY
CLR CLK
LCALL DY
CLR RST
RESET0: SETB CLK
LCALL DY
CLR CLK
LCALL DY
DJNZ R1, RESET0
RET
WCOMM: LCALL START
MOV A, #CBYTE1
LCALL WBYTE
MOV A, #ABYTE2
LCALL WBYTE
MOV A, #DBYTE3
LCALL WBYTE
LCALL STOP
RET
START: SETB IO
LCALL DY
SETB CLK
LCALL DY
CLR IO
LCALL DY
CLR CLK
RET
STOP: CLR CLK
LCALL DY
CLR IO
LCALL DY
SETB CLK
LCALL DY
SETB IO
RET
WBYTE: MOV R3,#08H
WBYTE1: RRC A
MOV IO,C
SETB CLK
LCALL DY
CLR CLK
LCALL DY
DJNZ R3,WBYTE1
RET
PCLOCK: MOV R1,#32
PCLOCK1: CLR CLK
LCALL DY
SETB CLK
LCALL DY
DJNZ R1,PCLOCK1
CLR CLK
LCALL DY
RET
RRQ: MOV R0,#40H
MOV R4,#10H
RDATA: LCALL RBYTE
MOV @R0,A
INC R0
DJNZ R4,RDATA
CLR CLK
LCALL DY
RET
RRQ1: LCALL RBYTE
MOV R7,A
LCALL RBYTE
MOV R6,A
LCALL RBYTE
LCALL RBYTE
CLR CLK
LCALL DY
RET
RBYTE: MOV R3,#08H
RBYTE1: CLR CLK
LCALL DY
SETB CLK
MOV C,IO
RRC A
LCALL DY
DJNZ R3,RBYTE1
RET
DY: MOV R2,#40H
DY1: NOP
DJNZ R2,DY1
RET
WCOMM2: LCALL START
MOV A, R4
LCALL WBYTE
MOV A, R5
LCALL WBYTE
MOV A, R6
LCALL WBYTE
LCALL STOP
RET
NOPASS: SETB FLAG
RET
VERIFI: MOV R4,#31H ;校验密码(55aa55)
MOV R5,#00H
MOV R6,#00H
LCALL WCOMM2
LCALL RRQ1
MOV A,R7
JZ NOPASS
MOV R4,#39H
MOV R5,#00H
MOV R6,#05H ;5
LCALL WCOMM2
MOV R1,#123
LCALL PCLOCK1
MOV R4,#33H
MOV R5,#01H
MOV R6,#055H
LCALL WCOMM2
MOV R1,#02
LCALL PCLOCK1
MOV R4,#33H
MOV R5,#02H
MOV R6,#0AAH
LCALL WCOMM2
MOV R1,#02
LCALL PCLOCK1
MOV R4,#33H
MOV R5,#03H
MOV R6,#055H
LCALL WCOMM2
MOV R1,#02
LCALL PCLOCK1
MOV R4,#39H
MOV R5,#00H
MOV R6,#0FFH
LCALL WCOMM2
MOV R1,#254
LCALL PCLOCK1
MOV R4,#31H
MOV R5,#00H
MOV R6,#00H
LCALL WCOMM2
LCALL RRQ1
MOV A,R7
ANL A,#07H
CJNE A,#07H,NOPASS
RET
WRMAI1: MOV R4,#38H ;将88H写入地址f5h
MOV R5,#0F5H
MOV R6,#088H
LCALL WCOMM2
MOV R1,#254
LCALL PCLOCK1
MOV R4,#30H
MOV R5,#0F0H
MOV R6,#00H
LCALL WCOMM2
MOV R0,#40H
MOV R4,#16
LCALL RDATA
RET
WRMAI2: MOV R4,#38H ;将ea60h写入地址f0h和f1h
MOV R5,#0F0H
MOV R6,#60H
LCALL WCOMM2
MOV R1,#254
LCALL PCLOCK1
MOV R4,#38H
MOV R5,#0F1H
MOV R6,#0EAH ;60000=EA60H
LCALL WCOMM2
MOV R1,#254
LCALL PCLOCK1
MOV R4,#30H
MOV R5,#0F0H
MOV R6,#00H
LCALL WCOMM2
LCALL RRQ1
RET
WRMAI4: MOV R4,#38H ;将F4240H(1000000)写入地址f0h和f1h,f2h,f3h
MOV R5,#0F0H
MOV R6,#40H
LCALL WCOMM2
MOV R1,#254
LCALL PCLOCK1
MOV R4,#38H
MOV R5,#0F1H
MOV R6,#42H
LCALL WCOMM2
MOV R1,#254
LCALL PCLOCK1
MOV R4,#38H
MOV R5,#0F2H
MOV R6,#0FH
LCALL WCOMM2
MOV R1,#254
LCALL PCLOCK1
MOV R4,#38H
MOV R5,#0F3H
MOV R6,#00H
LCALL WCOMM2
MOV R1,#254
LCALL PCLOCK1
MOV R4,#30H
MOV R5,#0F0H
MOV R6,#00H
LCALL WCOMM2
LCALL RRQ1
RET
WRPROT: MOV R4,#3CH ;将0ffh写入保护存储器(地址00h)
MOV R5,#00H
MOV R6,#0FFH
LCALL WCOMM2
MOV R1,#254
LCALL PCLOCK1
MOV R4,#34H
MOV R5,#00H
MOV R6,#00H
LCALL WCOMM2
MOV R0,#40H
MOV R4,#4
LCALL RDATA
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -