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

📄 level3.lst

📁 此程序为利用mage8 AVR 和EM4094实现读取TYPE B类型卡的C程序、读卡稳定、这个项目我们做了好久、非常不错的程序、很适合做这方面产品的朋友们参考
💻 LST
📖 第 1 页 / 共 4 页
字号:
 215:level3.c      ****     Capture( );
 642               		.stabn 68,0,215,.LM87-Read_TypeB_Card
 643               	.LM87:
 644 0232 3EDF      		rcall Capture
 216:level3.c      ****    	    
 217:level3.c      ****     clean_data_cnt = ExtractTypeBData( 248 );
 645               		.stabn 68,0,217,.LM88-Read_TypeB_Card
 646               	.LM88:
 647 0234 88EF      		ldi r24,lo8(-8)
 648 0236 00D0      		rcall ExtractTypeBData
 649 0238 8093 0000 		sts clean_data_cnt,r24
 218:level3.c      **** 
 219:level3.c      ****     if ( clean_data_cnt == ( expectedResponseLen + 1 ) * 8 ) 
 650               		.stabn 68,0,219,.LM89-Read_TypeB_Card
 651               	.LM89:
 652 023c 282F      		mov r18,r24
 653 023e 3327      		clr r19
 654 0240 8091 0000 		lds r24,expectedResponseLen
 655 0244 9927      		clr r25
 656 0246 880F      		lsl r24
 657 0248 991F      		rol r25
 658 024a 880F      		lsl r24
 659 024c 991F      		rol r25
 660 024e 880F      		lsl r24
 661 0250 991F      		rol r25
 662 0252 0896      		adiw r24,8
 663 0254 2817      		cp r18,r24
 664 0256 3907      		cpc r19,r25
 665 0258 19F0      		breq .L68
 220:level3.c      ****     {
 221:level3.c      ****         switch( type_b_setting )
 222:level3.c      ****         {
 223:level3.c      ****             case 1 :
 224:level3.c      ****                 weigan_data[ 3 ] = data_buffer[ 4 ];
 225:level3.c      ****                 weigan_data[ 2 ] = data_buffer[ 3 ];
 226:level3.c      ****                 weigan_data[ 1 ] = data_buffer[ 2 ];
 227:level3.c      ****                 weigan_data[ 0 ] = data_buffer[ 1 ];	
 228:level3.c      ****             break;
 229:level3.c      ****             
 230:level3.c      ****             case 2 :
 231:level3.c      ****                 weigan_data[ 3 ] = data_buffer[ 8 ];
 232:level3.c      ****                 weigan_data[ 2 ] = data_buffer[ 7 ];
 233:level3.c      ****                 weigan_data[ 1 ] = data_buffer[ 6 ];
 234:level3.c      ****                 weigan_data[ 0 ] = data_buffer[ 5 ];            	  
 235:level3.c      ****             break;
 236:level3.c      ****             
 237:level3.c      ****             case 3 :
 238:level3.c      ****                 weigan_data[ 3 ] = data_buffer[ 4 ];
 239:level3.c      ****                 weigan_data[ 2 ] = data_buffer[ 3 ];
 240:level3.c      ****                 weigan_data[ 1 ] = data_buffer[ 8 ];
 241:level3.c      ****                 weigan_data[ 0 ] = data_buffer[ 7 ];            	
 242:level3.c      ****             break;
 243:level3.c      ****             
 244:level3.c      ****             case 4 :
 245:level3.c      ****                 weigan_data[ 3 ] = data_buffer[ 8 ];
 246:level3.c      ****                 weigan_data[ 2 ] = data_buffer[ 7 ];
 247:level3.c      ****                 weigan_data[ 1 ] = data_buffer[ 4 ];
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s 			page 17


 248:level3.c      ****                 weigan_data[ 0 ] = data_buffer[ 3 ];            	
 249:level3.c      ****             break;
 250:level3.c      ****             
 251:level3.c      ****             default:
 252:level3.c      ****             break;	
 253:level3.c      ****         }
 254:level3.c      ****         uint8_t check_data = 0;
 255:level3.c      ****         for ( i = 0 ; i < 4 ; i++ )
 256:level3.c      ****           check_data ^= weigan_data[ i ];
 257:level3.c      ****         weigan_data[ 4 ] = check_data; 
 258:level3.c      ****         return 1;     
 259:level3.c      ****     }
 260:level3.c      ****     else
 261:level3.c      ****     {
 262:level3.c      ****         return 0 ;
 666               		.stabn 68,0,262,.LM90-Read_TypeB_Card
 667               	.LM90:
 668 025a 80E0      		ldi r24,lo8(0)
 669 025c 90E0      		ldi r25,hi8(0)
 263:level3.c      ****     }	
 264:level3.c      **** }
 670               		.stabn 68,0,264,.LM91-Read_TypeB_Card
 671               	.LM91:
 672 025e 0895      		ret
 673               		.stabn 68,0,221,.LM92-Read_TypeB_Card
 674               	.LM92:
 675               	.L68:
 676               	.LBB7:
 677 0260 8091 0000 		lds r24,type_b_setting
 678 0264 9927      		clr r25
 679 0266 8230      		cpi r24,2
 680 0268 9105      		cpc r25,__zero_reg__
 681 026a 09F4      		brne .+2
 682 026c 47C0      		rjmp .L53
 683 026e 8330      		cpi r24,3
 684 0270 9105      		cpc r25,__zero_reg__
 685 0272 0CF5      		brge .L58
 686 0274 0197      		sbiw r24,1
 687 0276 71F0      		breq .L52
 688               	.L51:
 689               		.stabn 68,0,254,.LM93-Read_TypeB_Card
 690               	.LM93:
 691 0278 20E0      		ldi r18,lo8(0)
 692               		.stabn 68,0,255,.LM94-Read_TypeB_Card
 693               	.LM94:
 694 027a 922F      		mov r25,r18
 695 027c E0E0      		ldi r30,lo8(weigan_data)
 696 027e F0E0      		ldi r31,hi8(weigan_data)
 697               	.L63:
 698               		.stabn 68,0,256,.LM95-Read_TypeB_Card
 699               	.LM95:
 700 0280 8191      		ld r24,Z+
 701 0282 2827      		eor r18,r24
 702               		.stabn 68,0,255,.LM96-Read_TypeB_Card
 703               	.LM96:
 704 0284 9F5F      		subi r25,lo8(-(1))
 705 0286 9430      		cpi r25,lo8(4)
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s 			page 18


 706 0288 D8F3      		brlo .L63
 707               		.stabn 68,0,257,.LM97-Read_TypeB_Card
 708               	.LM97:
 709 028a 2093 0000 		sts weigan_data+4,r18
 710               		.stabn 68,0,258,.LM98-Read_TypeB_Card
 711               	.LM98:
 712 028e 81E0      		ldi r24,lo8(1)
 713 0290 90E0      		ldi r25,hi8(1)
 714               		.stabn 68,0,264,.LM99-Read_TypeB_Card
 715               	.LM99:
 716 0292 0895      		ret
 717               	.L52:
 718               		.stabn 68,0,224,.LM100-Read_TypeB_Card
 719               	.LM100:
 720 0294 8091 0000 		lds r24,data_buffer+4
 721 0298 8093 0000 		sts weigan_data+3,r24
 722               		.stabn 68,0,225,.LM101-Read_TypeB_Card
 723               	.LM101:
 724 029c 8091 0000 		lds r24,data_buffer+3
 725 02a0 8093 0000 		sts weigan_data+2,r24
 726               		.stabn 68,0,226,.LM102-Read_TypeB_Card
 727               	.LM102:
 728 02a4 8091 0000 		lds r24,data_buffer+2
 729 02a8 8093 0000 		sts weigan_data+1,r24
 730               		.stabn 68,0,227,.LM103-Read_TypeB_Card
 731               	.LM103:
 732 02ac 8091 0000 		lds r24,data_buffer+1
 733               	.L67:
 734 02b0 8093 0000 		sts weigan_data,r24
 735 02b4 E1CF      		rjmp .L51
 736               	.L58:
 737 02b6 8330      		cpi r24,3
 738 02b8 9105      		cpc r25,__zero_reg__
 739 02ba 89F0      		breq .L54
 740 02bc 0497      		sbiw r24,4
 741 02be E1F6      		brne .L51
 742               		.stabn 68,0,245,.LM104-Read_TypeB_Card
 743               	.LM104:
 744 02c0 8091 0000 		lds r24,data_buffer+8
 745 02c4 8093 0000 		sts weigan_data+3,r24
 746               		.stabn 68,0,246,.LM105-Read_TypeB_Card
 747               	.LM105:
 748 02c8 8091 0000 		lds r24,data_buffer+7
 749 02cc 8093 0000 		sts weigan_data+2,r24
 750               		.stabn 68,0,247,.LM106-Read_TypeB_Card
 751               	.LM106:
 752 02d0 8091 0000 		lds r24,data_buffer+4
 753 02d4 8093 0000 		sts weigan_data+1,r24
 754               		.stabn 68,0,248,.LM107-Read_TypeB_Card
 755               	.LM107:
 756 02d8 8091 0000 		lds r24,data_buffer+3
 757 02dc E9CF      		rjmp .L67
 758               	.L54:
 759               		.stabn 68,0,238,.LM108-Read_TypeB_Card
 760               	.LM108:
 761 02de 8091 0000 		lds r24,data_buffer+4
 762 02e2 8093 0000 		sts weigan_data+3,r24
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s 			page 19


 763               		.stabn 68,0,239,.LM109-Read_TypeB_Card
 764               	.LM109:
 765 02e6 8091 0000 		lds r24,data_buffer+3
 766 02ea 8093 0000 		sts weigan_data+2,r24
 767               		.stabn 68,0,240,.LM110-Read_TypeB_Card
 768               	.LM110:
 769 02ee 8091 0000 		lds r24,data_buffer+8
 770 02f2 8093 0000 		sts weigan_data+1,r24
 771               		.stabn 68,0,241,.LM111-Read_TypeB_Card
 772               	.LM111:
 773 02f6 8091 0000 		lds r24,data_buffer+7
 774 02fa DACF      		rjmp .L67
 775               	.L53:
 776               		.stabn 68,0,231,.LM112-Read_TypeB_Card
 777               	.LM112:
 778 02fc 8091 0000 		lds r24,data_buffer+8
 779 0300 8093 0000 		sts weigan_data+3,r24
 780               		.stabn 68,0,232,.LM113-Read_TypeB_Card
 781               	.LM113:
 782 0304 8091 0000 		lds r24,data_buffer+7
 783 0308 8093 0000 		sts weigan_data+2,r24
 784               		.stabn 68,0,233,.LM114-Read_TypeB_Card
 785               	.LM114:
 786 030c 8091 0000 		lds r24,data_buffer+6
 787 0310 8093 0000 		sts weigan_data+1,r24
 788               		.stabn 68,0,234,.LM115-Read_TypeB_Card
 789               	.LM115:
 790 0314 8091 0000 		lds r24,data_buffer+5
 791 0318 CBCF      		rjmp .L67
 792               	.LBE7:
 793               	.LBE6:
 794               	/* epilogue: frame size=0 */
 795               	/* epilogue: noreturn */
 796               	/* epilogue end (size=0) */
 797               	/* function Read_TypeB_Card size 132 (132) */
 798               		.size	Read_TypeB_Card, .-Read_TypeB_Card
 799               		.stabs	"i:r(4,2)",64,0,207,25
 800               		.stabn	192,0,0,.LBB6-Read_TypeB_Card
 801               		.stabs	"check_data:r(4,2)",64,0,254,18
 802               		.stabn	192,0,0,.LBB7-Read_TypeB_Card
 803               		.stabn	224,0,0,.LBE7-Read_TypeB_Card
 804               		.stabn	224,0,0,.LBE6-Read_TypeB_Card
 805               	.Lscope8:
 806               		.stabs	"",36,0,0,.Lscope8-Read_TypeB_Card
 807               		.comm temp,1,1
 808               		.comm number,1,1
 809               		.comm sec,1,1
 810               		.comm maxCaptureTime,1,1
 811               		.comm maxCaptureTimeScale,1,1
 812               		.comm maxTGeneral,2,1
 813               		.comm expectedResponseLen,1,1
 814               		.comm raw_data,320,1
 815               		.comm clean_data_cnt,1,1
 816               		.stabs	"temp:G(4,2)",32,0,22,0
 817               		.stabs	"number:G(4,2)",32,0,23,0
 818               		.stabs	"sec:G(4,2)",32,0,24,0
 819               		.stabs	"maxCaptureTime:G(4,2)",32,0,20,0
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s 			page 20


 820               		.stabs	"maxCaptureTimeScale:G(4,2)",32,0,21,0
 821               		.stabs	"maxTGeneral:G(4,4)",32,0,25,0
 822               		.stabs	"expectedResponseLen:G(4,2)",32,0,26,0
 823               		.stabs	"raw_data:G(1,1)=ar(1,2)=r(1,2);0000000000000;0000000177777;;0;319;(4,2)",32,0,65,0
 824               		.stabs	"captured_byte:r(4,2)",64,0,28,6
 825               		.stabs	"captured_valid:r(4,2)",64,0,29,7
 826               		.stabs	"captured_bit_count:r(4,2)",64,0,30,9
 827               		.stabs	"clean_data_cnt:G(4,2)",32,0,19,0
 828               		.text
 829               		.stabs "",100,0,0,Letext
 830               	Letext:
 831               	/* File "level3.c": code  399 = 0x018f ( 353), prologues  20, epilogues  26 */
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s 			page 21


DEFINED SYMBOLS
                            *ABS*:00000000 level3.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s:73     .text:00000000 Compute_Timeouts
                            *COM*:00000001 expectedResponseLen
                            *COM*:00000002 maxTGeneral
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s:137    .text:0000004c Send
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s:467    .text:00000178 ScaleTime
                            *COM*:00000001 maxCaptureTime
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s:342    .text:0000011a Wait
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s:231    .text:000000b0 Capture
                            *COM*:00000001 maxCaptureTimeScale
                            *COM*:00000001 number
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s:403    .text:00000144 ScaleOnce
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s:513    .text:00000196 __vector_4
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s:542    .text:000001ac __vector_2
                            *COM*:00000001 sec
                            *COM*:00000001 temp
                            *COM*:00000140 raw_data
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s:620    .text:00000216 Read_TypeB_Card
                            *COM*:00000001 clean_data_cnt
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccWGbaaa.s:830    .text:0000031a Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__mulsi3
Prepare_SOF
Prepare_EOF
ClearCaptureBuffers
SendForward
cmd_message
Prepare_Data
bufferClean
ExtractTypeBData
type_b_setting
weigan_data
data_buffer

⌨️ 快捷键说明

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