- ;------------- 读ROM号 ------------------------
- ; 出口: A=0正确, A<>0 错误
- ; RomNo0 = 读出的卡数据
- RD_ROM:
- setb tm
- mov r7,#30
- djnz r7,$ ;延时
- aCALL RESET
- JNC RD_ROM3 ;无卡则返回错误, 有卡继续
- MOV A,#33H
- aCALL tWRBYTE
- MOV R0,#RomNo0
- MOV R1,#8
- RD_ROM1:
- aCALL tRDBYTE
- MOV @R0,A
- INC R0
- DJNZ R1,RD_ROM1
- MOV A,RomNo0
- JNZ RD_ROM2 ;ROM[0]不为0,则计算8个字节的CRC
- RD_ROM3:
- MOV A,#0FFH
- RET
- RD_ROM2:
- MOV R0,#RomNo0
- MOV B,#8
- aCALL CRC ;8字节数据进行CRC,
- RET