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

📄 level3.lst

📁 此程序为利用mage8 AVR 和EM4094实现读取ISO15693类型卡的C程序、读卡稳定、这个项目我们做了好久、非常不错的程序、很适合做这方面产品的朋友们参考
💻 LST
📖 第 1 页 / 共 5 页
字号:
 176               	.LM24:
 177 0076 9093 0000 		sts message_flags,r25
 105:level3.c      ****         forward_ptr = data_buffer;            // initialize fwd pointer
 178               		.stabn 68,0,105,.LM25-main_receiver
 179               	.LM25:
 180 007a 80E0      		ldi r24,lo8(data_buffer)
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s 			page 6


 181 007c 90E0      		ldi r25,hi8(data_buffer)
 182 007e 9093 0000 		sts (forward_ptr)+1,r25
 183 0082 8093 0000 		sts forward_ptr,r24
 106:level3.c      ****         fwd_bit_count = 0;
 107:level3.c      ****         if ( InventoryStep_version4( ) )
 184               		.stabn 68,0,107,.LM26-main_receiver
 185               	.LM26:
 186 0086 FAD0      		rcall InventoryStep_version4
 187 0088 8823      		tst r24
 188 008a 49F2      		breq .L23
 108:level3.c      ****         {
 109:level3.c      ****             Send_Card_ID( weigan_format , weigan_data ); 
 189               		.stabn 68,0,109,.LM27-main_receiver
 190               	.LM27:
 191 008c 60E0      		ldi r22,lo8(weigan_data)
 192 008e 70E0      		ldi r23,hi8(weigan_data)
 193 0090 8091 0000 		lds r24,weigan_format
 194 0094 00D0      		rcall Send_Card_ID
 110:level3.c      **** 
 111:level3.c      ****           	Set_GREEN_LED( );
 195               		.stabn 68,0,111,.LM28-main_receiver
 196               	.LM28:
 197 0096 9698      		cbi 50-0x20,6
 112:level3.c      ****             Delayms( 150 );
 198               		.stabn 68,0,112,.LM29-main_receiver
 199               	.LM29:
 200 0098 86E9      		ldi r24,lo8(150)
 201 009a 90E0      		ldi r25,hi8(150)
 202 009c 00D0      		rcall Delayms
 113:level3.c      ****             Set_RED_LED( );
 203               		.stabn 68,0,113,.LM30-main_receiver
 204               	.LM30:
 205 009e 969A      		sbi 50-0x20,6
 114:level3.c      ****             
 115:level3.c      ****             if ( alarm_enable == 0x01 )
 206               		.stabn 68,0,115,.LM31-main_receiver
 207               	.LM31:
 208 00a0 8091 0000 		lds r24,alarm_enable
 209 00a4 8C17      		cp r24,r28
 210 00a6 51F5      		brne .L8
 116:level3.c      ****             {
 117:level3.c      **** 	              if ( PINB & ( 1 << CYE ) )
 211               		.stabn 68,0,117,.LM32-main_receiver
 212               	.LM32:
 213 00a8 B59B      		sbis 54-0x20,5
 214 00aa 09C0      		rjmp .L9
 118:level3.c      **** 	              {	  	         
 119:level3.c      **** 	  	              beep_times = 2;
 215               		.stabn 68,0,119,.LM33-main_receiver
 216               	.LM33:
 217 00ac 82E0      		ldi r24,lo8(2)
 218 00ae 8093 0000 		sts beep_times,r24
 120:level3.c      **** 	  	              unauth_card_times++;
 219               		.stabn 68,0,120,.LM34-main_receiver
 220               	.LM34:
 221 00b2 8091 0000 		lds r24,unauth_card_times
 222 00b6 8C0F      		add r24,r28
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s 			page 7


 223 00b8 8093 0000 		sts unauth_card_times,r24
 224 00bc 04C0      		rjmp .L10
 225               	.L9:
 121:level3.c      **** 	              }
 122:level3.c      **** 	              else
 123:level3.c      **** 	              {
 124:level3.c      **** 	  	               beep_times = 1;
 226               		.stabn 68,0,124,.LM35-main_receiver
 227               	.LM35:
 228 00be C093 0000 		sts beep_times,r28
 125:level3.c      **** 	  	               unauth_card_times = 0;
 229               		.stabn 68,0,125,.LM36-main_receiver
 230               	.LM36:
 231 00c2 1092 0000 		sts unauth_card_times,__zero_reg__
 232               	.L10:
 126:level3.c      **** 	              }             
 127:level3.c      ****                 Beep( beep_times );
 233               		.stabn 68,0,127,.LM37-main_receiver
 234               	.LM37:
 235 00c6 8091 0000 		lds r24,beep_times
 236 00ca 00D0      		rcall Beep
 128:level3.c      ****                 if ( unauth_card_times > 3 )
 237               		.stabn 68,0,128,.LM38-main_receiver
 238               	.LM38:
 239 00cc 8091 0000 		lds r24,unauth_card_times
 240 00d0 8430      		cpi r24,lo8(4)
 241 00d2 08F4      		brsh .+2
 242 00d4 A4CF      		rjmp .L23
 129:level3.c      ****                 {
 130:level3.c      ****             	      unauth_card_times = 0x00;
 243               		.stabn 68,0,130,.LM39-main_receiver
 244               	.LM39:
 245               	.LBB3:
 246 00d6 1092 0000 		sts unauth_card_times,__zero_reg__
 131:level3.c      ****             	      uint8_t i;
 132:level3.c      ****             	      for ( i = 0 ; i < alarm_time ; i++ )
 247               		.stabn 68,0,132,.LM40-main_receiver
 248               	.LM40:
 249 00da C0E0      		ldi r28,lo8(0)
 250 00dc 8091 0000 		lds r24,alarm_time
 251 00e0 C817      		cp r28,r24
 252 00e2 08F0      		brlo .+2
 253 00e4 9CCF      		rjmp .L23
 254               	.L16:
 133:level3.c      ****             	      {
 134:level3.c      ****             	          cbi( PORTD , BEEP_PIN ); 
 255               		.stabn 68,0,134,.LM41-main_receiver
 256               	.LM41:
 257 00e6 9798      		cbi 50-0x20,7
 135:level3.c      ****             	          Delayms( 600 );
 258               		.stabn 68,0,135,.LM42-main_receiver
 259               	.LM42:
 260 00e8 88E5      		ldi r24,lo8(600)
 261 00ea 92E0      		ldi r25,hi8(600)
 262 00ec 00D0      		rcall Delayms
 136:level3.c      ****             	          sbi( PORTD , BEEP_PIN );            	      
 263               		.stabn 68,0,136,.LM43-main_receiver
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s 			page 8


 264               	.LM43:
 265 00ee 979A      		sbi 50-0x20,7
 266               		.stabn 68,0,132,.LM44-main_receiver
 267               	.LM44:
 268 00f0 CF5F      		subi r28,lo8(-(1))
 269 00f2 8091 0000 		lds r24,alarm_time
 270 00f6 C817      		cp r28,r24
 271 00f8 B0F3      		brlo .L16
 272               	.LBE3:
 273 00fa 91CF      		rjmp .L23
 274               	.L8:
 137:level3.c      ****             	      }
 138:level3.c      ****                 }	  
 139:level3.c      ****             }
 140:level3.c      ****             else
 141:level3.c      ****             {
 142:level3.c      **** 	              if ( PINB & ( 1 << CYE ) )
 275               		.stabn 68,0,142,.LM45-main_receiver
 276               	.LM45:
 277 00fc B59B      		sbis 54-0x20,5
 278 00fe 04C0      		rjmp .L18
 143:level3.c      **** 	              {	  	         
 144:level3.c      **** 	  	              beep_times = 2;
 279               		.stabn 68,0,144,.LM46-main_receiver
 280               	.LM46:
 281 0100 82E0      		ldi r24,lo8(2)
 282 0102 8093 0000 		sts beep_times,r24
 283 0106 02C0      		rjmp .L19
 284               	.L18:
 145:level3.c      **** 	              }
 146:level3.c      **** 	              else
 147:level3.c      **** 	              {
 148:level3.c      **** 	  	              beep_times = 1;
 285               		.stabn 68,0,148,.LM47-main_receiver
 286               	.LM47:
 287 0108 C093 0000 		sts beep_times,r28
 288               	.L19:
 149:level3.c      **** 	              }             
 150:level3.c      ****                 Beep( beep_times );            	
 289               		.stabn 68,0,150,.LM48-main_receiver
 290               	.LM48:
 291 010c 8091 0000 		lds r24,beep_times
 292 0110 00D0      		rcall Beep
 293 0112 85CF      		rjmp .L23
 151:level3.c      ****             }                	
 152:level3.c      ****         }
 153:level3.c      ****     }
 154:level3.c      **** }
 294               		.stabn 68,0,154,.LM49-main_receiver
 295               	.LM49:
 296               	.LBE2:
 297               	/* epilogue: frame size=0 */
 298               	/* epilogue: noreturn */
 299               	/* epilogue end (size=0) */
 300               	/* function main_receiver size 139 (138) */
 301               		.size	main_receiver, .-main_receiver
 302               		.stabs	"i:r(4,2)",64,0,131,28
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s 			page 9


 303               		.stabn	192,0,0,.LBB3-main_receiver
 304               		.stabn	224,0,0,.LBE3-main_receiver
 305               	.Lscope0:
 306               		.stabs	"",36,0,0,.Lscope0-main_receiver
 307               		.stabs	"Compute_Timeouts:F(0,20)",36,0,160,Compute_Timeouts
 308               		.stabs	"flags:P(4,2)",64,0,159,28
 309               	.global	Compute_Timeouts
 310               		.type	Compute_Timeouts, @function
 311               	Compute_Timeouts:
 155:level3.c      **** 
 156:level3.c      **** //--------------------------------------------------------------
 157:level3.c      **** //compute the timeouts according to the flag byte
 158:level3.c      **** //
 159:level3.c      **** void Compute_Timeouts( uint8_t flags ) 
 160:level3.c      **** {
 312               		.stabn 68,0,160,.LM50-Compute_Timeouts
 313               	.LM50:
 314               	/* prologue: frame size=0 */
 315 0114 CF93      		push r28
 316               	/* prologue end (size=1) */
 317 0116 C82F      		mov r28,r24
 161:level3.c      ****     register uint16_t pom;
 162:level3.c      ****     register uint16_t corr;
 163:level3.c      **** 
 164:level3.c      ****     pom = expectedResponseLen * 16;        //512RF/32 = 16 TCNT0 pulses per bit
 318               		.stabn 68,0,164,.LM51-Compute_Timeouts
 319               	.LM51:
 320               	.LBB4:
 321 0118 8091 0000 		lds r24,expectedResponseLen
 322 011c 282F      		mov r18,r24
 323 011e 3327      		clr r19
 324 0120 74E0      		ldi r23,4
 325 0122 220F      	1:	lsl r18
 326 0124 331F      		rol r19
 327 0126 7A95      		dec r23
 328 0128 E1F7      		brne 1b
 165:level3.c      ****     pom += 128;                            //reserve
 329               		.stabn 68,0,165,.LM52-Compute_Timeouts
 330               	.LM52:
 331 012a 2058      		subi r18,lo8(-(128))
 332 012c 3F4F      		sbci r19,hi8(-(128))
 166:level3.c      ****     corr = expectedResponseLen / 2 + 2;    //correction for dual carrier
 333               		.stabn 68,0,166,.LM53-Compute_Timeouts
 334               	.LM53:
 335 012e 8695      		lsr r24
 336 0130 9927      		clr r25
 337 0132 0296      		adiw r24,2
 167:level3.c      **** 
 168:level3.c      ****     if ( ( flags & 2 ) == 0 )
 338               		.stabn 68,0,168,.LM54-Compute_Timeouts
 339               	.LM54:
 340 0134 4C2F      		mov r20,r28
 341 0136 5527      		clr r21
 342 0138 41FD      		sbrc r20,1
 343 013a 05C0      		rjmp .L25
 169:level3.c      ****         pom *= 4;
 344               		.stabn 68,0,169,.LM55-Compute_Timeouts
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s 			page 10


 345               	.LM55:
 346 013c 220F      		lsl r18
 347 013e 331F      		rol r19
 348 0140 220F      		lsl r18
 349 0142 331F      		rol r19
 350 0144 04C0      		rjmp .L26
 351               	.L25:
 170:level3.c      ****     else
 171:level3.c      ****         corr >>= 2;
 352               		.stabn 68,0,171,.LM56-Compute_Timeouts
 353               	.LM56:
 354 0146 9695      		lsr r25
 355 0148 8795      		ror r24
 356 014a 9695      		lsr r25
 357 014c 8795      		ror r24
 358               	.L26:
 172:level3.c      **** 
 173:level3.c      ****     if ( ( flags & 1 ) == 1 )
 359               		.stabn 68,0,173,.LM57-Compute_Timeouts
 360               	.LM57:
 361 014e 40FF      		sbrs r20,0
 362 0150 02C0      		rjmp .L27
 174:level3.c      ****         pom -= corr;
 363               		.stabn 68,0,174,.LM58-Compute_Timeouts
 364               	.LM58:
 365 0152 281B      		sub r18,r24
 366 0154 390B      		sbc r19,r25
 367               	.L27:
 175:level3.c      **** 
 176:level3.c      ****     pom = ( 19 * ( uint32_t )pom ) / 16 + 1;
 368               		.stabn 68,0,176,.LM59-Compute_Timeouts
 369               	.LM59:
 370 0156 C901      		movw r24,r18
 371 0158 AA27      		clr r26
 372 015a BB27      		clr r27
 373 015c BC01      		movw r22,r24
 374 015e CD01      		movw r24,r26
 375 0160 23E1      		ldi r18,lo8(19)
 376 0162 30E0      		ldi r19,hi8(19)
 377 0164 40E0      		ldi r20,hlo8(19)
 378 0166 50E0      		ldi r21,hhi8(19)
 379 0168 00D0      		rcall __mulsi3
 380 016a DC01      		movw r26,r24
 381 016c CB01      		movw r24,r22
 382 016e 24E0      		ldi r18,4

⌨️ 快捷键说明

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