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

📄 h4001.lis

📁 用AVR单片机ATMega32通过U2270B读取H4001只读RFID卡号的范例
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 01F4 2CBC              out 0x2c,R2
 01F6                   .dbline 177
 01F6           ;                  if ((tcomp>1500 & tcomp<2500)|(tcomp>3000 & tcomp<5000)) {    //判断是否为合法跳变
 01F6 8CED              ldi R24,1500
 01F8 95E0              ldi R25,5
 01FA 20900400          lds R2,_tcomp
 01FE 30900500          lds R3,_tcomp+1
 0202 8215              cp R24,R2
 0204 9305              cpc R25,R3
 0206 20F4              brsh L46
 0208 81E0              ldi R24,1
 020A 90E0              ldi R25,0
 020C 6C01              movw R12,R24
 020E 02C0              xjmp L47
 0210           L46:
 0210 CC24              clr R12
 0212 DD24              clr R13
 0214           L47:
 0214 80910400          lds R24,_tcomp
 0218 90910500          lds R25,_tcomp+1
 021C 843C              cpi R24,196
 021E E9E0              ldi R30,9
 0220 9E07              cpc R25,R30
 0222 20F4              brsh L48
 0224 81E0              ldi R24,1
 0226 90E0              ldi R25,0
 0228 5C01              movw R10,R24
 022A 02C0              xjmp L49
 022C           L48:
 022C AA24              clr R10
 022E BB24              clr R11
 0230           L49:
 0230 88EB              ldi R24,3000
 0232 9BE0              ldi R25,11
 0234 20900400          lds R2,_tcomp
 0238 30900500          lds R3,_tcomp+1
 023C 8215              cp R24,R2
 023E 9305              cpc R25,R3
 0240 18F4              brsh L50
 0242 41E0              ldi R20,1
 0244 50E0              ldi R21,0
 0246 02C0              xjmp L51
 0248           L50:
 0248 4427              clr R20
 024A 5527              clr R21
 024C           L51:
 024C 80910400          lds R24,_tcomp
 0250 90910500          lds R25,_tcomp+1
 0254 8838              cpi R24,136
 0256 E3E1              ldi R30,19
 0258 9E07              cpc R25,R30
 025A 20F4              brsh L52
 025C 81E0              ldi R24,1
 025E 90E0              ldi R25,0
 0260 7C01              movw R14,R24
 0262 02C0              xjmp L53
 0264           L52:
 0264 EE24              clr R14
 0266 FF24              clr R15
 0268           L53:
 0268 1A01              movw R2,R20
 026A 2E20              and R2,R14
 026C 3F20              and R3,R15
 026E 2601              movw R4,R12
 0270 4A20              and R4,R10
 0272 5B20              and R5,R11
 0274 4228              or R4,R2
 0276 5328              or R5,R3
 0278 4420              tst R4
 027A 19F4              brne X3
 027C 5520              tst R5
 027E 09F4              brne X8
 0280 6DC0              xjmp L44
 0282           X8:
 0282           X3:
 0282                   .dbline 177
 0282                   .dbline 178
 0282           ;                       if (tcomp>1500 & tcomp<2500) {
 0282 8CED              ldi R24,1500
 0284 95E0              ldi R25,5
 0286 20900400          lds R2,_tcomp
 028A 30900500          lds R3,_tcomp+1
 028E 8215              cp R24,R2
 0290 9305              cpc R25,R3
 0292 20F4              brsh L56
 0294 81E0              ldi R24,1
 0296 90E0              ldi R25,0
 0298 6C01              movw R12,R24
 029A 02C0              xjmp L57
 029C           L56:
 029C CC24              clr R12
 029E DD24              clr R13
 02A0           L57:
 02A0 80910400          lds R24,_tcomp
 02A4 90910500          lds R25,_tcomp+1
 02A8 843C              cpi R24,196
 02AA E9E0              ldi R30,9
 02AC 9E07              cpc R25,R30
 02AE 20F4              brsh L58
 02B0 81E0              ldi R24,1
 02B2 90E0              ldi R25,0
 02B4 5C01              movw R10,R24
 02B6 02C0              xjmp L59
 02B8           L58:
 02B8 AA24              clr R10
 02BA BB24              clr R11
 02BC           L59:
 02BC 1601              movw R2,R12
 02BE 2A20              and R2,R10
 02C0 3B20              and R3,R11
 02C2 2220              tst R2
 02C4 11F4              brne X4
 02C6 3320              tst R3
 02C8 C1F0              breq L54
 02CA           X4:
 02CA                   .dbline 178
 02CA                   .dbline 179
 02CA           ;                       if (half==1) {
 02CA 80910700          lds R24,_half
 02CE 8130              cpi R24,1
 02D0 81F4              brne L60
 02D2                   .dbline 179
 02D2                   .dbline 180
 02D2           ;                               half=0;
 02D2 2224              clr R2
 02D4 20920700          sts _half,R2
 02D8                   .dbline 181
 02D8           ;                                   decode[j]=lastbit;
 02D8 80E0              ldi R24,<_decode
 02DA 90E0              ldi R25,>_decode
 02DC E981              ldd R30,y+1
 02DE FF27              clr R31
 02E0 E80F              add R30,R24
 02E2 F91F              adc R31,R25
 02E4 20900600          lds R2,_lastbit
 02E8 2082              std z+0,R2
 02EA                   .dbline 182
 02EA           ;                                   j++;
 02EA 0980              ldd R0,y+1
 02EC 0394              inc R0
 02EE 0982              std y+1,R0
 02F0                   .dbline 183
 02F0           ;                                   } 
 02F0 35C0              xjmp L55
 02F2           L60:
 02F2                   .dbline 185
 02F2           ;                           else
 02F2           ;                               half=1;   
 02F2 81E0              ldi R24,1
 02F4 80930700          sts _half,R24
 02F8                   .dbline 186
 02F8           ;                          } 
 02F8 31C0              xjmp L55
 02FA           L54:
 02FA                   .dbline 188
 02FA           ;                   else 
 02FA           ;                           {                 // (tcomp>3000 & tcomp<5000)   
 02FA                   .dbline 189
 02FA           ;                       if (half==1) 
 02FA 80910700          lds R24,_half
 02FE 8130              cpi R24,1
 0300 D1F4              brne L62
 0302                   .dbline 190
 0302           ;                                  {
 0302                   .dbline 191
 0302           ;                    if (lastbit==0) {
 0302 20900600          lds R2,_lastbit
 0306 2220              tst R2
 0308 49F4              brne L64
 030A                   .dbline 191
 030A                   .dbline 192
 030A           ;                                  decode[j]=1;
 030A 80E0              ldi R24,<_decode
 030C 90E0              ldi R25,>_decode
 030E E981              ldd R30,y+1
 0310 FF27              clr R31
 0312 E80F              add R30,R24
 0314 F91F              adc R31,R25
 0316 81E0              ldi R24,1
 0318 8083              std z+0,R24
 031A                   .dbline 193
 031A           ;                                      }
 031A 1AC0              xjmp L63
 031C           L64:
 031C                   .dbline 195
 031C           ;                              else
 031C           ;                                 { 
 031C                   .dbline 196
 031C           ;                                          if (lastbit==1) {
 031C 80910600          lds R24,_lastbit
 0320 8130              cpi R24,1
 0322 B1F4              brne L63
 0324                   .dbline 196
 0324                   .dbline 197
 0324           ;                                             decode[j]=0;
 0324 80E0              ldi R24,<_decode
 0326 90E0              ldi R25,>_decode
 0328 E981              ldd R30,y+1
 032A FF27              clr R31
 032C E80F              add R30,R24
 032E F91F              adc R31,R25
 0330 2224              clr R2
 0332 2082              std z+0,R2
 0334                   .dbline 198
 0334           ;                             } 
 0334                   .dbline 199
 0334           ;                                         }
 0334                   .dbline 200
 0334           ;                    } 
 0334 0DC0              xjmp L63
 0336           L62:
 0336                   .dbline 202
 0336           ;                           else
 0336           ;                                  {
 0336                   .dbline 203
 0336           ;                                   decode[j]=0x0E;
 0336 80E0              ldi R24,<_decode
 0338 90E0              ldi R25,>_decode
 033A E981              ldd R30,y+1
 033C FF27              clr R31
 033E E80F              add R30,R24
 0340 F91F              adc R31,R25
 0342 8EE0              ldi R24,14
 0344 8083              std z+0,R24
 0346                   .dbline 204
 0346           ;                                   if (j<127) {
 0346 8981              ldd R24,y+1
 0348 8F37              cpi R24,127
 034A A8F4              brsh L33
 034C                   .dbline 204
 034C                   .dbline 205
 034C           ;                        bits=0;
 034C 6627              clr R22
 034E 7727              clr R23
 0350                   .dbline 206
 0350           ;                                          }                                    
 0350                   .dbline 208
 0350           ;                                       else
 0350           ;                                          break;
 0350           L69:
 0350                   .dbline 209
 0350           ;                                       }
 0350           L63:
 0350                   .dbline 210
 0350           ;                           j++;
 0350 0980              ldd R0,y+1
 0352 0394              inc R0
 0354 0982              std y+1,R0
 0356                   .dbline 211
 0356           ;                           half=1;
 0356 81E0              ldi R24,1
 0358 80930700          sts _half,R24
 035C                   .dbline 212
 035C           ;                       }
 035C           L55:
 035C                   .dbline 213
 035C           ;             } 
 035C           L44:
 035C                   .dbline 214
 035C 81E0              ldi R24,1
 035E 20900600          lds R2,_lastbit
 0362 2826              eor R2,R24
 0364 20920600          sts _lastbit,R2
 0368                   .dbline 215
 0368           L32:
 0368                   .dbline 171
 0368 6F5F              subi R22,255  ; offset = 1
 036A 7F4F              sbci R23,255
 036C           L34:
 036C                   .dbline 171
 036C 6030              cpi R22,0
 036E E1E0              ldi R30,1
 0370 7E07              cpc R23,R30
 0372 08F4              brsh X9
 0374 11CF              xjmp L36
 0376           X9:
 0376           L33:
 0376                   .dbline 217
 0376           ;                lastbit^=0x01;
 0376           ;          } 
 0376           ; 
 0376           ;      j=0;
 0376 0024              clr R0
 0378 0982              std y+1,R0
 037A                   .dbline 218
 037A           ;        head=0;
 037A 2224              clr R2
 037C 20920300          sts _head,R2
 0380                   .dbline 219
 0380           ;        post=0;
 0380 20920100          sts _post,R2
 0384                   .dbline 220
 0384           ;        error=0;
 0384 20920000          sts _error,R2
 0388                   .dbline 221
 0388           ;        for (i=0;i<128;i++)
 0388 0882              std y+0,R0
 038A CEC0              xjmp L73
 038C           L70:
 038C                   .dbline 222
 038C           ;            {                        //查找最后一个终止位(0),及9位(1)引导位
 038C                   .dbline 223
 038C           ;            if ((decode[i]==0)&(decode[i+1]==1)&(decode[i+2]==1)&(decode[i+3]==1)&(decode[i+4]==1)&(decode[i+5]==1)&(decode[i+6]==1)&(decode[i+7]==1)&(decode[i+8]==1)&(decode[i+9]==1)) {
 038C 80E0              ldi R24,<_decode
 038E 90E0              ldi R25,>_decode
 0390 E881              ldd R30,y+0
 0392 FF27              clr R31
 0394 E80F              add R30,R24
 0396 F91F              adc R31,R25
 0398 2080              ldd R2,z+0
 039A 2220              tst R2
 039C 29F4              brne L85
 039E 81E0              ldi R24,1
 03A0 90E0              ldi R25,0
 03A2 9D83              std y+5,R25
 03A4 8C83              std y+4,R24
 03A6 04C0              xjmp L86
 03A8           L85:
 03A8 0024              clr R0
 03AA 1124              clr R1
 03AC 1D82              std y+5,R1
 03AE 0C82              std y+4,R0
 03B0           L86:
 03B0 80E0              ldi R24,<_decode+1
 03B2 90E0              ldi R25,>_decode+1
 03B4 E881              ldd R30,y+0
 03B6 FF27              clr R31
 03B8 E80F              add R30,R24
 03BA F91F              adc R31,R25
 03BC 8081              ldd R24,z+0
 03BE 8130              cpi R24,1
 03C0 29F4              brne L87
 03C2 81E0              ldi R24,1
 03C4 90E0              ldi R25,0
 03C6 9B83              std y+3,R25
 03C8 8A83              std y+2,R24
 03CA 04C0              xjmp L88
 03CC           L87:
 03CC 0024              clr R0
 03CE 1124              clr R1
 03D0 1B82              std y+3,R1
 03D2 0A82              std y+2,R0
 03D4           L88:
 03D4 80E0              ldi R24,<_decode+2
 03D6 90E0              ldi R25,>_decode+2
 03D8 E881              ldd R30,y+0
 03DA FF27              clr R31

⌨️ 快捷键说明

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