📄 sle4442.lst
字号:
4186 13 +1 145 RRC A
4187 00 +1 146 NOP
4188 00 +1 147 NOP
4189 D290 +1 148 SETB CLK
418B 5103 +1 149 ACALL Delay10uS ;
418D DBEC +1 150 DJNZ R3,Remm1 ;8位完了吗?
418F F6 +1 151 MOV @R0,a ;取出这个字节
4190 08 +1 152 INC R0
4191 DAE5 +1 153 DJNZ R2,Remm2 ;完了吗?
4193 319E +1 154 ACALL Break ;中止
4195 D000 +1 155 POP 00H
4197 D002 +1 156 POP 02H
4199 D003 +1 157 POP 03H
419B D004 +1 158 POP 04H
419D 22 +1 159 RET
+1 160
+1 161 ;***************中止子程序****************
419E +1 162 Break:
419E C290 +1 163 CLR CLK
41A0 5103 +1 164 ACALL Delay10uS
41A2 D291 +1 165 SETB RST
41A4 5103 +1 166 ACALL Delay10uS
41A6 C291 +1 167 CLR RST
41A8 22 +1 168 RET
+1 169
+1 170
+1 171 ;**************************************************************************
+1 172 ;复位及复位应答子程序
+1 173 ;读出卡内前4个字节,存在(@R0,@(R0+1),@(R0+2),@(R0+3))中
+1 174 ;这4个字节是卡的信息,用来判断卡的来源以及合法性
+1 175 ;**************************************************************************
41A9 +1 176 Anrst:
41A9 C000 +1 177 PUSH 00H
41AB C003 +1 178 PUSH ByteCnt
41AD C002 +1 179 PUSH BitCnt
41AF C0D0 +1 180 PUSH PSW
41B1 7830 +1 181 MOV R0,#ReadBuf
41B3 E4 +1 182 CLR A
41B4 D291 +1 183 SETB RST ;拉高复位线
41B6 5103 +1 184 ACALL Delay10uS
41B8 D290 +1 185 SETB CLK ;拉高时钟线
41BA 5103 +1 186 ACALL Delay10uS
41BC C290 +1 187 CLR CLK ;拉低时钟线
41BE 5103 +1 188 ACALL Delay10uS
41C0 C291 +1 189 CLR RST ;拉低复位线
41C2 750304 +1 190 MOV ByteCnt,#4 ;4个字节
A51 MACRO ASSEMBLER SLE4442 09/16/2003 19:50:59 PAGE 4
41C5 +1 191 Anrst1:
41C5 750208 +1 192 MOV BitCnt,#8 ;8个bit
41C8 +1 193 Anrst2:
41C8 5103 +1 194 ACALL Delay10uS
41CA D290 +1 195 SETB CLK
41CC D292 +1 196 SETB SD
41CE 00 +1 197 NOP
41CF 00 +1 198 NOP
41D0 A292 +1 199 MOV C,SD
41D2 13 +1 200 RRC A
41D3 5103 +1 201 ACALL Delay10uS
41D5 C290 +1 202 CLR CLK
41D7 D502EE +1 203 DJNZ BitCnt,Anrst2 ;8 bit 读完了吗?
41DA F6 +1 204 MOV @R0,A ;保存
41DB 08 +1 205 INC R0 ;下1字节
41DC D503E6 +1 206 DJNZ ByteCnt,Anrst1 ;4个字节完了吗?
41DF 7830 +1 207 MOV R0,#ReadBuf ;准备核对卡内信息
41E1 E6 +1 208 MOV A,@R0
41E2 B4A213 +1 209 CJNE A,#Idetify1,CardErr ;第1字节相同吗?
41E5 08 +1 210 INC R0 ;下1字节
41E6 E6 +1 211 MOV A,@R0
41E7 B4130E +1 212 CJNE A,#Idetify2,CardErr ;第2字节相同吗?
41EA 08 +1 213 INC R0 ;下1字节
41EB E6 +1 214 MOV A,@R0
41EC B41009 +1 215 CJNE A,#Idetify3,CardErr ;第3字节相同吗?
41EF 08 +1 216 INC R0 ;下1字节
41F0 E6 +1 217 MOV A,@R0
41F1 B49104 +1 218 CJNE A,#Idetify4,CardErr ;第4字节相同吗?
41F4 7400 +1 219 MOV A,#00H ;全相同,合法卡,ACC中返回#0
41F6 21FA +1 220 AJMP Anrstend ;
41F8 +1 221 CardErr:
41F8 7401 +1 222 MOV A,#01H ;不同,非法卡ACC中返回#01
41FA +1 223 Anrstend:
41FA D0D0 +1 224 POP PSW
41FC D002 +1 225 POP BitCnt
41FE D003 +1 226 POP ByteCnt
4200 D000 +1 227 POP 00h
4202 22 +1 228 RET
+1 229 ;*************延时10微秒子程序*******************
4203 +1 230 Delay10uS:
4203 C007 +1 231 PUSH 07H
4205 7F03 +1 232 MOV R7,#03H
4207 DFFE +1 233 DJNZ R7,$
4209 D007 +1 234 POP 07H
420B 22 +1 235 RET
236
237 END
A51 MACRO ASSEMBLER SLE4442 09/16/2003 19:50:59 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
ANRST. . . . . . . C ADDR 41A9H A
ANRST1 . . . . . . C ADDR 41C5H A
ANRST2 . . . . . . C ADDR 41C8H A
ANRSTEND . . . . . C ADDR 41FAH A
BITCNT . . . . . . D ADDR 0002H A
BREAK. . . . . . . C ADDR 419EH A
BYTECNT. . . . . . D ADDR 0003H A
CARDERR. . . . . . C ADDR 41F8H A
CHECKSUM . . . . . C ADDR 4122H A
CLK. . . . . . . . B ADDR 0090H.0 A
DEAD . . . . . . . B ADDR 0080H.0 A
DEADLOCK . . . . . D ADDR 0057H A
DELAY10US. . . . . C ADDR 4203H A
ERRCNT . . . . . . D ADDR 0055H A
ICIN . . . . . . . B ADDR 0090H.4 A
ICN. . . . . . . . B ADDR 0080H.7 A
IDETIFY1 . . . . . N NUMB 00A2H A
IDETIFY2 . . . . . N NUMB 0013H A
IDETIFY3 . . . . . N NUMB 0010H A
IDETIFY4 . . . . . N NUMB 0091H A
INVALID. . . . . . B ADDR 0080H.2 A
LOCK . . . . . . . B ADDR 0080H.3 A
MAIN . . . . . . . C ADDR 4100H A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
PSW. . . . . . . . D ADDR 00D0H A
READBUF. . . . . . N NUMB 0030H A
READCARD . . . . . C ADDR 410BH A
READEXIT . . . . . C ADDR 4129H A
READ_INSERT_CARD . C ADDR 4103H A
REMM . . . . . . . C ADDR 416CH A
REMM1. . . . . . . C ADDR 417BH A
REMM2. . . . . . . C ADDR 4178H A
RST. . . . . . . . B ADDR 0090H.1 A
SD . . . . . . . . B ADDR 0090H.2 A
SENDBYTE1. . . . . C ADDR 4158H A
SENDCOMM . . . . . C ADDR 4130H A
SENDLOOP . . . . . C ADDR 415CH A
SP . . . . . . . . D ADDR 0081H A
STATUS . . . . . . D ADDR 0056H A
STUDY. . . . . . . B ADDR 0080H.4 A
SUBADR . . . . . . D ADDR 0001H A
VCC1 . . . . . . . B ADDR 00A0H.0 A
WRITEBUF . . . . . N NUMB 0040H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -