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

📄 h4001.lst

📁 用AVR单片机ATMega32通过U2270B读取H4001只读RFID卡号的范例
💻 LST
📖 第 1 页 / 共 3 页
字号:
    0124 0553      CPC	R21,R3
    0125 F421      BNE	0x012A
    0126 E081      LDI	R24,1
    0127 E090      LDI	R25,0
    0128 015C      MOVW	R10,R24
    0129 C002      RJMP	0x012C
    012A 24AA      CLR	R10
    012B 24BB      CLR	R11
    012C B58C      IN	R24,0x2C
    012D B59D      IN	R25,0x2D
    012E 3280      CPI	R24,0x20
    012F E4EE      LDI	R30,0x4E
    0130 079E      CPC	R25,R30
    0131 F418      BCC	0x0135
    0132 E041      LDI	R20,1
    0133 E050      LDI	R21,0
    0134 C002      RJMP	0x0137
    0135 2744      CLR	R20
    0136 2755      CLR	R21
    0137 0115      MOVW	R2,R10
    0138 2224      AND	R2,R20
    0139 2235      AND	R3,R21
    013A 2022      TST	R2
    013B F6E9      BNE	0x0119
    013C 2033      TST	R3
    013D F6D9      BNE	0x0119
(0175) 	     tcomp=TCNT1;
    013E B42C      IN	R2,0x2C
    013F B43D      IN	R3,0x2D
    0140 92300065  STS	tcomp+1,R3
    0142 92200064  STS	tcomp,R2
(0176)          TCNT1=0;
    0144 2422      CLR	R2
    0145 2433      CLR	R3
    0146 BC3D      OUT	0x2D,R3
    0147 BC2C      OUT	0x2C,R2
(0177) 		   if ((tcomp>1500 & tcomp<2500)|(tcomp>3000 & tcomp<5000)) {    //判断是否为合法跳变
    0148 ED8C      LDI	R24,0xDC
    0149 E095      LDI	R25,5
    014A 940E0425  CALL	0x425
    014C F420      BCC	0x0151
    014D E081      LDI	R24,1
    014E E090      LDI	R25,0
    014F 016C      MOVW	R12,R24
    0150 C002      RJMP	0x0153
    0151 24CC      CLR	R12
    0152 24DD      CLR	R13
    0153 940E0437  CALL	0x437
    0155 3C84      CPI	R24,0xC4
    0156 E0E9      LDI	R30,0x9
    0157 079E      CPC	R25,R30
    0158 F420      BCC	0x015D
    0159 E081      LDI	R24,1
    015A E090      LDI	R25,0
    015B 015C      MOVW	R10,R24
    015C C002      RJMP	0x015F
    015D 24AA      CLR	R10
    015E 24BB      CLR	R11
    015F EB88      LDI	R24,0xB8
    0160 E09B      LDI	R25,0xB
    0161 940E0425  CALL	0x425
    0163 F418      BCC	0x0167
    0164 E041      LDI	R20,1
    0165 E050      LDI	R21,0
    0166 C002      RJMP	0x0169
    0167 2744      CLR	R20
    0168 2755      CLR	R21
    0169 940E0437  CALL	0x437
    016B 3888      CPI	R24,0x88
    016C E1E3      LDI	R30,0x13
    016D 079E      CPC	R25,R30
    016E F420      BCC	0x0173
    016F E081      LDI	R24,1
    0170 E090      LDI	R25,0
    0171 017C      MOVW	R14,R24
    0172 C002      RJMP	0x0175
    0173 24EE      CLR	R14
    0174 24FF      CLR	R15
    0175 011A      MOVW	R2,R20
    0176 202E      AND	R2,R14
    0177 203F      AND	R3,R15
    0178 0126      MOVW	R4,R12
    0179 204A      AND	R4,R10
    017A 205B      AND	R5,R11
    017B 2842      OR	R4,R2
    017C 2853      OR	R5,R3
    017D 2044      TST	R4
    017E F419      BNE	0x0182
    017F 2055      TST	R5
    0180 F409      BNE	0x0182
    0181 C057      RJMP	0x01D9
(0178) 			if (tcomp>1500 & tcomp<2500) {
    0182 ED8C      LDI	R24,0xDC
    0183 E095      LDI	R25,5
    0184 940E0425  CALL	0x425
    0186 F420      BCC	0x018B
    0187 E081      LDI	R24,1
    0188 E090      LDI	R25,0
    0189 016C      MOVW	R12,R24
    018A C002      RJMP	0x018D
    018B 24CC      CLR	R12
    018C 24DD      CLR	R13
    018D 940E0437  CALL	0x437
    018F 3C84      CPI	R24,0xC4
    0190 E0E9      LDI	R30,0x9
    0191 079E      CPC	R25,R30
    0192 F420      BCC	0x0197
    0193 E081      LDI	R24,1
    0194 E090      LDI	R25,0
    0195 015C      MOVW	R10,R24
    0196 C002      RJMP	0x0199
    0197 24AA      CLR	R10
    0198 24BB      CLR	R11
    0199 0116      MOVW	R2,R12
    019A 202A      AND	R2,R10
    019B 203B      AND	R3,R11
    019C 2022      TST	R2
    019D F411      BNE	0x01A0
    019E 2033      TST	R3
    019F F0A1      BEQ	0x01B4
(0179) 		        if (half==1) {
    01A0 91800067  LDS	R24,half
    01A2 3081      CPI	R24,1
    01A3 F461      BNE	0x01B0
(0180) 			        half=0;
    01A4 2422      CLR	R2
    01A5 92200067  STS	half,R2
    01A7 940E040D  CALL	0x40D
(0181) 				    decode[j]=lastbit;
    01A9 90200066  LDS	R2,lastbit
    01AB 8220      STD	Z+0,R2
(0182) 				    j++;
    01AC 8009      LDD	R0,Y+1
    01AD 9403      INC	R0
    01AE 8209      STD	Y+1,R0
(0183) 				    } 
    01AF C029      RJMP	0x01D9
(0184) 			    else
(0185) 			        half=1;	  
    01B0 E081      LDI	R24,1
    01B1 93800067  STS	half,R24
(0186) 			   } 
    01B3 C025      RJMP	0x01D9
(0187) 		    else 
(0188) 			    {                 // (tcomp>3000 & tcomp<5000)   
(0189) 		        if (half==1) 
    01B4 91800067  LDS	R24,half
    01B6 3081      CPI	R24,1
    01B7 F491      BNE	0x01CA
(0190) 				   {
(0191)                    if (lastbit==0) {
    01B8 90200066  LDS	R2,lastbit
    01BA 2022      TST	R2
    01BB F429      BNE	0x01C1
    01BC 940E040D  CALL	0x40D
(0192) 			           decode[j]=1;
    01BE E081      LDI	R24,1
    01BF 8380      STD	Z+0,R24
(0193) 				       }
    01C0 C012      RJMP	0x01D3
(0194) 			       else
(0195) 			          { 
(0196) 					   if (lastbit==1) {
    01C1 91800066  LDS	R24,lastbit
    01C3 3081      CPI	R24,1
    01C4 F471      BNE	0x01D3
    01C5 940E040D  CALL	0x40D
(0197) 					      decode[j]=0;
    01C7 2422      CLR	R2
    01C8 8220      STD	Z+0,R2
(0198) 	            	      } 
(0199) 					  }
(0200)                    } 
    01C9 C009      RJMP	0x01D3
(0201) 			    else
(0202) 				   {
(0203) 				    decode[j]=0x0E;
    01CA 940E040D  CALL	0x40D
    01CC E08E      LDI	R24,0xE
    01CD 8380      STD	Z+0,R24
(0204) 				    if (j<127) {
    01CE 8189      LDD	R24,Y+1
    01CF 378F      CPI	R24,0x7F
    01D0 F4A8      BCC	0x01E6
(0205)                        bits=0;
    01D1 2766      CLR	R22
    01D2 2777      CLR	R23
(0206) 					   }					
(0207) 					else
(0208) 					   break;
(0209) 					}
(0210) 			    j++;
    01D3 8009      LDD	R0,Y+1
    01D4 9403      INC	R0
    01D5 8209      STD	Y+1,R0
(0211) 			    half=1;
    01D6 E081      LDI	R24,1
    01D7 93800067  STS	half,R24
(0212) 		        }
(0213) 	      } 
(0214) 		 lastbit^=0x01;
    01D9 E081      LDI	R24,1
    01DA 90200066  LDS	R2,lastbit
    01DC 2628      EOR	R2,R24
    01DD 92200066  STS	lastbit,R2
    01DF 5F6F      SUBI	R22,0xFF
    01E0 4F7F      SBCI	R23,0xFF
    01E1 3060      CPI	R22,0
    01E2 E0E1      LDI	R30,1
    01E3 077E      CPC	R23,R30
    01E4 F408      BCC	0x01E6
    01E5 CF33      RJMP	0x0119
