⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 h4001.lis

📁 用AVR单片机ATMega32通过U2270B读取H4001只读RFID卡号的范例
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 03DC E80F              add R30,R24
 03DE F91F              adc R31,R25
 03E0 8081              ldd R24,z+0
 03E2 8130              cpi R24,1
 03E4 29F4              brne L89
 03E6 81E0              ldi R24,1
 03E8 90E0              ldi R25,0
 03EA 9F83              std y+7,R25
 03EC 8E83              std y+6,R24
 03EE 04C0              xjmp L90
 03F0           L89:
 03F0 0024              clr R0
 03F2 1124              clr R1
 03F4 1F82              std y+7,R1
 03F6 0E82              std y+6,R0
 03F8           L90:
 03F8 80E0              ldi R24,<_decode+3
 03FA 90E0              ldi R25,>_decode+3
 03FC E881              ldd R30,y+0
 03FE FF27              clr R31
 0400 E80F              add R30,R24
 0402 F91F              adc R31,R25
 0404 8081              ldd R24,z+0
 0406 8130              cpi R24,1
 0408 29F4              brne L91
 040A 81E0              ldi R24,1
 040C 90E0              ldi R25,0
 040E 9987              std y+9,R25
 0410 8887              std y+8,R24
 0412 04C0              xjmp L92
 0414           L91:
 0414 0024              clr R0
 0416 1124              clr R1
 0418 1986              std y+9,R1
 041A 0886              std y+8,R0
 041C           L92:
 041C 80E0              ldi R24,<_decode+4
 041E 90E0              ldi R25,>_decode+4
 0420 E881              ldd R30,y+0
 0422 FF27              clr R31
 0424 E80F              add R30,R24
 0426 F91F              adc R31,R25
 0428 8081              ldd R24,z+0
 042A 8130              cpi R24,1
 042C 29F4              brne L93
 042E 81E0              ldi R24,1
 0430 90E0              ldi R25,0
 0432 9B87              std y+11,R25
 0434 8A87              std y+10,R24
 0436 04C0              xjmp L94
 0438           L93:
 0438 0024              clr R0
 043A 1124              clr R1
 043C 1B86              std y+11,R1
 043E 0A86              std y+10,R0
 0440           L94:
 0440 80E0              ldi R24,<_decode+5
 0442 90E0              ldi R25,>_decode+5
 0444 E881              ldd R30,y+0
 0446 FF27              clr R31
 0448 E80F              add R30,R24
 044A F91F              adc R31,R25
 044C 8081              ldd R24,z+0
 044E 8130              cpi R24,1
 0450 19F4              brne L95
 0452 41E0              ldi R20,1
 0454 50E0              ldi R21,0
 0456 02C0              xjmp L96
 0458           L95:
 0458 4427              clr R20
 045A 5527              clr R21
 045C           L96:
 045C 80E0              ldi R24,<_decode+6
 045E 90E0              ldi R25,>_decode+6
 0460 E881              ldd R30,y+0
 0462 FF27              clr R31
 0464 E80F              add R30,R24
 0466 F91F              adc R31,R25
 0468 8081              ldd R24,z+0
 046A 8130              cpi R24,1
 046C 21F4              brne L97
 046E 81E0              ldi R24,1
 0470 90E0              ldi R25,0
 0472 7C01              movw R14,R24
 0474 02C0              xjmp L98
 0476           L97:
 0476 EE24              clr R14
 0478 FF24              clr R15
 047A           L98:
 047A 80E0              ldi R24,<_decode+7
 047C 90E0              ldi R25,>_decode+7
 047E E881              ldd R30,y+0
 0480 FF27              clr R31
 0482 E80F              add R30,R24
 0484 F91F              adc R31,R25
 0486 8081              ldd R24,z+0
 0488 8130              cpi R24,1
 048A 21F4              brne L99
 048C 81E0              ldi R24,1
 048E 90E0              ldi R25,0
 0490 6C01              movw R12,R24
 0492 02C0              xjmp L100
 0494           L99:
 0494 CC24              clr R12
 0496 DD24              clr R13
 0498           L100:
 0498 80E0              ldi R24,<_decode+8
 049A 90E0              ldi R25,>_decode+8
 049C E881              ldd R30,y+0
 049E FF27              clr R31
 04A0 E80F              add R30,R24
 04A2 F91F              adc R31,R25
 04A4 8081              ldd R24,z+0
 04A6 8130              cpi R24,1
 04A8 21F4              brne L101
 04AA 81E0              ldi R24,1
 04AC 90E0              ldi R25,0
 04AE 5C01              movw R10,R24
 04B0 02C0              xjmp L102
 04B2           L101:
 04B2 AA24              clr R10
 04B4 BB24              clr R11
 04B6           L102:
 04B6 80E0              ldi R24,<_decode+9
 04B8 90E0              ldi R25,>_decode+9
 04BA E881              ldd R30,y+0
 04BC FF27              clr R31
 04BE E80F              add R30,R24
 04C0 F91F              adc R31,R25
 04C2 8081              ldd R24,z+0
 04C4 8130              cpi R24,1
 04C6 19F4              brne L103
 04C8 61E0              ldi R22,1
 04CA 70E0              ldi R23,0
 04CC 02C0              xjmp L104
 04CE           L103:
 04CE 6627              clr R22
 04D0 7727              clr R23
 04D2           L104:
 04D2 2C80              ldd R2,y+4
 04D4 3D80              ldd R3,y+5
 04D6 0A80              ldd R0,y+2
 04D8 1B80              ldd R1,y+3
 04DA 2020              and R2,R0
 04DC 3120              and R3,R1
 04DE 0E80              ldd R0,y+6
 04E0 1F80              ldd R1,y+7
 04E2 2020              and R2,R0
 04E4 3120              and R3,R1
 04E6 0884              ldd R0,y+8
 04E8 1984              ldd R1,y+9
 04EA 2020              and R2,R0
 04EC 3120              and R3,R1
 04EE 0A84              ldd R0,y+10
 04F0 1B84              ldd R1,y+11
 04F2 2020              and R2,R0
 04F4 3120              and R3,R1
 04F6 2422              and R2,R20
 04F8 3522              and R3,R21
 04FA 2E20              and R2,R14
 04FC 3F20              and R3,R15
 04FE 2C20              and R2,R12
 0500 3D20              and R3,R13
 0502 2A20              and R2,R10
 0504 3B20              and R3,R11
 0506 2622              and R2,R22
 0508 3722              and R3,R23
 050A 2220              tst R2
 050C 11F4              brne X5
 050E 3320              tst R3
 0510 41F0              breq L74
 0512           X5:
 0512                   .dbline 223
 0512                   .dbline 224
 0512           ;                    head=1;
 0512 81E0              ldi R24,1
 0514 80930300          sts _head,R24
 0518                   .dbline 225
 0518           ;                        post=i+10;
 0518 8881              ldd R24,y+0
 051A 865F              subi R24,246    ; addi 10
 051C 80930100          sts _post,R24
 0520                   .dbline 226
 0520           ;                        break;
 0520 07C0              xjmp L72
 0522           L74:
 0522                   .dbline 228
 0522           L71:
 0522                   .dbline 221
 0522 0880              ldd R0,y+0
 0524 0394              inc R0
 0526 0882              std y+0,R0
 0528           L73:
 0528                   .dbline 221
 0528 8881              ldd R24,y+0
 052A 8038              cpi R24,128
 052C 08F4              brsh X10
 052E 2ECF              xjmp L70
 0530           X10:
 0530           L72:
 0530                   .dbline 229
 0530           ;                    } 
 0530           ;                }
 0530           ;         if (head==1) {
 0530 80910300          lds R24,_head
 0534 8130              cpi R24,1
 0536 09F0              breq X11
 0538 49C1              xjmp L105
 053A           X11:
 053A                   .dbline 229
 053A                   .dbline 230
 053A 0024              clr R0
 053C 0882              std y+0,R0
 053E 29C0              xjmp L110
 0540           L107:
 0540                   .dbline 230
 0540           ;                  for (i=0;i<54;i++) {
 0540                   .dbline 231
 0540           ;                    if (decode[post+i]==0x0e) error++;
 0540 2880              ldd R2,y+0
 0542 3324              clr R3
 0544 E0910100          lds R30,_post
 0548 FF27              clr R31
 054A E20D              add R30,R2
 054C F31D              adc R31,R3
 054E 80E0              ldi R24,<_decode
 0550 90E0              ldi R25,>_decode
 0552 E80F              add R30,R24
 0554 F91F              adc R31,R25
 0556 8081              ldd R24,z+0
 0558 8E30              cpi R24,14
 055A 29F4              brne L111
 055C                   .dbline 231
 055C 80910000          lds R24,_error
 0560 8F5F              subi R24,255    ; addi 1
 0562 80930000          sts _error,R24
 0566           L111:
 0566                   .dbline 232
 0566 2880              ldd R2,y+0
 0568 3324              clr R3
 056A E0910100          lds R30,_post
 056E FF27              clr R31
 0570 E20D              add R30,R2
 0572 F31D              adc R31,R3
 0574 80E0              ldi R24,<_decode
 0576 90E0              ldi R25,>_decode
 0578 E80F              add R30,R24
 057A F91F              adc R31,R25
 057C 2080              ldd R2,z+0
 057E 80E0              ldi R24,<_rfiddata
 0580 90E0              ldi R25,>_rfiddata
 0582 E881              ldd R30,y+0
 0584 FF27              clr R31
 0586 E80F              add R30,R24
 0588 F91F              adc R31,R25
 058A 2082              std z+0,R2
 058C                   .dbline 233
 058C           L108:
 058C                   .dbline 230
 058C 0880              ldd R0,y+0
 058E 0394              inc R0
 0590 0882              std y+0,R0
 0592           L110:
 0592                   .dbline 230
 0592 8881              ldd R24,y+0
 0594 8633              cpi R24,54
 0596 A0F2              brlo L107
 0598                   .dbline 234
 0598           ;                        rfiddata[i]=decode[post+i];
 0598           ;                        } 
 0598           ;          if (error==0) {          //H4001卡采用的二维行列偶校验码
 0598 20900000          lds R2,_error
 059C 2220              tst R2
 059E 09F0              breq X12
 05A0 15C1              xjmp L113
 05A2           X12:
 05A2                   .dbline 234
 05A2                   .dbline 235
 05A2 0024              clr R0
 05A4 0882              std y+0,R0
 05A6 3EC0              xjmp L118
 05A8           L115:
 05A8                   .dbline 235
 05A8           ;                        for (i=0;i<10;i++) { //先对10行数据进行校验
 05A8                   .dbline 236
 05A8           ;                  if (!(rfiddata[i*5]^rfiddata[i*5+1]^rfiddata[i*5+2]^rfiddata[i*5+3]==rfiddata[i*5+4])) error++;
 05A8 85E0              ldi R24,5
 05AA 0880              ldd R0,y+0
 05AC 809D              mul R24,R0
 05AE 1001              movw R2,R0
 05B0 80E0              ldi R24,<_rfiddata+4
 05B2 90E0              ldi R25,>_rfiddata+4
 05B4 F101              movw R30,R2
 05B6 E80F              add R30,R24
 05B8 F91F              adc R31,R25
 05BA 4080              ldd R4,z+0
 05BC 80E0              ldi R24,<_rfiddata+3
 05BE 90E0              ldi R25,>_rfiddata+3
 05C0 F101              movw R30,R2
 05C2 E80F              add R30,R24
 05C4 F91F              adc R31,R25
 05C6 5080              ldd R5,z+0
 05C8 5414              cp R5,R4
 05CA 19F4              brne L125
 05CC 61E0              ldi R22,1
 05CE 70E0              ldi R23,0
 05D0 02C0              xjmp L126
 05D2           L125:
 05D2 6627              clr R22
 05D4 7727              clr R23
 05D6           L126:
 05D6 80E0              ldi R24,<_rfiddata+1
 05D8 90E0              ldi R25,>_rfiddata+1
 05DA F101              movw R30,R2
 05DC E80F              add R30,R24
 05DE F91F              adc R31,R25
 05E0 4080              ldd R4,z+0
 05E2 5524              clr R5
 05E4 80E0              ldi R24,<_rfiddata
 05E6 90E0              ldi R25,>_rfiddata
 05E8 F101              movw R30,R2
 05EA E80F              add R30,R24
 05EC F91F              adc R31,R25
 05EE 6080              ldd R6,z+0
 05F0 7724              clr R7
 05F2 6424              eor R6,R4
 05F4 7524              eor R7,R5
 05F6 80E0              ldi R24,<_rfiddata+2
 05F8 90E0              ldi R25,>_rfiddata+2
 05FA F101              movw R30,R2
 05FC E80F              add R30,R24
 05FE F91F              adc R31,R25
 0600 4080              ldd R4,z+0
 0602 5524              clr R5
 0604 6424              eor R6,R4
 0606 7524              eor R7,R5
 0608 6626              eor R6,R22
 060A 7726              eor R7,R23
 060C 6620              tst R6
 060E 39F4              brne L119
 0610 7720              tst R7
 0612 29F4              brne L119
 0614           X6:
 0614                   .dbline 236
 0614 80910000          lds R24,_error
 0618 8F5F              subi R24,255    ; addi 1
 061A 80930000          sts _error,R24

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -