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

📄 level4.lst

📁 此程序为利用mage8 AVR 和EM4094实现读取ISO15693类型卡的C程序、读卡稳定、这个项目我们做了好久、非常不错的程序、很适合做这方面产品的朋友们参考
💻 LST
📖 第 1 页 / 共 5 页
字号:
 154 0046 8091 0000 		lds r24,rx_number
 155 004a 9927      		clr r25
 156 004c 8330      		cpi r24,3
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyKbaaa.s 			page 6


 157 004e 9105      		cpc r25,__zero_reg__
 158 0050 09F1      		breq .L16
 159 0052 8430      		cpi r24,4
 160 0054 9105      		cpc r25,__zero_reg__
 161 0056 4CF4      		brge .L28
 162 0058 8130      		cpi r24,1
 163 005a 9105      		cpc r25,__zero_reg__
 164 005c 99F0      		breq .L9
 165 005e 8230      		cpi r24,2
 166 0060 9105      		cpc r25,__zero_reg__
 167 0062 A4F4      		brge .L12
 168 0064 892B      		or r24,r25
 169 0066 51F0      		breq .L6
 170 0068 2EC0      		rjmp .L26
 171               	.L28:
 172 006a 8530      		cpi r24,5
 173 006c 9105      		cpc r25,__zero_reg__
 174 006e D1F0      		breq .L21
 175 0070 8530      		cpi r24,5
 176 0072 9105      		cpc r25,__zero_reg__
 177 0074 9CF0      		brlt .L19
 178 0076 0697      		sbiw r24,6
 179 0078 F1F0      		breq .L24
 180 007a 25C0      		rjmp .L26
 181               	.L6:
 130:level4.c      ****     {
 131:level4.c      ****         case 0 :
 132:level4.c      ****         	  if ( temp == 0x55 )
 182               		.stabn 68,0,132,.LM17-__vector_11
 183               	.LM17:
 184 007c 2535      		cpi r18,lo8(85)
 185 007e C1F4      		brne .L22
 133:level4.c      ****         	      rx_number = 1 ;
 186               		.stabn 68,0,133,.LM18-__vector_11
 187               	.LM18:
 188 0080 81E0      		ldi r24,lo8(1)
 189 0082 13C0      		rjmp .L29
 190               	.L9:
 134:level4.c      ****         	  else
 135:level4.c      ****         	      rx_number = 0 ;
 136:level4.c      ****             break;
 137:level4.c      ****             
 138:level4.c      ****         case 1 :
 139:level4.c      ****         	  if ( temp == 0xAA )
 191               		.stabn 68,0,139,.LM19-__vector_11
 192               	.LM19:
 193 0084 2A3A      		cpi r18,lo8(-86)
 194 0086 A1F4      		brne .L22
 140:level4.c      ****         	      rx_number = 2 ;
 195               		.stabn 68,0,140,.LM20-__vector_11
 196               	.LM20:
 197 0088 82E0      		ldi r24,lo8(2)
 198 008a 0FC0      		rjmp .L29
 199               	.L12:
 141:level4.c      ****         	  else
 142:level4.c      ****         	      rx_number = 0 ;
 143:level4.c      ****         	  break;	
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyKbaaa.s 			page 7


 144:level4.c      ****         	  
 145:level4.c      ****         case 2 :
 146:level4.c      ****         	  if ( temp == 0x01 )
 200               		.stabn 68,0,146,.LM21-__vector_11
 201               	.LM21:
 202 008c 2130      		cpi r18,lo8(1)
 203 008e 81F4      		brne .L22
 147:level4.c      ****         	      rx_number = 3 ;
 204               		.stabn 68,0,147,.LM22-__vector_11
 205               	.LM22:
 206 0090 83E0      		ldi r24,lo8(3)
 207 0092 0BC0      		rjmp .L29
 208               	.L16:
 148:level4.c      ****         	  else 
 149:level4.c      ****         	      rx_number = 0 ;
 150:level4.c      ****         	  break;	
 151:level4.c      ****         	  
 152:level4.c      ****         case 3 :
 153:level4.c      ****         	  if ( error != 0 )
 154:level4.c      ****         	  	  rx_number = 0 ;
 155:level4.c      ****         	  else
 156:level4.c      ****         	  {
 157:level4.c      ****         	      uart_in_command = temp;
 209               		.stabn 68,0,157,.LM23-__vector_11
 210               	.LM23:
 211 0094 2093 0000 		sts uart_in_command,r18
 158:level4.c      ****         	      //uart_in_buffer[ uart_in_write++ ] = temp;
 159:level4.c      ****         	      rx_number = 4 ;
 212               		.stabn 68,0,159,.LM24-__vector_11
 213               	.LM24:
 214 0098 84E0      		ldi r24,lo8(4)
 215 009a 07C0      		rjmp .L29
 216               	.L19:
 160:level4.c      ****         	  }
 161:level4.c      ****         	  break;	
 162:level4.c      ****         	          	  
 163:level4.c      ****         case 4 :
 164:level4.c      ****         	  if ( error != 0 )
 165:level4.c      ****         	  	  rx_number = 0 ;
 166:level4.c      ****         	  else
 167:level4.c      ****         	  {
 168:level4.c      ****         	      uart_in_param = temp;
 217               		.stabn 68,0,168,.LM25-__vector_11
 218               	.LM25:
 219 009c 2093 0000 		sts uart_in_param,r18
 169:level4.c      ****         	      //uart_in_buffer[ uart_in_write++ ] = temp;
 170:level4.c      ****         	      rx_number = 5 ;
 220               		.stabn 68,0,170,.LM26-__vector_11
 221               	.LM26:
 222 00a0 85E0      		ldi r24,lo8(5)
 223 00a2 03C0      		rjmp .L29
 224               	.L21:
 171:level4.c      ****         	  }
 172:level4.c      ****         	  break;	 
 173:level4.c      ****         	         	  
 174:level4.c      ****         case 5 :
 175:level4.c      ****         	  if ( temp == 0x55 )
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyKbaaa.s 			page 8


 225               		.stabn 68,0,175,.LM27-__vector_11
 226               	.LM27:
 227 00a4 2535      		cpi r18,lo8(85)
 228 00a6 21F4      		brne .L22
 176:level4.c      ****         	      rx_number = 6 ;
 229               		.stabn 68,0,176,.LM28-__vector_11
 230               	.LM28:
 231 00a8 86E0      		ldi r24,lo8(6)
 232               	.L29:
 233 00aa 8093 0000 		sts rx_number,r24
 234 00ae 0DC0      		rjmp .L5
 235               	.L22:
 177:level4.c      ****         	  else
 178:level4.c      ****         	  {
 179:level4.c      ****         	  	  rx_number = 0 ;
 236               		.stabn 68,0,179,.LM29-__vector_11
 237               	.LM29:
 238 00b0 3093 0000 		sts rx_number,r19
 180:level4.c      ****         	  	  //uart_in_write -= 2 ;
 181:level4.c      ****         	  }
 182:level4.c      ****         	  break;	
 239               		.stabn 68,0,182,.LM30-__vector_11
 240               	.LM30:
 241 00b4 0AC0      		rjmp .L5
 242               	.L24:
 183:level4.c      ****         	          	  
 184:level4.c      ****         case 6 :
 185:level4.c      ****         	  rx_number = 0 ;
 243               		.stabn 68,0,185,.LM31-__vector_11
 244               	.LM31:
 245 00b6 3093 0000 		sts rx_number,r19
 186:level4.c      ****         	  if ( temp == 0xAA )
 246               		.stabn 68,0,186,.LM32-__vector_11
 247               	.LM32:
 248 00ba 2A3A      		cpi r18,lo8(-86)
 249 00bc 31F4      		brne .L5
 187:level4.c      ****         	  {
 188:level4.c      ****                 valid_data_flag = 0x55;
 250               		.stabn 68,0,188,.LM33-__vector_11
 251               	.LM33:
 252 00be 85E5      		ldi r24,lo8(85)
 253 00c0 8093 0000 		sts valid_data_flag,r24
 189:level4.c      ****         	  }
 190:level4.c      ****         	  break;
 254               		.stabn 68,0,190,.LM34-__vector_11
 255               	.LM34:
 256 00c4 02C0      		rjmp .L5
 257               	.L26:
 191:level4.c      ****         default :
 192:level4.c      ****         	  rx_number = 0 ;
 258               		.stabn 68,0,192,.LM35-__vector_11
 259               	.LM35:
 260 00c6 1092 0000 		sts rx_number,__zero_reg__
 261               	.L5:
 193:level4.c      ****         	  break;	        	          	  
 194:level4.c      ****     }
 195:level4.c      ****     cbi( PORTC , TEN_485 );
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyKbaaa.s 			page 9


 262               		.stabn 68,0,195,.LM36-__vector_11
 263               	.LM36:
 264 00ca AD98      		cbi 53-0x20,5
 196:level4.c      **** }
 265               		.stabn 68,0,196,.LM37-__vector_11
 266               	.LM37:
 267               	.L2:
 268               	.LBE2:
 269               	/* epilogue: frame size=0 */
 270 00cc 9F91      		pop r25
 271 00ce 8F91      		pop r24
 272 00d0 3F91      		pop r19
 273 00d2 2F91      		pop r18
 274 00d4 0F90      		pop __tmp_reg__
 275 00d6 0FBE      		out __SREG__,__tmp_reg__
 276 00d8 0F90      		pop __tmp_reg__
 277 00da 1F90      		pop __zero_reg__
 278 00dc 1895      		reti
 279               	/* epilogue end (size=9) */
 280               	/* function __vector_11 size 99 (81) */
 281               		.size	__vector_11, .-__vector_11
 282               		.stabs	"temp:r(4,2)",64,0,117,18
 283               		.stabn	192,0,0,.LBB2-__vector_11
 284               		.stabn	224,0,0,.LBE2-__vector_11
 285               	.Lscope1:
 286               		.stabs	"",36,0,0,.Lscope1-__vector_11
 287               		.stabs	"Copy:F(0,20)",36,0,202,Copy
 288               		.stabs	"dst:P(1,1)=*(4,2)",64,0,201,26
 289               		.stabs	"src:P(1,1)",64,0,201,30
 290               		.stabs	"len:P(4,2)",64,0,201,20
 291               	.global	Copy
 292               		.type	Copy, @function
 293               	Copy:
 197:level4.c      **** 
 198:level4.c      **** // ==================================================================
 199:level4.c      **** // copy
 200:level4.c      **** 
 201:level4.c      **** void Copy( uint8_t *dst , uint8_t *src , uint8_t len ) 
 202:level4.c      **** {
 294               		.stabn 68,0,202,.LM38-Copy
 295               	.LM38:
 296               	/* prologue: frame size=0 */
 297               	/* prologue end (size=0) */
 298 00de DC01      		movw r26,r24
 299 00e0 FB01      		movw r30,r22
 203:level4.c      **** 
 204:level4.c      ****   while (len-- > 0)
 300               		.stabn 68,0,204,.LM39-Copy
 301               	.LM39:
 302 00e2 842F      		mov r24,r20
 303 00e4 4150      		subi r20,lo8(-(-1))
 304 00e6 8823      		tst r24
 305 00e8 31F0      		breq .L36
 306               	.L34:
 205:level4.c      ****     *dst++ = *src++;
 307               		.stabn 68,0,205,.LM40-Copy
 308               	.LM40:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyKbaaa.s 			page 10


 309 00ea 8191      		ld r24,Z+
 310 00ec 8D93      		st X+,r24
 311 00ee 842F      		mov r24,r20
 312 00f0 4150      		subi r20,lo8(-(-1))
 313 00f2 8823      		tst r24
 314 00f4 D1F7      		brne .L34
 315               	.L36:
 206:level4.c      **** }
 316               		.stabn 68,0,206,.LM41-Copy
 317               	.LM41:
 318 00f6 0895      		ret
 319               	/* epilogue: frame size=0 */
 320               	/* epilogue: noreturn */
 321               	/* epilogue end (size=0) */
 322               	/* function Copy size 13 (13) */
 323               		.size	Copy, .-Copy
 324               	.Lscope2:
 325               		.stabs	"",36,0,0,.Lscope2-Copy
 326               		.stabs	"SendByte:F(0,20)",36,0,214,SendByte
 327               		.stabs	"byte:P(4,2)",64,0,213,24
 328               	.global	SendByte
 329               		.type	SendByte, @function
 330               	SendByte:
 207:level4.c      **** 
 208:level4.c      **** 
 209:level4.c      **** 
 210:level4.c      **** //==================================================================
 211:level4.c      **** //Send one raw byte
 212:level4.c      **** // 
 213:level4.c      **** void SendByte( uint8_t byte ) 
 214:level4.c      **** {
 331               		.stabn 68,0,214,.LM42-SendByte
 332               	.LM42:
 333               	/* prologue: frame size=0 */
 334               	/* prologue end (size=0) */
 215:level4.c      **** 	  sbi( PORTC , TEN_485 );
 335               		.stabn 68,0,215,.LM43-SendByte
 336               	.LM43:
 337 00f8 AD9A      		sbi 53-0x20,5
 216:level4.c      **** 	  UDR = byte;
 338               		.stabn 68,0,216,.LM44-SendByte
 339               	.LM44:
 340 00fa 8CB9      		out 44-0x20,r24
 217:level4.c      ****     while ( !( UCSRA & ( 1 << UDRE ) ) )
 341               		.stabn 68,0,217,.LM45-SendByte
 342               	.LM45:
 343               	.L38:
 344 00fc 5D9B      		sbis 43-0x20,5
 345 00fe FECF      		rjmp .L38
 218:level4.c      ****     { }
 219:level4.c      ****     Delayus( 1000 );

⌨️ 快捷键说明

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