(0215)          } 
(0216) 
(0217)      j=0;
    01E6 2400      CLR	R0
    01E7 8209      STD	Y+1,R0
(0218) 	 head=0;
    01E8 2422      CLR	R2
    01E9 92200063  STS	head,R2
(0219) 	 post=0;
    01EB 92200061  STS	post,R2
(0220) 	 error=0;
    01ED 92200060  STS	error,R2
(0221) 	 for (i=0;i<128;i++)
    01EF 8208      STD	Y+0,R0
    01F0 C0B0      RJMP	0x02A1
(0222) 	     {                        //查找最后一个终止位(0),及9位(1)引导位
(0223) 	     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)) {
    01F1 E98E      LDI	R24,0x9E
    01F2 940E0402  CALL	<created procedures>
    01F4 8020      LDD	R2,Z+0
    01F5 2022      TST	R2
    01F6 F429      BNE	0x01FC
    01F7 E081      LDI	R24,1
    01F8 E090      LDI	R25,0
    01F9 839D      STD	Y+5,R25
    01FA 838C      STD	Y+4,R24
    01FB C004      RJMP	0x0200
    01FC 2400      CLR	R0
    01FD 2411      CLR	R1
    01FE 821D      STD	Y+5,R1
    01FF 820C      STD	Y+4,R0
    0200 E98F      LDI	R24,0x9F
    0201 940E0402  CALL	<created procedures>
    0203 8180      LDD	R24,Z+0
    0204 3081      CPI	R24,1
    0205 F429      BNE	0x020B
    0206 E081      LDI	R24,1
    0207 E090      LDI	R25,0
    0208 839B      STD	Y+3,R25
    0209 838A      STD	Y+2,R24
    020A C004      RJMP	0x020F
    020B 2400      CLR	R0
    020C 2411      CLR	R1
    020D 821B      STD	Y+3,R1
    020E 820A      STD	Y+2,R0
    020F EA80      LDI	R24,0xA0
    0210 940E0402  CALL	<created procedures>
    0212 8180      LDD	R24,Z+0
    0213 3081      CPI	R24,1
    0214 F429      BNE	0x021A
    0215 E081      LDI	R24,1
    0216 E090      LDI	R25,0
    0217 839F      STD	Y+7,R25
    0218 838E      STD	Y+6,R24
    0219 C004      RJMP	0x021E
    021A 2400      CLR	R0
    021B 2411      CLR	R1
    021C 821F      STD	Y+7,R1
    021D 820E      STD	Y+6,R0
    021E EA81      LDI	R24,0xA1
    021F 940E0402  CALL	<created procedures>
    0221 8180      LDD	R24,Z+0
    0222 3081      CPI	R24,1
    0223 F429      BNE	0x0229
    0224 E081      LDI	R24,1
    0225 E090      LDI	R25,0
    0226 8799      STD	Y+9,R25
    0227 8788      STD	Y+8,R24
    0228 C004      RJMP	0x022D
    0229 2400      CLR	R0
    022A 2411      CLR	R1
    022B 8619      STD	Y+9,R1
    022C 8608      STD	Y+8,R0
    022D EA82      LDI	R24,0xA2
    022E 940E0402  CALL	<created procedures>
    0230 8180      LDD	R24,Z+0
    0231 3081      CPI	R24,1
    0232 F429      BNE	0x0238
    0233 E081      LDI	R24,1
    0234 E090      LDI	R25,0
    0235 879B      STD	Y+11,R25
    0236 878A      STD	Y+10,R24
    0237 C004      RJMP	0x023C
    0238 2400      CLR	R0
    0239 2411      CLR	R1
    023A 861B      STD	Y+11,R1
    023B 860A      STD	Y+10,R0
    023C EA83      LDI	R24,0xA3
    023D 940E0402  CALL	<created procedures>
    023F 8180      LDD	R24,Z+0
    0240 3081      CPI	R24,1
    0241 F419      BNE	0x0245
    0242 E041      LDI	R20,1
    0243 E050      LDI	R21,0
    0244 C002      RJMP	0x0247
    0245 2744      CLR	R20
    0246 2755      CLR	R21
    0247 EA84      LDI	R24,0xA4
    0248 940E0402  CALL	<created procedures>
    024A 8180      LDD	R24,Z+0
    024B 3081      CPI	R24,1
    024C F421      BNE	0x0251
    024D E081      LDI	R24,1
    024E E090      LDI	R25,0
    024F 017C      MOVW	R14,R24
    0250 C002      RJMP	0x0253
    0251 24EE      CLR	R14
    0252 24FF      CLR	R15
    0253 EA85      LDI	R24,0xA5
    0254 940E0402  CALL	<created procedures>
    0256 8180      LDD	R24,Z+0
    0257 3081      CPI	R24,1
    0258 F421      BNE	0x025D
    0259 E081      LDI	R24,1
    025A E090      LDI	R25,0
    025B 016C      MOVW	R12,R24
    025C C002      RJMP	0x025F
    025D 24CC      CLR	R12
    025E 24DD      CLR	R13
    025F EA86      LDI	R24,0xA6
    0260 940E0402  CALL	<created procedures>
    0262 8180      LDD	R24,Z+0
    0263 3081      CPI	R24,1
    0264 F421      BNE	0x0269
    0265 E081      LDI	R24,1
    0266 E090      LDI	R25,0
    0267 015C      MOVW	R10,R24
    0268 C002      RJMP	0x026B
    0269 24AA      CLR	R10
    026A 24BB      CLR	R11
    026B EA87      LDI	R24,0xA7
    026C 940E0402  CALL	<created procedures>
    026E 8180      LDD	R24,Z+0
    026F 3081      CPI	R24,1
    0270 F419      BNE	0x0274
    0271 E061      LDI	R22,1
    0272 E070      LDI	R23,0
    0273 C002      RJMP	0x0276
    0274 2766      CLR	R22
    0275 2777      CLR	R23
    0276 802C      LDD	R2,Y+4
    0277 803D      LDD	R3,Y+5
    0278 800A      LDD	R0,Y+2
    0279 801B      LDD	R1,Y+3
    027A 2020      AND	R2,R0
    027B 2031      AND	R3,R1
    027C 800E      LDD	R0,Y+6
    027D 801F      LDD	R1,Y+7
    027E 2020      AND	R2,R0
    027F 2031      AND	R3,R1
    0280 8408      LDD	R0,Y+8
    0281 8419      LDD	R1,Y+9
    0282 2020      AND	R2,R0
    0283 2031      AND	R3,R1
    0284 840A      LDD	R0,Y+10
    0285 841B      LDD	R1,Y+11
    0286 2020      AND	R2,R0
    0287 2031      AND	R3,R1
    0288 2224      AND	R2,R20
    0289 2235      AND	R3,R21
    028A 202E      AND	R2,R14
    028B 203F      AND	R3,R15
    028C 202C      AND	R2,R12
    028D 203D      AND	R3,R13
    028E 202A      AND	R2,R10
    028F 203B      AND	R3,R11
    0290 2226      AND	R2,R22
    0291 2237      AND	R3,R23
    0292 2022      TST	R2
    0293 F411      BNE	0x0296
    0294 2033      TST	R3
    0295 F041      BEQ	0x029E
(0224) 		     head=1;
    0296 E081      LDI	R24,1
    0297 93800063  STS	head,R24
(0225) 			 post=i+10;
    0299 8188      LDD	R24,Y+0
    029A 5F86      SUBI	R24,0xF6
    029B 93800061  STS	post,R24
(0226) 			 break;
    029D C007      RJMP	0x02A5
    029E 8008      LDD	R0,Y+0
    029F 9403      INC	R0
    02A0 8208      STD	Y+0,R0
    02A1 8188      LDD	R24,Y+0
    02A2 3880      CPI	R24,0x80
    02A3 F408      BCC	0x02A5
    02A4 CF4C      RJMP	0x01F1
(0227) 		     } 
(0228) 		 }
(0229) 	  if (head==1) {
    02A5 91800063  LDS	R24,head
    02A7 3081      CPI	R24,1
    02A8 F009      BEQ	0x02AA
    02A9 C0E9      RJMP	0x0393
(0230) 		   for (i=0;i<54;i++) {
    02AA 2400      CLR	R0
    02AB 8208      STD	Y+0,R0
    02AC C011      RJMP	0x02BE
(0231) 		     if (decode[post+i]==0x0e) error++;
    02AD 940E0414  CALL	0x414
    02AF 8180      LDD	R24,Z+0
    02B0 308E      CPI	R24,0xE
    02B1 F411      BNE	0x02B4
    02B2 940E0431  CALL	0x431
(0232) 			 rfiddata[i]=decode[post+i];
    02B4 940E0414  CALL	0x414

⌨️ 快捷键说明

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