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

📄 main.lst

📁 此程序为利用mage8 AVR 和EM4094实现读取TYPE A类型卡的C程序、读卡稳定、这个项目我们做了好久、非常不错的程序、很适合做这方面产品的朋友们参考
💻 LST
📖 第 1 页 / 共 5 页
字号:
 177:main.c        **** 	  else
 178:main.c        **** 	  	  alarm_time = 0x05;		  
 351               		.stabn 68,0,178,.LM29-avr_ini
 352               	.LM29:
 353 00a0 85E0      		ldi r24,lo8(5)
 354               	.L17:
 355 00a2 8093 0000 		sts alarm_time,r24
 179:main.c        **** 
 180:main.c        **** 	  if( eeprom_rb( &ALARM_ENABLE ) == eeprom_rb( &ALARM_ENABLE_CHK ) )   
 356               		.stabn 68,0,180,.LM30-avr_ini
 357               	.LM30:
 358 00a6 80E0      		ldi r24,lo8(ALARM_ENABLE)
 359 00a8 90E0      		ldi r25,hi8(ALARM_ENABLE)
 360 00aa 00D0      		rcall eeprom_read_byte
 361 00ac 182F      		mov r17,r24
 362 00ae 80E0      		ldi r24,lo8(ALARM_ENABLE_CHK)
 363 00b0 90E0      		ldi r25,hi8(ALARM_ENABLE_CHK)
 364 00b2 00D0      		rcall eeprom_read_byte
 365 00b4 1817      		cp r17,r24
 366 00b6 11F0      		breq .L23
 181:main.c        **** 	  	  alarm_enable = eeprom_rb( &ALARM_ENABLE );   
 182:main.c        **** 	  else
 183:main.c        **** 	  	  alarm_enable = 0x01;
 367               		.stabn 68,0,183,.LM31-avr_ini
 368               	.LM31:
 369 00b8 81E0      		ldi r24,lo8(1)
 370 00ba 10C0      		rjmp .L18
 371               		.stabn 68,0,181,.LM32-avr_ini
 372               	.LM32:
 373               	.L23:
 374 00bc 80E0      		ldi r24,lo8(ALARM_ENABLE)
 375 00be 90E0      		ldi r25,hi8(ALARM_ENABLE)
 376 00c0 00D0      		rcall eeprom_read_byte
 377 00c2 0CC0      		rjmp .L18
 378               		.stabn 68,0,176,.LM33-avr_ini
 379               	.LM33:
 380               	.L22:
 381 00c4 80E0      		ldi r24,lo8(ALARM_TIME)
 382 00c6 90E0      		ldi r25,hi8(ALARM_TIME)
 383 00c8 00D0      		rcall eeprom_read_byte
 384 00ca EBCF      		rjmp .L17
 385               		.stabn 68,0,171,.LM34-avr_ini
 386               	.LM34:
 387               	.L21:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccygaaaa.s 			page 11


 388 00cc 80E0      		ldi r24,lo8(ALARM_LEVEL)
 389 00ce 90E0      		ldi r25,hi8(ALARM_LEVEL)
 390 00d0 00D0      		rcall eeprom_read_byte
 391 00d2 DBCF      		rjmp .L16
 392               		.stabn 68,0,165,.LM35-avr_ini
 393               	.LM35:
 394               	.L20:
 395 00d4 80E0      		ldi r24,lo8(WEIGAN_FORMAT)
 396 00d6 90E0      		ldi r25,hi8(WEIGAN_FORMAT)
 397 00d8 00D0      		rcall eeprom_read_byte
 398 00da CBCF      		rjmp .L15
 399               	.L18:
 400 00dc 8093 0000 		sts alarm_enable,r24
 184:main.c        **** 	  	  	  	   
 185:main.c        ****     Beep( 2 );
 401               		.stabn 68,0,185,.LM36-avr_ini
 402               	.LM36:
 403 00e0 82E0      		ldi r24,lo8(2)
 404 00e2 07D2      		rcall Beep
 186:main.c        ****     
 187:main.c        ****     Set_GREEN_LED( );
 405               		.stabn 68,0,187,.LM37-avr_ini
 406               	.LM37:
 407 00e4 9698      		cbi 50-0x20,6
 188:main.c        ****     Delayms( 300 );
 408               		.stabn 68,0,188,.LM38-avr_ini
 409               	.LM38:
 410 00e6 8CE2      		ldi r24,lo8(300)
 411 00e8 91E0      		ldi r25,hi8(300)
 412 00ea 20D2      		rcall Delayms
 189:main.c        ****     Set_RED_LED( );
 413               		.stabn 68,0,189,.LM39-avr_ini
 414               	.LM39:
 415 00ec 969A      		sbi 50-0x20,6
 190:main.c        ****     Delayms( 300 );
 416               		.stabn 68,0,190,.LM40-avr_ini
 417               	.LM40:
 418 00ee 8CE2      		ldi r24,lo8(300)
 419 00f0 91E0      		ldi r25,hi8(300)
 420 00f2 1CD2      		rcall Delayms
 191:main.c        **** 
 192:main.c        ****     sei( );                                      // General Interrupt Enable                    
 421               		.stabn 68,0,192,.LM41-avr_ini
 422               	.LM41:
 423               	/* #APP */
 424 00f4 7894      		sei
 193:main.c        **** }
 425               		.stabn 68,0,193,.LM42-avr_ini
 426               	.LM42:
 427               	/* #NOAPP */
 428               	/* epilogue: frame size=0 */
 429 00f6 1F91      		pop r17
 430 00f8 0895      		ret
 431               	/* epilogue end (size=2) */
 432               	/* function avr_ini size 119 (116) */
 433               		.size	avr_ini, .-avr_ini
 434               	.Lscope1:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccygaaaa.s 			page 12


 435               		.stabs	"",36,0,0,.Lscope1-avr_ini
 436               		.stabs	"WatchDog_Feed:F(0,20)",36,0,196,WatchDog_Feed
 437               	.global	WatchDog_Feed
 438               		.type	WatchDog_Feed, @function
 439               	WatchDog_Feed:
 194:main.c        **** 
 195:main.c        **** void WatchDog_Feed( void )                       //Feed watchdog of the MAX705;
 196:main.c        **** {
 440               		.stabn 68,0,196,.LM43-WatchDog_Feed
 441               	.LM43:
 442               	/* prologue: frame size=0 */
 443               	/* prologue end (size=0) */
 197:main.c        **** 	  if ( watchdog_feed_flag == 0 )
 444               		.stabn 68,0,197,.LM44-WatchDog_Feed
 445               	.LM44:
 446 00fa 8091 0000 		lds r24,watchdog_feed_flag
 447 00fe 8823      		tst r24
 448 0100 29F4      		brne .L25
 198:main.c        **** 	  {
 199:main.c        **** 	  	  watchdog_feed_flag = 1;
 449               		.stabn 68,0,199,.LM45-WatchDog_Feed
 450               	.LM45:
 451 0102 81E0      		ldi r24,lo8(1)
 452 0104 8093 0000 		sts watchdog_feed_flag,r24
 200:main.c        **** 	  	  sbi( PORTC , WATCHDOG ); 
 453               		.stabn 68,0,200,.LM46-WatchDog_Feed
 454               	.LM46:
 455 0108 AC9A      		sbi 53-0x20,4
 201:main.c        **** 	  }
 202:main.c        **** 	  else
 203:main.c        **** 	  {
 204:main.c        **** 	  	  watchdog_feed_flag = 0;
 205:main.c        **** 	  	  cbi( PORTC , WATCHDOG );
 206:main.c        **** 	  }
 207:main.c        **** }
 456               		.stabn 68,0,207,.LM47-WatchDog_Feed
 457               	.LM47:
 458 010a 0895      		ret
 459               	.L25:
 460               		.stabn 68,0,204,.LM48-WatchDog_Feed
 461               	.LM48:
 462 010c 1092 0000 		sts watchdog_feed_flag,__zero_reg__
 463               		.stabn 68,0,205,.LM49-WatchDog_Feed
 464               	.LM49:
 465 0110 AC98      		cbi 53-0x20,4
 466               		.stabn 68,0,207,.LM50-WatchDog_Feed
 467               	.LM50:
 468 0112 0895      		ret
 469               	/* epilogue: frame size=0 */
 470 0114 0895      		ret
 471               	/* epilogue end (size=1) */
 472               	/* function WatchDog_Feed size 14 (13) */
 473               		.size	WatchDog_Feed, .-WatchDog_Feed
 474               	.Lscope2:
 475               		.stabs	"",36,0,0,.Lscope2-WatchDog_Feed
 476               		.stabs	"main_receiver:F(0,20)",36,0,215,main_receiver
 477               	.global	main_receiver
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccygaaaa.s 			page 13


 478               		.type	main_receiver, @function
 479               	main_receiver:
 208:main.c        **** // ********************************************************************************************
 209:main.c        **** // Description : Main loop.
 210:main.c        **** // Return value: None.   
 211:main.c        **** // parameter   : None.
 212:main.c        **** // ********************************************************************************************
 213:main.c        **** 
 214:main.c        **** void main_receiver( void ) 
 215:main.c        **** {
 480               		.stabn 68,0,215,.LM51-main_receiver
 481               	.LM51:
 482               	/* prologue: frame size=0 */
 483 0116 1F93      		push r17
 484 0118 CF93      		push r28
 485               	/* prologue end (size=2) */
 216:main.c        **** //    uint8_t i;
 217:main.c        ****     bufferClean       = 1;                              //on startup, make buffer not clean
 486               		.stabn 68,0,217,.LM52-main_receiver
 487               	.LM52:
 488               	.LBB2:
 489 011a 81E0      		ldi r24,lo8(1)
 490 011c 8093 0000 		sts bufferClean,r24
 218:main.c        ****     forward_link_type = 2;                              //default value, 1=type B, 2=type A
 491               		.stabn 68,0,218,.LM53-main_receiver
 492               	.LM53:
 493 0120 12E0      		ldi r17,lo8(2)
 494 0122 1093 0000 		sts forward_link_type,r17
 219:main.c        **** 
 220:main.c        ****     counter1set       = ( 1 << ICNC1 ) | ( 1 << CS10 ); //Timer1 input capture at falling edge;
 495               		.stabn 68,0,220,.LM54-main_receiver
 496               	.LM54:
 497 0126 81E8      		ldi r24,lo8(-127)
 498 0128 8093 0000 		sts counter1set,r24
 221:main.c        ****     
 222:main.c        ****     WriteSPI( write_4094_low , write_4094_hi );    //Configure EM4094 option bit;
 499               		.stabn 68,0,222,.LM55-main_receiver
 500               	.LM55:
 501 012c 6091 0000 		lds r22,write_4094_hi
 502 0130 7091 0000 		lds r23,(write_4094_hi)+1
 503 0134 8091 0000 		lds r24,write_4094_low
 504 0138 9091 0000 		lds r25,(write_4094_low)+1
 505 013c 00D0      		rcall WriteSPI
 223:main.c        ****     Wait( 4000 );                                  //Wait some time for EM4094 enter in normal stat
 506               		.stabn 68,0,223,.LM56-main_receiver
 507               	.LM56:
 508 013e 80EA      		ldi r24,lo8(4000)
 509 0140 9FE0      		ldi r25,hi8(4000)
 510 0142 00D0      		rcall Wait
 511               	.L49:
 224:main.c        **** 
 225:main.c        ****     while ( 1 )                                    // infinite loop
 226:main.c        ****     {
 227:main.c        ****     	  wdt_reset( );
 512               		.stabn 68,0,227,.LM57-main_receiver
 513               	.LM57:
 514               	/* #APP */
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccygaaaa.s 			page 14


 515 0144 A895      		wdr
 228:main.c        ****     	  
 229:main.c        **** #ifdef WDT
 230:main.c        ****         WatchDog_Feed( );
 516               		.stabn 68,0,230,.LM58-main_receiver
 517               	.LM58:
 518               	/* #NOAPP */
 519 0146 D9DF      		rcall WatchDog_Feed
 231:main.c        **** #endif
 232:main.c        ****  	  
 233:main.c        ****     	  cbi( PORTC , TEN_485 );
 520               		.stabn 68,0,233,.LM59-main_receiver
 521               	.LM59:
 522 0148 AD98      		cbi 53-0x20,5
 234:main.c        **** 
 235:main.c        ****         if ( valid_data_flag == 0 )
 523               		.stabn 68,0,235,.LM60-main_receiver
 524               	.LM60:
 525 014a 8091 0000 		lds r24,valid_data_flag
 526 014e 8823      		tst r24
 527 0150 09F0      		breq .+2
 528 0152 4AC0      		rjmp .L50
 529               	.L32:
 236:main.c        ****         {
 237:main.c        **** 
 238:main.c        ****         }
 239:main.c        ****         else
 240:main.c        ****         { 
 241:main.c        ****        	    valid_data_flag = 0x00;
 242:main.c        ****       	    SendByte( 0x55 );                  //response to PC;
 243:main.c        ****       	    SendByte( 0xAA );
 244:main.c        ****       	    SendByte( 0x01 );
 245:main.c        ****       	    SendByte( 0x02 );
 246:main.c        ****       	    Beep( 1 );
 247:main.c        ****       	    Parse_Command( uart_in_command , uart_in_param ); 
 248:main.c        ****         }
 249:main.c        **** 
 250:main.c        ****         Alarm_Check_And_Process( );
 530               		.stabn 68,0,250,.LM61-main_receiver
 531               	.LM61:
 532 0154 3ED2      		rcall Alarm_Check_And_Process
 251:main.c        ****        
 252:main.c        ****         TypeA_GetUID( );              //Get UID of TypeA;
 533               		.stabn 68,0,252,.LM62-main_receiver
 534               	.LM62:
 535 0156 00D0      		rcall TypeA_GetUID
 253:main.c        **** 
 254:main.c        ****   
 255:main.c        ****         if ( em4094_data_valid == 0x55 )
 536               		.stabn 68,0,255,.LM63-main_receiver
 537               	.LM63:

⌨️ 快捷键说明

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