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

📄 level4.lst

📁 此程序为利用mage8 AVR 和EM4094实现读取TYPE A类型卡的C程序、读卡稳定、这个项目我们做了好久、非常不错的程序、很适合做这方面产品的朋友们参考
💻 LST
📖 第 1 页 / 共 5 页
字号:
 287:level4.c      **** 	  	  Send_Weigan1();
 880               		.stabn 68,0,287,.LM118-Send_Weigan36
 881               	.LM118:
 882 0376 73D0      		rcall Send_Weigan1
 883 0378 06C0      		rjmp .L91
 884               	.L111:
 288:level4.c      **** 	  else
 289:level4.c      **** 	  	  Send_Weigan0();   
 885               		.stabn 68,0,289,.LM119-Send_Weigan36
 886               	.LM119:
 887 037a 7CD0      		rcall Send_Weigan0
 888 037c 04C0      		rjmp .L91
 889               	.L108:
 890               		.stabn 68,0,282,.LM120-Send_Weigan36
 891               	.LM120:
 892 037e 7AD0      		rcall Send_Weigan0
 893 0380 F3CF      		rjmp .L106
 894               	.L102:
 895               		.stabn 68,0,275,.LM121-Send_Weigan36
 896               	.LM121:
 897 0382 78D0      		rcall Send_Weigan0
 898 0384 D7CF      		rjmp .L103
 290:level4.c      **** }
 899               		.stabn 68,0,290,.LM122-Send_Weigan36
 900               	.LM122:
 901               	.L91:
 902               	.LBE5:
 903               	/* epilogue: frame size=0 */
 904 0386 CF91      		pop r28
 905 0388 1F91      		pop r17
 906 038a 0F91      		pop r16
 907 038c FF90      		pop r15
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccVbaaa.s 			page 22


 908 038e EF90      		pop r14
 909 0390 DF90      		pop r13
 910 0392 0895      		ret
 911               	/* epilogue end (size=7) */
 912               	/* function Send_Weigan36 size 125 (112) */
 913               		.size	Send_Weigan36, .-Send_Weigan36
 914               		.stabs	"i:r(4,2)",64,0,249,28
 915               		.stabs	"weigan36_odd_data:r(4,2)",64,0,249,15
 916               		.stabs	"parity_bit:r(4,2)",64,0,249,13
 917               		.stabs	"bit_cnt:r(4,2)",64,0,249,18
 918               		.stabn	192,0,0,.LBB5-Send_Weigan36
 919               		.stabn	224,0,0,.LBE5-Send_Weigan36
 920               	.Lscope4:
 921               		.stabs	"",36,0,0,.Lscope4-Send_Weigan36
 922               		.stabs	"Send_Weigan44:F(0,20)",36,0,299,Send_Weigan44
 923               		.stabs	"data:P(1,1)",64,0,298,16
 924               	.global	Send_Weigan44
 925               		.type	Send_Weigan44, @function
 926               	Send_Weigan44:
 291:level4.c      **** 
 292:level4.c      **** // ********************************************************************************************
 293:level4.c      **** // Description : Send weigan44 model and encode according to weigan44 protocol.
 294:level4.c      **** // Return value: None.   
 295:level4.c      **** // parameter   : * data -- the point of the data to be encoded.
 296:level4.c      **** // ********************************************************************************************
 297:level4.c      **** 
 298:level4.c      **** void Send_Weigan44( uint8_t * data )
 299:level4.c      **** {
 927               		.stabn 68,0,299,.LM123-Send_Weigan44
 928               	.LM123:
 929               	/* prologue: frame size=0 */
 930 0394 DF92      		push r13
 931 0396 EF92      		push r14
 932 0398 FF92      		push r15
 933 039a 0F93      		push r16
 934 039c 1F93      		push r17
 935 039e CF93      		push r28
 936               	/* prologue end (size=6) */
 937 03a0 8C01      		movw r16,r24
 300:level4.c      **** 	  uint8_t i , bit_cnt , weigan44_low_byte = 0;
 938               		.stabn 68,0,300,.LM124-Send_Weigan44
 939               	.LM124:
 940               	.LBB6:
 941 03a2 C0E0      		ldi r28,lo8(0)
 301:level4.c      **** 	  for ( i = 0 ; i < 40 ; i += 4 )
 942               		.stabn 68,0,301,.LM125-Send_Weigan44
 943               	.LM125:
 944 03a4 DC2E      		mov r13,r28
 945 03a6 44E0      		ldi r20,lo8(4)
 946 03a8 50E0      		ldi r21,hi8(4)
 947               	.L124:
 302:level4.c      **** 	  {
 303:level4.c      **** 	  	  bit_cnt = i % 8;
 948               		.stabn 68,0,303,.LM126-Send_Weigan44
 949               	.LM126:
 950 03aa 2C2F      		mov r18,r28
 951 03ac 2770      		andi r18,lo8(7)
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccVbaaa.s 			page 23


 304:level4.c      **** 	  	  weigan44_low_byte ^= ( data[ i / 8 ] >> ( 4 - bit_cnt ) ) & 0x0F ;
 952               		.stabn 68,0,304,.LM127-Send_Weigan44
 953               	.LM127:
 954 03ae 8C2F      		mov r24,r28
 955 03b0 8695      		lsr r24
 956 03b2 8695      		lsr r24
 957 03b4 8695      		lsr r24
 958 03b6 F801      		movw r30,r16
 959 03b8 E80F      		add r30,r24
 960 03ba F11D      		adc r31,__zero_reg__
 961 03bc 8081      		ld r24,Z
 962 03be 9927      		clr r25
 963 03c0 BA01      		movw r22,r20
 964 03c2 621B      		sub r22,r18
 965 03c4 7109      		sbc r23,__zero_reg__
 966 03c6 02C0      		rjmp 2f
 967 03c8 9595      	1:	asr r25
 968 03ca 8795      		ror r24
 969 03cc 6A95      	2:	dec r22
 970 03ce E2F7      		brpl 1b
 971 03d0 8F70      		andi r24,lo8(15)
 972 03d2 D826      		eor r13,r24
 973               		.stabn 68,0,301,.LM128-Send_Weigan44
 974               	.LM128:
 975 03d4 CC5F      		subi r28,lo8(-(4))
 976 03d6 C832      		cpi r28,lo8(40)
 977 03d8 40F3      		brlo .L124
 305:level4.c      **** 	  }
 306:level4.c      **** 	  wdt_reset( );
 978               		.stabn 68,0,306,.LM129-Send_Weigan44
 979               	.LM129:
 980               	/* #APP */
 981 03da A895      		wdr
 307:level4.c      **** #ifdef WDT
 308:level4.c      ****     WatchDog_Feed( );
 982               		.stabn 68,0,308,.LM130-Send_Weigan44
 983               	.LM130:
 984               	/* #NOAPP */
 985 03dc 00D0      		rcall WatchDog_Feed
 309:level4.c      **** #endif  
 310:level4.c      **** 	  for( i = 0 ; i < 40 ; i++ )         //Send CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC;   
 986               		.stabn 68,0,310,.LM131-Send_Weigan44
 987               	.LM131:
 988 03de C0E0      		ldi r28,lo8(0)
 989 03e0 77E0      		ldi r23,lo8(7)
 990 03e2 E72E      		mov r14,r23
 991 03e4 F12C      		mov r15,__zero_reg__
 992               	.L131:
 311:level4.c      **** 	  {
 312:level4.c      **** 	      bit_cnt = i % 8;
 993               		.stabn 68,0,312,.LM132-Send_Weigan44
 994               	.LM132:
 995 03e6 2C2F      		mov r18,r28
 996 03e8 2770      		andi r18,lo8(7)
 313:level4.c      **** 	      if ( ( data[ i / 8 ] >> ( 7 - bit_cnt ) ) & 0x01 )
 997               		.stabn 68,0,313,.LM133-Send_Weigan44
 998               	.LM133:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccVbaaa.s 			page 24


 999 03ea 8C2F      		mov r24,r28
 1000 03ec 8695      		lsr r24
 1001 03ee 8695      		lsr r24
 1002 03f0 8695      		lsr r24
 1003 03f2 F801      		movw r30,r16
 1004 03f4 E80F      		add r30,r24
 1005 03f6 F11D      		adc r31,__zero_reg__
 1006 03f8 8081      		ld r24,Z
 1007 03fa 9927      		clr r25
 1008 03fc A701      		movw r20,r14
 1009 03fe 421B      		sub r20,r18
 1010 0400 5109      		sbc r21,__zero_reg__
 1011 0402 02C0      		rjmp 2f
 1012 0404 9595      	1:	asr r25
 1013 0406 8795      		ror r24
 1014 0408 4A95      	2:	dec r20
 1015 040a E2F7      		brpl 1b
 1016 040c 80FF      		sbrs r24,0
 1017 040e 1BC0      		rjmp .L129
 314:level4.c      **** 	      	  Send_Weigan1();
 1018               		.stabn 68,0,314,.LM134-Send_Weigan44
 1019               	.LM134:
 1020 0410 26D0      		rcall Send_Weigan1
 1021               		.stabn 68,0,310,.LM135-Send_Weigan44
 1022               	.LM135:
 1023               	.L127:
 1024 0412 CF5F      		subi r28,lo8(-(1))
 1025 0414 C832      		cpi r28,lo8(40)
 1026 0416 38F3      		brlo .L131
 315:level4.c      **** 	      else
 316:level4.c      **** 	      	  Send_Weigan0(); 	
 317:level4.c      **** 	  }
 318:level4.c      **** 	  for( i = 4 ; i < 8 ; i++ )          //Send XXXX ;
 1027               		.stabn 68,0,318,.LM136-Send_Weigan44
 1028               	.LM136:
 1029 0418 C4E0      		ldi r28,lo8(4)
 1030 041a 0D2D      		mov r16,r13
 1031 041c 1127      		clr r17
 1032 041e 67E0      		ldi r22,lo8(7)
 1033 0420 E62E      		mov r14,r22
 1034 0422 F12C      		mov r15,__zero_reg__
 1035               	.L138:
 319:level4.c      **** 	  {
 320:level4.c      **** 	      bit_cnt = i % 8;
 1036               		.stabn 68,0,320,.LM137-Send_Weigan44
 1037               	.LM137:
 1038 0424 2C2F      		mov r18,r28
 1039 0426 2770      		andi r18,lo8(7)
 321:level4.c      **** 	      if( ( weigan44_low_byte >> ( 7 - bit_cnt ) ) & 0x01 )    
 1040               		.stabn 68,0,321,.LM138-Send_Weigan44
 1041               	.LM138:
 1042 0428 C701      		movw r24,r14
 1043 042a 821B      		sub r24,r18
 1044 042c 9109      		sbc r25,__zero_reg__
 1045 042e B801      		movw r22,r16
 1046 0430 02C0      		rjmp 2f
 1047 0432 7595      	1:	asr r23
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccVbaaa.s 			page 25


 1048 0434 6795      		ror r22
 1049 0436 8A95      	2:	dec r24
 1050 0438 E2F7      		brpl 1b
 1051 043a 60FF      		sbrs r22,0
 1052 043c 02C0      		rjmp .L136
 322:level4.c      **** 	      	  Send_Weigan1();
 1053               		.stabn 68,0,322,.LM139-Send_Weigan44
 1054               	.LM139:
 1055 043e 0FD0      		rcall Send_Weigan1
 1056 0440 04C0      		rjmp .L134
 1057               	.L136:
 323:level4.c      **** 	      else
 324:level4.c      **** 	      	  Send_Weigan0();	
 1058               		.stabn 68,0,324,.LM140-Send_Weigan44
 1059               	.LM140:
 1060 0442 18D0      		rcall Send_Weigan0
 1061 0444 02C0      		rjmp .L134
 1062               	.L129:
 1063               		.stabn 68,0,316,.LM141-Send_Weigan44
 1064               	.LM141:
 1065 0446 16D0      		rcall Send_Weigan0
 1066 0448 E4CF      		rjmp .L127
 1067               		.stabn 68,0,318,.LM142-Send_Weigan44
 1068               	.LM142:
 1069               	.L134:
 1070 044a CF5F      		subi r28,lo8(-(1))
 1071 044c C830      		cpi r28,lo8(8)
 1072 044e 50F3      		brlo .L138
 325:level4.c      **** 	  }
 326:level4.c      **** }
 1073               		.stabn 68,0,326,.LM143-Send_Weigan44
 1074               	.LM143:
 1075               	.LBE6:
 1076               	/* epilogue: frame size=0 */
 1077 0450 CF91      		pop r28
 1078 0452 1F91      		pop r17
 1079 0454 0F91      		pop r16
 1080 0456 FF90      		pop r15
 1081 0458 EF90      		pop r14
 1082 045a DF90      		pop r13
 1083 045c 0895      		ret
 1084               	/* epilogue end (size=7) */
 1085               	/* function Send_Weigan44 size 105 (92) */
 1086               		.size	Send_Weigan44, .-Send_Weigan44
 1087               		.stabs	"i:r(4,2)",64,0,300,28
 1088               		.stabs	"bit_cnt:r(4,2)",64,0,300,18
 1089               		.stabs	"weigan44_low_byte:r(4,2)",64,0,300,13
 1090               		.stabn	192,0,0,.LBB6-Send_Weigan44
 1091               		.stabn	224,0,0,.LBE6-Send_Weigan44
 1092               	.Lscope5:
 1093               		.stabs	"",36,0,0,.Lscope5-Send_Weigan44
 1094               		.stabs	"Send_Weigan1:F(0,20)",36,0,332,Send_Weigan1
 1095               	.global	Send_Weigan1
 1096               		.type	Send_Weigan1, @function
 1097               	Send_Weigan1:
 327:level4.c      **** 
 328:level4.c      **** 
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccVbaaa.s 			page 26


 329:level4.c      **** 
 330:level4.c      **** 
 331:level4.c      **** void Send_Weigan1( void )
 332:level4.c      **** {
 1098               		.stabn 68,0,332,.LM144-Send_Weigan1
 1099               	.LM144:
 1100               	/* prologue: frame size=0 */
 1101               	/* prologue end (size=0) */
 333:level4.c      **** 	  sbi( PORTB , WEIGAN_1 );
 1102               		.stabn 68,0,333,.LM145-Send_Weigan1
 1103               	.LM145:
 1104 045e C29A      		sbi 56-0x20,2
 334:level4.c      **** 	  Delayus( 100 );
 1105               		.stabn 68,0,334,.LM146-Send_Weigan1
 1106               	.LM146:
 1107 0460 84E6      		ldi r24,lo8(100)
 1108 0462 90E0      		ldi r25,hi8(100)
 1109 0464 00D0      		rcall Delayus
 335:level4.c      **** 	  cbi( PORTB , WEIGAN_1 );
 1110               		.stabn 68,0,335,.LM147-Send_Weigan1
 1111               	.LM147:
 1112 0466 C298      		cbi 56-0x20,2
 336:level4.c      **** 	  Delayus( 1500 );
 1113               		.stabn 68,0,336,.LM148-Send_Weigan1
 1114               	.LM148:
 1115 0468 8CED      		ldi r24,lo8(1500)
 1116 046a 95E0      		ldi r25,hi8(1500)
 1117 046c 00D0      		rcall Delayus
 337:lev

⌨️ 快捷键说明

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