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

📄 main.lst

📁 此程序为利用mage8 AVR 和EM4094实现读取TYPE B类型卡的C程序、读卡稳定、这个项目我们做了好久、非常不错的程序、很适合做这方面产品的朋友们参考
💻 LST
📖 第 1 页 / 共 5 页
字号:
 334:main.c        **** 	  	  watchdog_feed_flag = 0x55;
 739               		.stabn 68,0,334,.LM98-WatchDog_Feed
 740               	.LM98:
 741 0236 85E5      		ldi r24,lo8(85)
 742 0238 8093 0000 		sts watchdog_feed_flag,r24
 335:main.c        **** 	  	  sbi( PORTC , WATCHDOG ); 
 743               		.stabn 68,0,335,.LM99-WatchDog_Feed
 744               	.LM99:
 745 023c AC9A      		sbi 53-0x20,4
 336:main.c        **** 	  }
 337:main.c        **** 	  else
 338:main.c        **** 	  {
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s 			page 20


 339:main.c        **** 	  	  watchdog_feed_flag = 0;
 340:main.c        **** 	  	  cbi( PORTC , WATCHDOG );
 341:main.c        **** 	  }
 342:main.c        **** }
 746               		.stabn 68,0,342,.LM100-WatchDog_Feed
 747               	.LM100:
 748 023e 0895      		ret
 749               	.L55:
 750               		.stabn 68,0,339,.LM101-WatchDog_Feed
 751               	.LM101:
 752 0240 1092 0000 		sts watchdog_feed_flag,__zero_reg__
 753               		.stabn 68,0,340,.LM102-WatchDog_Feed
 754               	.LM102:
 755 0244 AC98      		cbi 53-0x20,4
 756               		.stabn 68,0,342,.LM103-WatchDog_Feed
 757               	.LM103:
 758 0246 0895      		ret
 759               	/* epilogue: frame size=0 */
 760 0248 0895      		ret
 761               	/* epilogue end (size=1) */
 762               	/* function WatchDog_Feed size 14 (13) */
 763               		.size	WatchDog_Feed, .-WatchDog_Feed
 764               	.Lscope4:
 765               		.stabs	"",36,0,0,.Lscope4-WatchDog_Feed
 766               		.stabs	"Send_Card_ID:F(0,20)",36,0,345,Send_Card_ID
 767               		.stabs	"format:P(4,2)",64,0,344,24
 768               		.stabs	"data:P(1,1)=*(4,2)",64,0,344,22
 769               	.global	Send_Card_ID
 770               		.type	Send_Card_ID, @function
 771               	Send_Card_ID:
 343:main.c        **** 
 344:main.c        **** void Send_Card_ID( uint8_t format , uint8_t *data )
 345:main.c        **** {
 772               		.stabn 68,0,345,.LM104-Send_Card_ID
 773               	.LM104:
 774               	/* prologue: frame size=0 */
 775               	/* prologue end (size=0) */
 346:main.c        **** 	  switch( format )
 776               		.stabn 68,0,346,.LM105-Send_Card_ID
 777               	.LM105:
 778 024a 282F      		mov r18,r24
 779 024c 3327      		clr r19
 780 024e 2330      		cpi r18,3
 781 0250 3105      		cpc r19,__zero_reg__
 782 0252 E9F0      		breq .L61
 783 0254 2430      		cpi r18,4
 784 0256 3105      		cpc r19,__zero_reg__
 785 0258 6CF4      		brge .L66
 786 025a 2130      		cpi r18,1
 787 025c 3105      		cpc r19,__zero_reg__
 788 025e 39F0      		breq .L59
 789 0260 2230      		cpi r18,2
 790 0262 3105      		cpc r19,__zero_reg__
 791 0264 09F0      		breq .L60
 347:main.c        **** 	  {
 348:main.c        **** 	      case 1 :
 349:main.c        **** 	      	  Send_Weigan26( data );
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s 			page 21


 350:main.c        **** 	          break;
 351:main.c        **** 	      case 2 :
 352:main.c        **** 	      	  Send_Weigan34( data );
 353:main.c        **** 	      	  break;
 354:main.c        **** 	      case 3 :
 355:main.c        **** 	      	  Send_Weigan36( data );
 356:main.c        **** 	      	  break;
 357:main.c        **** 	      case 4 :
 358:main.c        **** 	      	  Send_Weigan44( data );
 359:main.c        **** 	      	  break;
 360:main.c        **** 	      case 5 :
 361:main.c        **** 	      	  Send_9600( data );
 362:main.c        **** 	      	  break;
 363:main.c        **** 	      default :
 364:main.c        **** 	      	  break;	
 365:main.c        **** 	  }	
 366:main.c        **** }
 792               		.stabn 68,0,366,.LM106-Send_Card_ID
 793               	.LM106:
 794 0266 0895      		ret
 795               	.L60:
 796               		.stabn 68,0,352,.LM107-Send_Card_ID
 797               	.LM107:
 798 0268 CB01      		movw r24,r22
 799 026a 00D0      		rcall Send_Weigan34
 800               		.stabn 68,0,353,.LM108-Send_Card_ID
 801               	.LM108:
 802               		.stabn 68,0,366,.LM109-Send_Card_ID
 803               	.LM109:
 804 026c 0895      		ret
 805               	.L59:
 806               		.stabn 68,0,349,.LM110-Send_Card_ID
 807               	.LM110:
 808 026e CB01      		movw r24,r22
 809 0270 00D0      		rcall Send_Weigan26
 810               		.stabn 68,0,350,.LM111-Send_Card_ID
 811               	.LM111:
 812               		.stabn 68,0,366,.LM112-Send_Card_ID
 813               	.LM112:
 814 0272 0895      		ret
 815               	.L66:
 816 0274 2430      		cpi r18,4
 817 0276 3105      		cpc r19,__zero_reg__
 818 0278 39F0      		breq .L62
 819 027a 2530      		cpi r18,5
 820 027c 3105      		cpc r19,__zero_reg__
 821 027e 09F0      		breq .L63
 822 0280 0895      		ret
 823               	.L63:
 824               		.stabn 68,0,361,.LM113-Send_Card_ID
 825               	.LM113:
 826 0282 CB01      		movw r24,r22
 827 0284 00D0      		rcall Send_9600
 828               		.stabn 68,0,366,.LM114-Send_Card_ID
 829               	.LM114:
 830 0286 0895      		ret
 831               	.L62:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s 			page 22


 832               		.stabn 68,0,358,.LM115-Send_Card_ID
 833               	.LM115:
 834 0288 CB01      		movw r24,r22
 835 028a 00D0      		rcall Send_Weigan44
 836               		.stabn 68,0,359,.LM116-Send_Card_ID
 837               	.LM116:
 838               		.stabn 68,0,366,.LM117-Send_Card_ID
 839               	.LM117:
 840 028c 0895      		ret
 841               	.L61:
 842               		.stabn 68,0,355,.LM118-Send_Card_ID
 843               	.LM118:
 844 028e CB01      		movw r24,r22
 845 0290 00D0      		rcall Send_Weigan36
 846               		.stabn 68,0,356,.LM119-Send_Card_ID
 847               	.LM119:
 848               		.stabn 68,0,366,.LM120-Send_Card_ID
 849               	.LM120:
 850 0292 0895      		ret
 851               	/* epilogue: frame size=0 */
 852 0294 0895      		ret
 853               	/* epilogue end (size=1) */
 854               	/* function Send_Card_ID size 38 (37) */
 855               		.size	Send_Card_ID, .-Send_Card_ID
 856               	.Lscope5:
 857               		.stabs	"",36,0,0,.Lscope5-Send_Card_ID
 858               		.stabs	"Parse_Command:F(0,20)",36,0,369,Parse_Command
 859               		.stabs	"cmd:P(4,2)",64,0,368,17
 860               		.stabs	"param:P(4,2)",64,0,368,28
 861               	.global	Parse_Command
 862               		.type	Parse_Command, @function
 863               	Parse_Command:
 367:main.c        **** 
 368:main.c        **** void Parse_Command( uint8_t cmd , uint8_t param )
 369:main.c        **** {
 864               		.stabn 68,0,369,.LM121-Parse_Command
 865               	.LM121:
 866               	/* prologue: frame size=0 */
 867 0296 1F93      		push r17
 868 0298 CF93      		push r28
 869               	/* prologue end (size=2) */
 870 029a 182F      		mov r17,r24
 871 029c C62F      		mov r28,r22
 370:main.c        **** 	  wdt_reset( );
 872               		.stabn 68,0,370,.LM122-Parse_Command
 873               	.LM122:
 874               	/* #APP */
 875 029e A895      		wdr
 371:main.c        **** 
 372:main.c        **** #ifdef WDT
 373:main.c        ****          WatchDog_Feed( );
 876               		.stabn 68,0,373,.LM123-Parse_Command
 877               	.LM123:
 878               	/* #NOAPP */
 879 02a0 C6DF      		rcall WatchDog_Feed
 374:main.c        **** #endif
 375:main.c        ****     	 	  
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s 			page 23


 376:main.c        **** 	  switch ( cmd )
 880               		.stabn 68,0,376,.LM124-Parse_Command
 881               	.LM124:
 882 02a2 812F      		mov r24,r17
 883 02a4 9927      		clr r25
 884 02a6 AA27      		clr r26
 885 02a8 BB27      		clr r27
 886 02aa FC01      		movw r30,r24
 887 02ac 3197      		sbiw r30,1
 888 02ae EA30      		cpi r30,10
 889 02b0 F105      		cpc r31,__zero_reg__
 890 02b2 08F0      		brlo .+2
 891 02b4 77C0      		rjmp .L68
 892 02b6 E050      		subi r30,lo8(-(pm(.L90)))
 893 02b8 F040      		sbci r31,hi8(-(pm(.L90)))
 894 02ba 0994      		ijmp
 895               		.data
 896               		.section .progmem.gcc_sw_table, "ax", @progbits
 897               		.p2align 1
 898               	.L90:
 899 0000 00C0      		rjmp .L70
 900 0002 00C0      		rjmp .L76
 901 0004 00C0      		rjmp .L77
 902 0006 00C0      		rjmp .L78
 903 0008 00C0      		rjmp .L79
 904 000a 00C0      		rjmp .L83
 905 000c 00C0      		rjmp .L85
 906 000e 00C0      		rjmp .L86
 907 0010 00C0      		rjmp .L87
 908 0012 00C0      		rjmp .L88
 909               		.text
 377:main.c        ****     {
 378:main.c        ****         case 0x01 :             //Modify ID number;
 379:main.c        ****         	  while ( !eeprom_is_ready( ) ){};
 910               		.stabn 68,0,379,.LM125-Parse_Command
 911               	.LM125:
 912               	.L70:
 913 02bc E199      		sbic 60-0x20,1
 914 02be FECF      		rjmp .L70
 380:main.c        ****         	  eeprom_wb( &ID , param );
 915               		.stabn 68,0,380,.LM126-Parse_Command
 916               	.LM126:
 917 02c0 6C2F      		mov r22,r28
 918 02c2 80E0      		ldi r24,lo8(ID)
 919 02c4 90E0      		ldi r25,hi8(ID)
 920 02c6 00D0      		rcall eeprom_write_byte
 381:main.c        ****         	  while ( !eeprom_is_ready( ) ){};
 921               		.stabn 68,0,381,.LM127-Parse_Command
 922               	.LM127:
 923               	.L73:
 924 02c8 E199      		sbic 60-0x20,1
 925 02ca FECF      		rjmp .L73
 382:main.c        ****         	  eeprom_wb( &ID_CHK , param );
 926               		.stabn 68,0,382,.LM128-Parse_Command
 927               	.LM128:
 928 02cc 6C2F      		mov r22,r28
 929 02ce 80E0      		ldi r24,lo8(ID_CHK)
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cciWbaaa.s 			page 24


 930 02d0 90E0      		ldi r25,hi8(ID_CHK)
 931               	.L92:
 932 02d2 00D0      		rcall eeprom_write_byte
 383:main.c        ****         	  break;
 384:main.c        ****         	  
 385:main.c        ****         case 0x02 :             //Modify serial number;
 386:main.c        ****         	  eeprom_wb( &SERIAL_NUMBER , param );
 387:main.c        ****         	  eeprom_wb( &SERIAL_NUMBER_CHK , param );
 388:main.c        ****         	  break;
 389:main.c        ****         	  
 390:main.c        ****         case 0x03 :             //Modify format of weigan output,( 1 -- 26, 2 -- 34, 3 -- 36, 4 -- 
 391:main.c        ****         	  eeprom_wb( &WEIGAN_FORMAT , param );
 392:main.c        ****         	  eeprom_wb( &WEIGAN_FORMAT_CHK , param ); 
 393:main.c        ****         	  weigan_format = param;
 394:main.c        ****         	  break;
 395:main.c        ****      	  
 396:main.c        ****         case 0x04 :             //Modify authentication code;
 397:main.c        ****         	  eeprom_wb( &AUTH_CODE , param );
 398:main.c        ****         	  eeprom_wb( &AUTH_CODE_CHK , param );
 399:main.c        ****         	  break;
 933               		.stabn 68,0,399,.LM129-Parse_Command
 934               	.LM129:
 935

⌨️ 快捷键说明

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