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

📄 main.lst

📁 此程序为利用mage8 AVR 和EM4094实现读取ISO15693类型卡的C程序、读卡稳定、这个项目我们做了好久、非常不错的程序、很适合做这方面产品的朋友们参考
💻 LST
📖 第 1 页 / 共 5 页
字号:
 343               	.LM28:
 344 00bc 80E0      		ldi r24,lo8(ALARM_ENABLE)
 345 00be 90E0      		ldi r25,hi8(ALARM_ENABLE)
 346 00c0 00D0      		rcall eeprom_read_byte
 347 00c2 01C0      		rjmp .L17
 348               	.L12:
 197:main.c        **** 	  else
 198:main.c        **** 	  	  alarm_enable = 0x01;	  	  
 349               		.stabn 68,0,198,.LM29-avr_ini
 350               	.LM29:
 351 00c4 81E0      		ldi r24,lo8(1)
 352               	.L17:
 353 00c6 8093 0000 		sts alarm_enable,r24
 199:main.c        **** 	  	  
 200:main.c        ****     Beep( 2 );
 354               		.stabn 68,0,200,.LM30-avr_ini
 355               	.LM30:
 356 00ca 82E0      		ldi r24,lo8(2)
 357 00cc F0D1      		rcall Beep
 201:main.c        ****     
 202:main.c        ****     Set_GREEN_LED( );
 358               		.stabn 68,0,202,.LM31-avr_ini
 359               	.LM31:
 360 00ce 9698      		cbi 50-0x20,6
 203:main.c        ****     Delayms( 300 );
 361               		.stabn 68,0,203,.LM32-avr_ini
 362               	.LM32:
 363 00d0 8CE2      		ldi r24,lo8(300)
 364 00d2 91E0      		ldi r25,hi8(300)
 365 00d4 BAD1      		rcall Delayms
 204:main.c        ****     Set_RED_LED( );
 366               		.stabn 68,0,204,.LM33-avr_ini
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s 			page 11


 367               	.LM33:
 368 00d6 969A      		sbi 50-0x20,6
 205:main.c        ****     
 206:main.c        ****     sei( );                                      // General Interrupt Enable                    
 369               		.stabn 68,0,206,.LM34-avr_ini
 370               	.LM34:
 371               	/* #APP */
 372 00d8 7894      		sei
 207:main.c        **** }
 373               		.stabn 68,0,207,.LM35-avr_ini
 374               	.LM35:
 375               	/* #NOAPP */
 376               	/* epilogue: frame size=0 */
 377 00da 1F91      		pop r17
 378 00dc 0895      		ret
 379               	/* epilogue end (size=2) */
 380               	/* function avr_ini size 118 (115) */
 381               		.size	avr_ini, .-avr_ini
 382               	.Lscope0:
 383               		.stabs	"",36,0,0,.Lscope0-avr_ini
 384               		.stabs	"store_bit:F(0,20)",36,0,218,store_bit
 385               		.stabs	"b:P(4,2)",64,0,217,24
 386               		.stabs	"v:P(4,2)",64,0,217,22
 387               	.global	store_bit
 388               		.type	store_bit, @function
 389               	store_bit:
 208:main.c        **** 
 209:main.c        **** 
 210:main.c        **** // ==================================================================
 211:main.c        **** // R E C E I V E R   C O D E
 212:main.c        **** // ==================================================================
 213:main.c        **** 
 214:main.c        **** // ---------------------------------------------------------------
 215:main.c        **** // store bit into capture buffer bytes
 216:main.c        **** 
 217:main.c        **** void store_bit( uint8_t b , uint8_t v )
 218:main.c        **** {
 390               		.stabn 68,0,218,.LM36-store_bit
 391               	.LM36:
 392               	/* prologue: frame size=0 */
 393               	/* prologue end (size=0) */
 394 00de 282F      		mov r18,r24
 219:main.c        ****     captured_byte  = ( captured_byte << 1 ) | b;
 395               		.stabn 68,0,219,.LM37-store_bit
 396               	.LM37:
 397 00e0 862D      		mov r24,r6
 398 00e2 9927      		clr r25
 399 00e4 880F      		lsl r24
 400 00e6 991F      		rol r25
 401 00e8 282B      		or r18,r24
 402 00ea 622E      		mov r6,r18
 220:main.c        ****     captured_valid = ( captured_valid << 1 ) | v;
 403               		.stabn 68,0,220,.LM38-store_bit
 404               	.LM38:
 405 00ec 872D      		mov r24,r7
 406 00ee 9927      		clr r25
 407 00f0 880F      		lsl r24
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s 			page 12


 408 00f2 991F      		rol r25
 409 00f4 682B      		or r22,r24
 410 00f6 762E      		mov r7,r22
 221:main.c        **** 
 222:main.c        ****     if ( captured_bit_count == 7 ) 
 411               		.stabn 68,0,222,.LM39-store_bit
 412               	.LM39:
 413 00f8 87E0      		ldi r24,lo8(7)
 414 00fa 9816      		cp r9,r24
 415 00fc 79F4      		brne .L19
 223:main.c        ****     {
 224:main.c        ****         captured_bit_count = 0;
 416               		.stabn 68,0,224,.LM40-store_bit
 417               	.LM40:
 418 00fe 9924      		clr r9
 225:main.c        **** 
 226:main.c        ****         if ( capture_cnt < CAPTURE_SIZE ) 
 419               		.stabn 68,0,226,.LM41-store_bit
 420               	.LM41:
 421 0100 87FC      		sbrc r8,7
 422 0102 0AC0      		rjmp .L20
 227:main.c        ****         {
 228:main.c        ****             capture.capture_data[ capture_cnt ] = captured_byte;
 423               		.stabn 68,0,228,.LM42-store_bit
 424               	.LM42:
 425 0104 E82D      		mov r30,r8
 426 0106 FF27      		clr r31
 427 0108 E050      		subi r30,lo8(-(capture))
 428 010a F040      		sbci r31,hi8(-(capture))
 429 010c 2083      		st Z,r18
 229:main.c        ****             capture.capture_valid[ capture_cnt++ ] = captured_valid;
 430               		.stabn 68,0,229,.LM43-store_bit
 431               	.LM43:
 432 010e E058      		subi r30,lo8(-(128))
 433 0110 FF4F      		sbci r31,hi8(-(128))
 434 0112 6083      		st Z,r22
 435 0114 8394      		inc r8
 230:main.c        ****         } 
 231:main.c        ****         else 
 232:main.c        ****         {
 233:main.c        ****             TIMSK = 0;                                    //finished, disable all
 234:main.c        ****         }
 235:main.c        ****     } 
 236:main.c        ****     else 
 237:main.c        ****     {
 238:main.c        ****         captured_bit_count++;
 239:main.c        ****     }
 240:main.c        **** }
 436               		.stabn 68,0,240,.LM44-store_bit
 437               	.LM44:
 438 0116 0895      		ret
 439               	.L20:
 440               		.stabn 68,0,233,.LM45-store_bit
 441               	.LM45:
 442 0118 19BE      		out 89-0x20,__zero_reg__
 443               		.stabn 68,0,240,.LM46-store_bit
 444               	.LM46:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s 			page 13


 445 011a 0895      		ret
 446               	.L19:
 447               		.stabn 68,0,238,.LM47-store_bit
 448               	.LM47:
 449 011c 9394      		inc r9
 450               		.stabn 68,0,240,.LM48-store_bit
 451               	.LM48:
 452 011e 0895      		ret
 453               	/* epilogue: frame size=0 */
 454 0120 0895      		ret
 455               	/* epilogue end (size=1) */
 456               	/* function store_bit size 34 (33) */
 457               		.size	store_bit, .-store_bit
 458               	.Lscope1:
 459               		.stabs	"",36,0,0,.Lscope1-store_bit
 460               		.stabs	"__vector_5:F(0,20)",36,0,247,__vector_5
 461               	.global	__vector_5
 462               		.type	__vector_5, @function
 463               	__vector_5:
 241:main.c        **** 
 242:main.c        **** 
 243:main.c        **** // ==================================================================
 244:main.c        **** // void one_subcarrier_capture(void)
 245:main.c        **** 
 246:main.c        **** SIGNAL ( SIG_INPUT_CAPTURE1 )
 247:main.c        **** {
 464               		.stabn 68,0,247,.LM49-__vector_5
 465               	.LM49:
 466               	/* prologue: frame size=0 */
 467 0122 1F92      		push __zero_reg__
 468 0124 0F92      		push __tmp_reg__
 469 0126 0FB6      		in __tmp_reg__,__SREG__
 470 0128 0F92      		push __tmp_reg__
 471 012a 1124      		clr __zero_reg__
 472 012c EF92      		push r14
 473 012e FF92      		push r15
 474 0130 1F93      		push r17
 475 0132 2F93      		push r18
 476 0134 3F93      		push r19
 477 0136 4F93      		push r20
 478 0138 5F93      		push r21
 479 013a 6F93      		push r22
 480 013c 7F93      		push r23
 481 013e 8F93      		push r24
 482 0140 9F93      		push r25
 483 0142 AF93      		push r26
 484 0144 BF93      		push r27
 485 0146 CF93      		push r28
 486 0148 DF93      		push r29
 487 014a EF93      		push r30
 488 014c FF93      		push r31
 489               	/* prologue end (size=22) */
 248:main.c        ****     uint8_t z;
 249:main.c        ****     uint16_t capt , y;
 250:main.c        ****     uint16_t icr;
 251:main.c        ****     icr = ICR1; 
 490               		.stabn 68,0,251,.LM50-__vector_5
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s 			page 14


 491               	.LM50:
 492               	.LBB2:
 493 014e E6B4      		in r14,70-0x20
 494 0150 F7B4      		in r15,(70)+1-0x20
 252:main.c        ****     capt = icr - last_capture;
 495               		.stabn 68,0,252,.LM51-__vector_5
 496               	.LM51:
 497 0152 8091 0000 		lds r24,last_capture
 498 0156 9091 0000 		lds r25,(last_capture)+1
 499 015a E701      		movw r28,r14
 500 015c C81B      		sub r28,r24
 501 015e D90B      		sbc r29,r25
 253:main.c        **** 
 254:main.c        ****     if ( capt > halfDataRate )  //quite good pause?  //halfDataRate = 288 or 4* 288;
 502               		.stabn 68,0,254,.LM52-__vector_5
 503               	.LM52:
 504 0160 4091 0000 		lds r20,halfDataRate
 505 0164 5091 0000 		lds r21,(halfDataRate)+1
 506 0168 4C17      		cp r20,r28
 507 016a 5D07      		cpc r21,r29
 508 016c 08F0      		brlo .+2
 509 016e 92C0      		rjmp .L24
 255:main.c        ****     { 
 256:main.c        ****         z = TCNT0;
 510               		.stabn 68,0,256,.LM53-__vector_5
 511               	.LM53:
 512 0170 22B7      		in r18,82-0x20
 257:main.c        ****         TCNT0 = 0;
 513               		.stabn 68,0,257,.LM54-__vector_5
 514               	.LM54:
 515 0172 12BE      		out 82-0x20,__zero_reg__
 258:main.c        ****         y = icr - old_capture;     //y
 259:main.c        **** 
 260:main.c        ****         if ( debug_mode != 1 )             //data capture
 516               		.stabn 68,0,260,.LM55-__vector_5
 517               	.LM55:
 518 0174 8091 0000 		lds r24,debug_mode
 519 0178 8130      		cpi r24,lo8(1)
 520 017a 09F4      		brne .+2
 521 017c 87C0      		rjmp .L43
 261:main.c        ****         {                        
 262:main.c        ****             capt += previous_delay;
 522               		.stabn 68,0,262,.LM56-__vector_5
 523               	.LM56:
 524 017e 8091 0000 		lds r24,previous_delay
 525 0182 9091 0000 		lds r25,(previous_delay)+1
 526 0186 C80F      		add r28,r24
 527 0188 D91F      		adc r29,r25
 263:main.c        ****             previous_delay = 0;
 528               		.stabn 68,0,263,.LM57-__vector_5
 529               	.LM57:
 530 018a 1092 0000 		sts (previous_delay)+1,__zero_reg__
 531 018e 1092 0000 		sts previous_delay,__zero_reg__
 264:main.c        ****             if ( z < ( uint8_t )( pulsesPerBit - TOLERANCE ) )  //kludge because of noise
 532               		.stabn 68,0,264,.LM58-__vector_5
 533               	.LM58:
 534 0192 3091 0000 		lds r19,pulsesPerBit
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s 			page 15


 535 0196 832F      		mov r24,r19
 536 0198 8350      		subi r24,lo8(-(-3))
 537 019a 2817      		cp r18,r24
 538 019c 50F4      		brsh .L26
 265:main.c        ****             { 
 266:main.c        ****                 previous_delay = capt;
 539               		.stabn 68,0,266,.LM59-__vector_5
 540               	.LM59:
 541 019e D093 0000 		sts (previous_delay)+1,r29

⌨️ 快捷键说明

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