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

📄 h4001.lst

📁 用AVR单片机ATMega32通过U2270B读取H4001只读RFID卡号的范例
💻 LST
📖 第 1 页 / 共 3 页
字号:
    02B6 8020      LDD	R2,Z+0
    02B7 E688      LDI	R24,0x68
    02B8 940E0402  CALL	<created procedures>
    02BA 8220      STD	Z+0,R2
    02BB 8008      LDD	R0,Y+0
    02BC 9403      INC	R0
    02BD 8208      STD	Y+0,R0
    02BE 8188      LDD	R24,Y+0
    02BF 3386      CPI	R24,0x36
    02C0 F360      BCS	0x02AD
(0233) 			 } 
(0234)          if (error==0) {          //H4001卡采用的二维行列偶校验码
    02C1 90200060  LDS	R2,error
    02C3 2022      TST	R2
    02C4 F009      BEQ	0x02C6
    02C5 C0CD      RJMP	0x0393
(0235) 			 for (i=0;i<10;i++) { //先对10行数据进行校验
    02C6 2400      CLR	R0
    02C7 8208      STD	Y+0,R0
    02C8 C033      RJMP	0x02FC
(0236)                  if (!(rfiddata[i*5]^rfiddata[i*5+1]^rfiddata[i*5+2]^rfiddata[i*5+3]==rfiddata[i*5+4])) error++;
    02C9 E085      LDI	R24,5
    02CA 8008      LDD	R0,Y+0
    02CB 9D80      MUL	R24,R0
    02CC 0110      MOVW	R2,R0
    02CD E68C      LDI	R24,0x6C
    02CE 940E0420  CALL	0x420
    02D0 8040      LDD	R4,Z+0
    02D1 E68B      LDI	R24,0x6B
    02D2 940E0420  CALL	0x420
    02D4 8050      LDD	R5,Z+0
    02D5 1454      CP	R5,R4
    02D6 F419      BNE	0x02DA
    02D7 E061      LDI	R22,1
    02D8 E070      LDI	R23,0
    02D9 C002      RJMP	0x02DC
    02DA 2766      CLR	R22
    02DB 2777      CLR	R23
    02DC E689      LDI	R24,0x69
    02DD E090      LDI	R25,0
    02DE 01F1      MOVW	R30,R2
    02DF 0FE8      ADD	R30,R24
    02E0 1FF9      ADC	R31,R25
    02E1 8040      LDD	R4,Z+0
    02E2 2455      CLR	R5
    02E3 E688      LDI	R24,0x68
    02E4 940E0420  CALL	0x420
    02E6 940E0441  CALL	0x441
    02E8 E68A      LDI	R24,0x6A
    02E9 E090      LDI	R25,0
    02EA 01F1      MOVW	R30,R2
    02EB 0FE8      ADD	R30,R24
    02EC 1FF9      ADC	R31,R25
    02ED 8040      LDD	R4,Z+0
    02EE 2455      CLR	R5
    02EF 2464      EOR	R6,R4
    02F0 2475      EOR	R7,R5
    02F1 2666      EOR	R6,R22
    02F2 2677      EOR	R7,R23
    02F3 2066      TST	R6
    02F4 F421      BNE	0x02F9
    02F5 2077      TST	R7
    02F6 F411      BNE	0x02F9
    02F7 940E0431  CALL	0x431
    02F9 8008      LDD	R0,Y+0
    02FA 9403      INC	R0
    02FB 8208      STD	Y+0,R0
    02FC 8188      LDD	R24,Y+0
    02FD 308A      CPI	R24,0xA
    02FE F408      BCC	0x0300
    02FF CFC9      RJMP	0x02C9
(0237) 				 }
(0238)              for (i=0;i<4;i++) {  //再对4列数据进行校验
    0300 2400      CLR	R0
    0301 8208      STD	Y+0,R0
    0302 C047      RJMP	0x034A
(0239)                  if (!(rfiddata[i]^rfiddata[i+5]^rfiddata[i+10]^rfiddata[i+15]^rfiddata[i+20]^rfiddata[i+25]^rfiddata[i+30]^rfiddata[i+35]^rfiddata[i+40]^rfiddata[i+45]==rfiddata[i+50])) error++;
    0303 E98A      LDI	R24,0x9A
    0304 940E0402  CALL	<created procedures>
    0306 8040      LDD	R4,Z+0
    0307 E985      LDI	R24,0x95
    0308 940E0402  CALL	<created procedures>
    030A 8050      LDD	R5,Z+0
    030B 1454      CP	R5,R4
    030C F419      BNE	0x0310
    030D E061      LDI	R22,1
    030E E070      LDI	R23,0
    030F C002      RJMP	0x0312
    0310 2766      CLR	R22
    0311 2777      CLR	R23
    0312 E68D      LDI	R24,0x6D
    0313 940E0402  CALL	<created procedures>
    0315 8040      LDD	R4,Z+0
    0316 2455      CLR	R5
    0317 E688      LDI	R24,0x68
    0318 940E0402  CALL	<created procedures>
    031A 940E0441  CALL	0x441
    031C E782      LDI	R24,0x72
    031D 940E0402  CALL	<created procedures>
    031F 940E0408  CALL	0x408
    0321 E787      LDI	R24,0x77
    0322 940E0402  CALL	<created procedures>
    0324 940E0408  CALL	0x408
    0326 E78C      LDI	R24,0x7C
    0327 940E0402  CALL	<created procedures>
    0329 940E0408  CALL	0x408
    032B E881      LDI	R24,0x81
    032C 940E0402  CALL	<created procedures>
    032E 940E0408  CALL	0x408
    0330 E886      LDI	R24,0x86
    0331 940E0402  CALL	<created procedures>
    0333 940E0408  CALL	0x408
    0335 E88B      LDI	R24,0x8B
    0336 940E0402  CALL	<created procedures>
    0338 940E0408  CALL	0x408
    033A E980      LDI	R24,0x90
    033B 940E0402  CALL	<created procedures>
    033D 940E0408  CALL	0x408
    033F 2666      EOR	R6,R22
    0340 2677      EOR	R7,R23
    0341 2066      TST	R6
    0342 F421      BNE	0x0347
    0343 2077      TST	R7
    0344 F411      BNE	0x0347
    0345 940E0431  CALL	0x431
    0347 8008      LDD	R0,Y+0
    0348 9403      INC	R0
    0349 8208      STD	Y+0,R0
    034A 8188      LDD	R24,Y+0
    034B 3084      CPI	R24,4
    034C F408      BCC	0x034E
    034D CFB5      RJMP	0x0303
(0240)                  }
(0241) 			 if (error==0) {
    034E 90400060  LDS	R4,error
    0350 2044      TST	R4
    0351 F009      BEQ	0x0353
    0352 C040      RJMP	0x0393
(0242) 			     beeps(1);
    0353 E001      LDI	R16,1
    0354 DD6D      RCALL	_beeps
(0243)                  UDR=10;
    0355 E08A      LDI	R24,0xA
    0356 B98C      OUT	0x0C,R24
(0244)                  wait_tx();
    0357 DD88      RCALL	_wait_tx
(0245) 	             UDR=13;
    0358 E08D      LDI	R24,0xD
    0359 B98C      OUT	0x0C,R24
(0246) 	             wait_tx();
    035A DD85      RCALL	_wait_tx
(0247) 				 for (i=0;i<10;i++) {    //对10行数据进行校验
    035B 2400      CLR	R0
    035C 8208      STD	Y+0,R0
    035D C031      RJMP	0x038F
(0248) 			         data1=(rfiddata[i*5]*8)+(rfiddata[i*5+1]*4)+(rfiddata[i*5+2]*2)+rfiddata[i*5+3];
    035E E085      LDI	R24,5
    035F 8008      LDD	R0,Y+0
    0360 9D80      MUL	R24,R0
    0361 0120      MOVW	R4,R0
    0362 E689      LDI	R24,0x69
    0363 940E042C  CALL	0x42C
    0365 8060      LDD	R6,Z+0
    0366 E084      LDI	R24,4
    0367 9D86      MUL	R24,R6
    0368 0130      MOVW	R6,R0
    0369 E688      LDI	R24,0x68
    036A 940E042C  CALL	0x42C
    036C 8080      LDD	R8,Z+0
    036D E088      LDI	R24,0x8
    036E 9D88      MUL	R24,R8
    036F 2C80      MOV	R8,R0
    0370 0C86      ADD	R8,R6
    0371 E68A      LDI	R24,0x6A
    0372 940E042C  CALL	0x42C
    0374 8060      LDD	R6,Z+0
    0375 E082      LDI	R24,2
    0376 9D86      MUL	R24,R6
    0377 0C80      ADD	R8,R0
    0378 E68B      LDI	R24,0x6B
    0379 940E042C  CALL	0x42C
    037B 8040      LDD	R4,Z+0
    037C 0C84      ADD	R8,R4
    037D 9280015F  STS	data1,R8
(0249)                      UDR=ascii[data1%16];
    037F E120      LDI	R18,0x10
    0380 E030      LDI	R19,0
    0381 2D08      MOV	R16,R8
    0382 2711      CLR	R17
    0383 D028      RCALL	mod16s
    0384 01F8      MOVW	R30,R16
    0385 E584      LDI	R24,0x54
    0386 E090      LDI	R25,0
    0387 0FE8      ADD	R30,R24
    0388 1FF9      ADC	R31,R25
    0389 91E4      LPM	R30,0(Z)
    038A B9EC      OUT	0x0C,R30
(0250) 					 wait_tx();
    038B DD54      RCALL	_wait_tx
    038C 8008      LDD	R0,Y+0
    038D 9403      INC	R0
    038E 8208      STD	Y+0,R0
    038F 8188      LDD	R24,Y+0
    0390 308A      CPI	R24,0xA
    0391 F408      BCC	0x0393
    0392 CFCB      RJMP	0x035E
(0251) 				 } 
(0252) 				} 
(0253) 		    }
(0254) 		 }
    0393 962C      ADIW	R28,0xC
    0394 D04C      RCALL	pop_gset5
    0395 9508      RET
(0255) 	} 
(0256) 
(0257) 	
(0258) void int0_isr(void)
(0259) {
_int0_isr:
    0396 9508      RET
(0260)  //external interupt on INT0
(0261) }
(0262) 
(0263) 
(0264) void main(void)
(0265) {
(0266)     unsigned char i,j,t_i;
(0267)     init_devices();
_main:
  t_i                  --> Y+1
  j                    --> Y+1
  i                    --> Y+1
    0397 DD15      RCALL	_init_devices
(0268)     RFW_1();
    0398 9AAE      SBI	0x15,6
(0269)     okled0();
    0399 98A8      CBI	0x15,0
    039A C00F      RJMP	0x03AA
(0270) 	while (1) {
(0271) 		if (run==1) { 
    039B 91800062  LDS	R24,run
    039D 3081      CPI	R24,1
    039E F459      BNE	0x03AA
(0272) 			R_H4001();
    039F DD44      RCALL	_R_H4001
(0273) 			led();  
    03A0 E880      LDI	R24,0x80
    03A1 E090      LDI	R25,0
    03A2 B222      IN	R2,0x12
    03A3 2433      CLR	R3
    03A4 2628      EOR	R2,R24
    03A5 2639      EOR	R3,R25
    03A6 BA22      OUT	0x12,R2
(0274) 			run=0;
FILE: <library>
    03A7 2422      CLR	R2
    03A8 92200062  STS	run,R2
    03AA CFF0      RJMP	0x039B
    03AB 9508      RET
mod16s:
    03AC 9468      BSET	6
    03AD 92DA      ST	R13,-Y
    03AE 2ED1      MOV	R13,R17
    03AF C004      RJMP	0x03B4
div16s:
    03B0 94E8      BCLR	6
    03B1 92DA      ST	R13,-Y
    03B2 2ED1      MOV	R13,R17
    03B3 26D3      EOR	R13,R19
    03B4 FF17      SBRS	R17,7
    03B5 C002      RJMP	0x03B8
    03B6 940E043C  CALL	0x43C
    03B8 FF37      SBRS	R19,7
    03B9 C004      RJMP	0x03BE
    03BA 9530      COM	R19
    03BB 9520      COM	R18
    03BC 5F2F      SUBI	R18,0xFF
    03BD 4F3F      SBCI	R19,0xFF
    03BE D009      RCALL	xdiv16u
    03BF FED7      SBRS	R13,7
    03C0 C002      RJMP	0x03C3
    03C1 940E043C  CALL	0x43C
    03C3 90D9      LD	R13,Y+
    03C4 9508      RET
mod16u:
    03C5 9468      BSET	6
    03C6 C001      RJMP	xdiv16u
div16u:
    03C7 94E8      BCLR	6
xdiv16u:
    03C8 92EA      ST	R14,-Y
    03C9 92FA      ST	R15,-Y
    03CA 938A      ST	R24,-Y
    03CB 24EE      CLR	R14
    03CC 24FF      CLR	R15
    03CD E180      LDI	R24,0x10
    03CE 0F00      LSL	R16
    03CF 1F11      ROL	R17
    03D0 1CEE      ROL	R14
    03D1 1CFF      ROL	R15
    03D2 16E2      CP	R14,R18
    03D3 06F3      CPC	R15,R19
    03D4 F018      BCS	0x03D8
    03D5 1AE2      SUB	R14,R18
    03D6 0AF3      SBC	R15,R19
    03D7 9503      INC	R16
    03D8 958A      DEC	R24
    03D9 F7A1      BNE	0x03CE
    03DA F416      BRTC	0x03DD
    03DB 2D0E      MOV	R16,R14
    03DC 2D1F      MOV	R17,R15
    03DD 9189      LD	R24,Y+
    03DE 90F9      LD	R15,Y+
    03DF 90E9      LD	R14,Y+
    03E0 9508      RET
pop_gset5:
    03E1 27EE      CLR	R30
    03E2 C00C      RJMP	pop
push_gset5:
    03E3 92FA      ST	R15,-Y
    03E4 92EA      ST	R14,-Y
push_gset4:
    03E5 92DA      ST	R13,-Y
    03E6 92CA      ST	R12,-Y
push_gset3:
    03E7 92BA      ST	R11,-Y
    03E8 92AA      ST	R10,-Y
push_gset2:
    03E9 937A      ST	R23,-Y
    03EA 936A      ST	R22,-Y
push_gset1:
    03EB 935A      ST	R21,-Y
    03EC 934A      ST	R20,-Y
    03ED 9508      RET
pop_gset1:
    03EE E0E1      LDI	R30,1
pop:
    03EF 9149      LD	R20,Y+
    03F0 9159      LD	R21,Y+
    03F1 FDE0      SBRC	R30,0
    03F2 9508      RET
    03F3 9169      LD	R22,Y+
    03F4 9179      LD	R23,Y+
    03F5 FDE1      SBRC	R30,1
    03F6 9508      RET
    03F7 90A9      LD	R10,Y+
    03F8 90B9      LD	R11,Y+
    03F9 FDE2      SBRC	R30,2
    03FA 9508      RET
    03FB 90C9      LD	R12,Y+
    03FC 90D9      LD	R13,Y+
    03FD FDE3      SBRC	R30,3
    03FE 9508      RET
    03FF 90E9      LD	R14,Y+
    0400 90F9      LD	R15,Y+
    0401 9508      RET
<created procedures>:
    0402 E090      LDI	R25,0
    0403 81E8      LDD	R30,Y+0
    0404 27FF      CLR	R31
    0405 0FE8      ADD	R30,R24
    0406 1FF9      ADC	R31,R25
    0407 9508      RET
    0408 8040      LDD	R4,Z+0
    0409 2455      CLR	R5
    040A 2464      EOR	R6,R4
    040B 2475      EOR	R7,R5
    040C 9508      RET
    040D E98E      LDI	R24,0x9E
    040E E090      LDI	R25,0
    040F 81E9      LDD	R30,Y+1
    0410 27FF      CLR	R31
    0411 0FE8      ADD	R30,R24
    0412 1FF9      ADC	R31,R25
    0413 9508      RET
    0414 8028      LDD	R2,Y+0
    0415 2433      CLR	R3
    0416 91E00061  LDS	R30,post
    0418 27FF      CLR	R31
    0419 0DE2      ADD	R30,R2
    041A 1DF3      ADC	R31,R3
    041B E98E      LDI	R24,0x9E
    041C E090      LDI	R25,0
    041D 0FE8      ADD	R30,R24
    041E 1FF9      ADC	R31,R25
    041F 9508      RET
    0420 E090      LDI	R25,0
    0421 01F1      MOVW	R30,R2
    0422 0FE8      ADD	R30,R24
    0423 1FF9      ADC	R31,R25
    0424 9508      RET
    0425 90200064  LDS	R2,tcomp
    0427 90300065  LDS	R3,tcomp+1
    0429 1582      CP	R24,R2
    042A 0593      CPC	R25,R3
    042B 9508      RET
    042C E090      LDI	R25,0
    042D 01F2      MOVW	R30,R4
    042E 0FE8      ADD	R30,R24
    042F 1FF9      ADC	R31,R25
    0430 9508      RET
    0431 91800060  LDS	R24,error
    0433 5F8F      SUBI	R24,0xFF
    0434 93800060  STS	error,R24
    0436 9508      RET
    0437 91800064  LDS	R24,tcomp
    0439 91900065  LDS	R25,tcomp+1
    043B 9508      RET
    043C 9510      COM	R17
    043D 9500      COM	R16
    043E 5F0F      SUBI	R16,0xFF
    043F 4F1F      SBCI	R17,0xFF
    0440 9508      RET
    0441 8060      LDD	R6,Z+0
    0442 2477      CLR	R7
    0443 2464      EOR	R6,R4
    0444 2475      EOR	R7,R5
    0445 9508      RET

⌨️ 快捷键说明

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