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

📄 main.lst

📁 基于AVR单片机 Atmel Mega128的AD采集程序。
💻 LST
📖 第 1 页 / 共 3 页
字号:
  92:main.c        **** 	//保存数据
  93:main.c        **** 		switch(global_channel_flag)
 345               	.LM30:
 346 017e 8091 0000 		lds r24,global_channel_flag
 347 0182 282F      		mov r18,r24
 348 0184 3327      		clr r19
 349 0186 2E83      		std Y+6,r18
 350 0188 3F83      		std Y+7,r19
 351 018a 8E81      		ldd r24,Y+6
 352 018c 9F81      		ldd r25,Y+7
 353 018e 8230      		cpi r24,2
 354 0190 9105      		cpc r25,__zero_reg__
 355 0192 99F1      		breq .L31
 356 0194 2E81      		ldd r18,Y+6
 357 0196 3F81      		ldd r19,Y+7
 358 0198 2330      		cpi r18,3
 359 019a 3105      		cpc r19,__zero_reg__
 360 019c 34F4      		brge .L35
 361 019e 8E81      		ldd r24,Y+6
 362 01a0 9F81      		ldd r25,Y+7
 363 01a2 8130      		cpi r24,1
 364 01a4 9105      		cpc r25,__zero_reg__
 365 01a6 41F0      		breq .L30
 366 01a8 69C0      		rjmp .L29
 367               	.L35:
 368 01aa 2E81      		ldd r18,Y+6
 369 01ac 3F81      		ldd r19,Y+7
 370 01ae 2330      		cpi r18,3
 371 01b0 3105      		cpc r19,__zero_reg__
 372 01b2 09F4      		brne .+2
 373 01b4 43C0      		rjmp .L32
 374 01b6 62C0      		rjmp .L29
 375               	.L30:
  94:main.c        **** 		{
  95:main.c        **** 			case 1://保存合闸线圈电流
  96:main.c        **** 				SRAM_1M_8_WRITE(global_close_counter,temp1);//高位字节
 377               	.LM31:
 378 01b8 8091 0000 		lds r24,global_close_counter
 379 01bc 9091 0000 		lds r25,(global_close_counter)+1
 380 01c0 AA27      		clr r26
 381 01c2 BB27      		clr r27
 382 01c4 4B81      		ldd r20,Y+3
 383 01c6 BC01      		movw r22,r24
 384 01c8 CD01      		movw r24,r26
 385 01ca 0E94 0000 		call SRAM_1M_8_WRITE
  97:main.c        **** 				SRAM_1M_8_WRITE(global_close_counter+1,temp2);//低位字节
 387               	.LM32:
 388 01ce 8091 0000 		lds r24,global_close_counter
 389 01d2 9091 0000 		lds r25,(global_close_counter)+1
 390 01d6 0196      		adiw r24,1
 391 01d8 AA27      		clr r26
 392 01da BB27      		clr r27
 393 01dc 4C81      		ldd r20,Y+4
 394 01de BC01      		movw r22,r24
 395 01e0 CD01      		movw r24,r26
 396 01e2 0E94 0000 		call SRAM_1M_8_WRITE
  98:main.c        **** 				global_close_counter+=2;
 398               	.LM33:
 399 01e6 8091 0000 		lds r24,global_close_counter
 400 01ea 9091 0000 		lds r25,(global_close_counter)+1
 401 01ee 0296      		adiw r24,2
 402 01f0 9093 0000 		sts (global_close_counter)+1,r25
 403 01f4 8093 0000 		sts global_close_counter,r24
  99:main.c        **** 				break;
 405               	.LM34:
 406 01f8 41C0      		rjmp .L29
 407               	.L31:
 100:main.c        **** 			case 2://保存分闸线圈电流
 101:main.c        **** 				SRAM_1M_8_WRITE(global_trip_counter,temp1);//高位字节
 409               	.LM35:
 410 01fa 8091 0000 		lds r24,global_trip_counter
 411 01fe 9091 0000 		lds r25,(global_trip_counter)+1
 412 0202 AA27      		clr r26
 413 0204 BB27      		clr r27
 414 0206 4B81      		ldd r20,Y+3
 415 0208 BC01      		movw r22,r24
 416 020a CD01      		movw r24,r26
 417 020c 0E94 0000 		call SRAM_1M_8_WRITE
 102:main.c        **** 				SRAM_1M_8_WRITE(global_trip_counter+1,temp2);//低位字节
 419               	.LM36:
 420 0210 8091 0000 		lds r24,global_trip_counter
 421 0214 9091 0000 		lds r25,(global_trip_counter)+1
 422 0218 0196      		adiw r24,1
 423 021a AA27      		clr r26
 424 021c BB27      		clr r27
 425 021e 4C81      		ldd r20,Y+4
 426 0220 BC01      		movw r22,r24
 427 0222 CD01      		movw r24,r26
 428 0224 0E94 0000 		call SRAM_1M_8_WRITE
 103:main.c        **** 				global_trip_counter+=2;
 430               	.LM37:
 431 0228 8091 0000 		lds r24,global_trip_counter
 432 022c 9091 0000 		lds r25,(global_trip_counter)+1
 433 0230 0296      		adiw r24,2
 434 0232 9093 0000 		sts (global_trip_counter)+1,r25
 435 0236 8093 0000 		sts global_trip_counter,r24
 104:main.c        **** 				break;
 437               	.LM38:
 438 023a 20C0      		rjmp .L29
 439               	.L32:
 105:main.c        **** 			case 3://保存操作电压
 106:main.c        **** 			//	SRAM_1M_8_WRITE(global_motor_counter,temp1);//高位字节
 107:main.c        **** 			//	SRAM_1M_8_WRITE(global_motor_counter+1,temp2);//低位字节
 108:main.c        **** 				SRAM_1M_8_WRITE(global_voltage_counter,temp1);//高位字节
 441               	.LM39:
 442 023c 8091 0000 		lds r24,global_voltage_counter
 443 0240 9091 0000 		lds r25,(global_voltage_counter)+1
 444 0244 AA27      		clr r26
 445 0246 BB27      		clr r27
 446 0248 4B81      		ldd r20,Y+3
 447 024a BC01      		movw r22,r24
 448 024c CD01      		movw r24,r26
 449 024e 0E94 0000 		call SRAM_1M_8_WRITE
 109:main.c        **** 				SRAM_1M_8_WRITE(global_voltage_counter+1,temp2);//低位字节
 451               	.LM40:
 452 0252 8091 0000 		lds r24,global_voltage_counter
 453 0256 9091 0000 		lds r25,(global_voltage_counter)+1
 454 025a 0196      		adiw r24,1
 455 025c AA27      		clr r26
 456 025e BB27      		clr r27
 457 0260 4C81      		ldd r20,Y+4
 458 0262 BC01      		movw r22,r24
 459 0264 CD01      		movw r24,r26
 460 0266 0E94 0000 		call SRAM_1M_8_WRITE
 110:main.c        **** 				global_voltage_counter+=2;
 462               	.LM41:
 463 026a 8091 0000 		lds r24,global_voltage_counter
 464 026e 9091 0000 		lds r25,(global_voltage_counter)+1
 465 0272 0296      		adiw r24,2
 466 0274 9093 0000 		sts (global_voltage_counter)+1,r25
 467 0278 8093 0000 		sts global_voltage_counter,r24
 468               	.L29:
 111:main.c        **** 			//	global_motor_counter+=2;
 112:main.c        **** 				break;
 113:main.c        **** 		//	case 4://保存操作电压
 114:main.c        **** 			//	SRAM_1M_8_WRITE(global_voltage_counter,temp1);//高位字节
 115:main.c        **** 			//	SRAM_1M_8_WRITE(global_voltage_counter+1,temp2);//低位字节
 116:main.c        **** 			//	global_voltage_counter+=2;
 117:main.c        **** 			//	break;
 118:main.c        **** 			default:
 119:main.c        **** 				break;
 120:main.c        **** 		}
 121:main.c        **** 	//计数器自加
 122:main.c        **** 		global_ad_counter++;
 470               	.LM42:
 471 027c 8091 0000 		lds r24,global_ad_counter
 472 0280 9091 0000 		lds r25,(global_ad_counter)+1
 473 0284 0196      		adiw r24,1
 474 0286 9093 0000 		sts (global_ad_counter)+1,r25
 475 028a 8093 0000 		sts global_ad_counter,r24
 476               	.L28:
 123:main.c        **** 	}
 124:main.c        **** //如果是检测动作是否开始的采样
 125:main.c        **** 	if(global_sample_mode_flag==0x00)
 478               	.LM43:
 479 028e 8091 0000 		lds r24,global_sample_mode_flag
 480 0292 8823      		tst r24
 481 0294 09F0      		breq .+2
 482 0296 7CC0      		rjmp .L36
 126:main.c        **** 	{
 127:main.c        **** 	//采样轮转赋值
 128:main.c        **** 		//合闸线圈采样
 129:main.c        **** 		if(global_ad_counter%2==0)
 484               	.LM44:
 485 0298 8091 0000 		lds r24,global_ad_counter
 486 029c 9091 0000 		lds r25,(global_ad_counter)+1
 487 02a0 8170      		andi r24,lo8(1)
 488 02a2 9070      		andi r25,hi8(1)
 489 02a4 0097      		sbiw r24,0
 490 02a6 B1F4      		brne .L37
 130:main.c        **** 		{
 131:main.c        **** 		//	global_detect_close[0]=int16_temp1;
 132:main.c        **** 			global_detect_close[0]=global_detect_close[1];
 492               	.LM45:
 493 02a8 8091 0000 		lds r24,global_detect_close+2
 494 02ac 9091 0000 		lds r25,(global_detect_close+2)+1
 495 02b0 9093 0000 		sts (global_detect_close)+1,r25
 496 02b4 8093 0000 		sts global_detect_close,r24
 133:main.c        **** 			global_detect_close[1]=global_detect_close[2];
 498               	.LM46:
 499 02b8 8091 0000 		lds r24,global_detect_close+4
 500 02bc 9091 0000 		lds r25,(global_detect_close+4)+1
 501 02c0 9093 0000 		sts (global_detect_close+2)+1,r25
 502 02c4 8093 0000 		sts global_detect_close+2,r24
 134:main.c        **** 			global_detect_close[2]=int16_temp1;
 504               	.LM47:
 505 02c8 8981      		ldd r24,Y+1
 506 02ca 9A81      		ldd r25,Y+2
 507 02cc 9093 0000 		sts (global_detect_close+4)+1,r25
 508 02d0 8093 0000 		sts global_detect_close+4,r24
 509               	.L37:
 135:main.c        **** 	//		global_detect_close[2]=int16_temp1;
 136:main.c        **** 		}
 137:main.c        **** 		//分闸线圈采样
 138:main.c        **** 		if(global_ad_counter%2==1)
 511               	.LM48:
 512 02d4 8091 0000 		lds r24,global_ad_counter
 513 02d8 9091 0000 		lds r25,(global_ad_counter)+1
 514 02dc 8170      		andi r24,lo8(1)
 515 02de 9070      		andi r25,hi8(1)
 516 02e0 8130      		cpi r24,1
 517 02e2 9105      		cpc r25,__zero_reg__
 518 02e4 B1F4      		brne .L38
 139:main.c        **** 		{
 140:main.c        **** 		//	global_detect_trip[0]=int16_temp1;
 141:main.c        **** 			global_detect_trip[0]=global_detect_trip[1];
 520               	.LM49:
 521 02e6 8091 0000 		lds r24,global_detect_trip+2
 522 02ea 9091 0000 		lds r25,(global_detect_trip+2)+1
 523 02ee 9093 0000 		sts (global_detect_trip)+1,r25
 524 02f2 8093 0000 		sts global_detect_trip,r24
 142:main.c        **** 			global_detect_trip[1]=global_detect_trip[2];
 526               	.LM50:
 527 02f6 8091 0000 		lds r24,global_detect_trip+4
 528 02fa 9091 0000 		lds r25,(global_detect_trip+4)+1
 529 02fe 9093 0000 		sts (global_detect_trip+2)+1,r25
 530 0302 8093 0000 		sts global_detect_trip+2,r24
 143:main.c        **** 			global_detect_trip[2]=int16_temp1;
 532               	.LM51:
 533 0306 8981      		ldd r24,Y+1
 534 0308 9A81      		ldd r25,Y+2
 535 030a 9093 0000 		sts (global_detect_trip+4)+1,r25
 536 030e 8093 0000 		sts global_detect_trip+4,r24
 537               	.L38:
 144:main.c        **** 		//	global_detect_trip[2]=int16_temp1;
 145:main.c        **** 		}
 146:main.c        **** 	//判断是否有码值变化
 147:main.c        **** 		//判断合闸数据
 148:main.c        **** 		if((global_detect_close[0]>2046)&&(global_detect_close[1]>2046)&&(global_detect_close[2]>2046))//
 539               	.LM52:
 540 0312 8091 0000 		lds r24,global_detect_close
 541 0316 9091 0000 		lds r25,(global_detect_close)+1
 542 031a 37E0      		ldi r19,hi8(2047)
 543 031c 8F3F      		cpi r24,lo8(2047)
 544 031e 9307      		cpc r25,r19
 545 0320 98F0      		brlo .L39
 546 0322 8091 0000 		lds r24,global_detect_close+2
 547 0326 9091 0000 		lds r25,(global_detect_close+2)+1
 548 032a 27E0      		ldi r18,hi8(2047)
 549 032c 8F3F      		cpi r24,lo8(2047)
 550 032e 9207      		cpc r25,r18
 551 0330 58F0      		brlo .L39
 552 0332 8091 0000 		lds r24,global_detect_close+4
 553 0336 9091 0000 		lds r25,(global_detect_close+4)+1
 554 033a 37E0      		ldi r19,hi8(2047)
 555 033c 8F3F      		cpi r24,lo8(2047)
 556 033e 9307      		cpc r25,r19
 557 0340 18F0      		brlo .L39
 149:main.c        **** 		{
 150:main.c        **** 		//检测到动作标志赋值
 151:main.c        **** 			global_operation_detected_flag=1;
 559               	.LM53:
 560 0342 81E0      		ldi r24,lo8(1)
 561 0344 8093 0000 		sts global_operation_detected_flag,r24
 562               	.L39:
 152:main.c        **** 		}
 153:main.c        **** 	//	if(global_detect_close[0]>2049)
 154:main.c        **** 	//	{
 155:main.c        **** 	//		if((global_detect_close[1]-global_detect_close[0]>1)&&(global_detect_close[2]-global_detect_cl
 156:main.c        **** 	//		{
 157:main.c        **** 			//检测到动作标志赋值
 158:main.c        **** 	//			global_operation_detected_flag=1;
 159:main.c        **** 	//		}
 160:main.c        **** 	//	}
 161:main.c        **** 		//判断分闸数据
 162:main.c        **** 		if((global_detect_trip[0]>2046)&&(global_detect_trip[1]>2046)&&(global_detect_trip[2]>2046))//&&(
 564               	.LM54:
 565 0348 8091 0000 		lds r24,global_detect_trip
 566 034c 9091 0000 		lds r25,(global_detect_trip)+1
 567 0350 27E0      		ldi r18,hi8(2047)
 568 0352 8F3F      		cpi r24,lo8(2047)
 569 0354 9207      		cpc r25,r18
 570 0356 98F0      		brlo .L40
 571 0358 8091 0000 		lds r24,global_detect_trip+2
 572 035c 9091 0000 		lds r25,(global_detect_trip+2)+1
 573 0360 37E0      		ldi r19,hi8(2047)
 574 0362 8F3F      		cpi r24,lo8(2047)
 575 0364 9307      		cpc r25,r19
 576 0366 58F0      		brlo .L40
 577 0368 8091 0000 		lds r24,global_detect_trip+4
 578 036c 9091 0000 		lds r25,(global_detect_trip+4)+1
 579 0370 27E0      		ldi r18,hi8(2047)
 580 0372 8F3F      		cpi r24,lo8(2047)
 581 0374 9207      		cpc r25,r18
 582 0376 18F0      		brlo .L40
 163:main.c        **** 		{
 164:main.c        **** 		//检测到动作标志赋值
 165:main.c        **** 			global_operation_detected_flag=1;
 584               	.LM55:
 585 0378 81E0      		ldi r24,lo8(1)
 586 037a 8093 0000 		sts global_operation_detected_flag,r24
 587               	.L40:
 166:main.c        **** 		}
 167:main.c        **** 	//	if(global_detect_trip[0]>2049)
 168:main.c        **** 	//	{
 169:main.c        **** 	//		if((global_detect_trip[1]-global_detect_trip[0]>1)&&(global_detect_trip[2]-global_detect_trip[
 170:main.c        **** 	//		{
 171:main.c        **** 			//检测到动作标志赋值
 172:main.c        **** 	//			global_operation_detected_flag=1;
 173:main.c        **** 	//		}
 174:main.c        **** 	//	}
 175:main.c        **** 	//	if(int16_temp1>2049)
 176:main.c        **** 	//	{
 177:main.c        **** 		//检测到动作标志赋值
 178:main.c        **** 	//		global_operation_detected_flag=1;
 179:main.c        **** 	//	}
 180:main.c        **** 		global_ad_counter++;
 589               	.LM56:
 590 037e 8091 0000 		lds r24,global_ad_counter
 591 0382 9091 0000 		lds r25,(global_ad_counter)+1
 592 0386 0196      		adiw r24,1
 593 0388 9093 0000 		sts (global_ad_counter)+1,r25
 594 038c 8093 0000 		sts global_ad_counter,r24
 595               	.L36:
 181:main.c        **** 	}
 182:main.c        **** //完成一次AD转换,将AD转换结束标志赋值
 183:main.c        **** 	global_ad_finish_flag=0xFF;
 597               	.LM57:
 598 0390 8FEF      		ldi r24,lo8(-1)
 599 0392 8093 0000 		sts global_ad_finish_flag,r24
 184:main.c        **** //开中断
 185:main.c        **** 	sei();
 601               	.LM58:
 602               	/* #APP */
 603 0396 7894      		sei
 186:main.c        **** }
 605               	.LM59:
 606               	/* #NOAPP */
 607               	.LBE3:
 608               	/* epilogue: frame size=7 */
 609 0398 2796      		adiw r28,7
 610 039a F894      		cli
 611 039c DEBF      		out __SP_H__,r29
 612 039e CDBF      		out __SP_L__,r28

⌨️ 快捷键说明

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