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

📄 ac20-1.lst

📁 AVR单片机ATmega16(L)应用实例—红外线感应自动移门
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0307 0593      CPC	R25,R3
    0308 F008      BCS	0x030A
    0309 C044      RJMP	0x034E
    030A E689      LDI	R24,0x69
    030B 938000B5  STS	status,R24
    030D 2422      CLR	R2
    030E 2433      CLR	R3
    030F 923000B8  STS	sp_pl+1,R3
    0311 922000B7  STS	sp_pl,R2
    0313 C03A      RJMP	0x034E
(0217) 		//关门全速状态110时, 判断撞人后,转状态116	
(0218) 		case 110:if(round_cnt>30){status=116;sp_pl=0;}break;
    0314 E18E      LDI	R24,0x1E
    0315 E090      LDI	R25,0
    0316 902000C1  LDS	R2,round_cnt
    0318 903000C2  LDS	R3,round_cnt+1
    031A 1582      CP	R24,R2
    031B 0593      CPC	R25,R3
    031C F588      BCC	0x034E
    031D E784      LDI	R24,0x74
    031E 938000B5  STS	status,R24
    0320 2422      CLR	R2
    0321 2433      CLR	R3
    0322 923000B8  STS	sp_pl+1,R3
    0324 922000B7  STS	sp_pl,R2
    0326 C027      RJMP	0x034E
(0219) 		case 120:if(round_cnt>100){status=116;sp_pl=0;}break;
    0327 E684      LDI	R24,0x64
    0328 E090      LDI	R25,0
    0329 902000C1  LDS	R2,round_cnt
    032B 903000C2  LDS	R3,round_cnt+1
    032D 1582      CP	R24,R2
    032E 0593      CPC	R25,R3
    032F F4F0      BCC	0x034E
    0330 E784      LDI	R24,0x74
    0331 938000B5  STS	status,R24
    0333 2422      CLR	R2
    0334 2433      CLR	R3
    0335 923000B8  STS	sp_pl+1,R3
    0337 922000B7  STS	sp_pl,R2
    0339 C014      RJMP	0x034E
(0220) 		//关门慢速状态130时,门合拢后转状态140停止 
(0221) 		case 130:if(changdu<=8){if(round_cnt>200)status=140;}
    033A E088      LDI	R24,0x8
    033B E090      LDI	R25,0
    033C 902000BF  LDS	R2,changdu
    033E 903000C0  LDS	R3,changdu+1
    0340 1582      CP	R24,R2
    0341 0593      CPC	R25,R3
    0342 F05C      BLT	0x034E
    0343 EC88      LDI	R24,0xC8
    0344 902000C1  LDS	R2,round_cnt
    0346 903000C2  LDS	R3,round_cnt+1
    0348 1582      CP	R24,R2
    0349 0593      CPC	R25,R3
    034A F418      BCC	0x034E
    034B E88C      LDI	R24,0x8C
    034C 938000B5  STS	status,R24
(0222) 				  break;
(0223) 		default:break;
    034E 940E10F8  CALL	pop_gset1
    0350 9029      LD	R2,Y+
    0351 BE2F      OUT	0x3F,R2
    0352 91F9      LD	R31,Y+
    0353 91E9      LD	R30,Y+
    0354 9199      LD	R25,Y+
    0355 9189      LD	R24,Y+
    0356 9139      LD	R19,Y+
    0357 9129      LD	R18,Y+
    0358 9119      LD	R17,Y+
    0359 9109      LD	R16,Y+
    035A 9039      LD	R3,Y+
    035B 9029      LD	R2,Y+
    035C 9518      RETI
_ext_int0:
    035D 922A      ST	R2,-Y
    035E 923A      ST	R3,-Y
    035F 924A      ST	R4,-Y
    0360 925A      ST	R5,-Y
    0361 938A      ST	R24,-Y
    0362 939A      ST	R25,-Y
    0363 B62F      IN	R2,0x3F
    0364 922A      ST	R2,-Y
(0224) 		}
(0225) }
(0226) 
(0227) 
(0228) /*======INT0的马达光电编码器中断=========*/
(0229) #pragma interrupt_handler ext_int0:2
(0230) void ext_int0(void)
(0231) {SREG|=0x80;
    0365 9478      BSET	7
(0232) round_cnt=0;
    0366 2422      CLR	R2
    0367 2433      CLR	R3
    0368 923000C2  STS	round_cnt+1,R3
    036A 922000C1  STS	round_cnt,R2
(0233) if(status<90)changdu++;
    036C 918000B5  LDS	R24,status
    036E 358A      CPI	R24,0x5A
    036F F448      BCC	0x0379
    0370 918000BF  LDS	R24,changdu
    0372 919000C0  LDS	R25,changdu+1
    0374 9601      ADIW	R24,1
    0375 939000C0  STS	changdu+1,R25
    0377 938000BF  STS	changdu,R24
(0234) if(changdu>9999)changdu=9999;
    0379 E08F      LDI	R24,0xF
    037A E297      LDI	R25,0x27
    037B 902000BF  LDS	R2,changdu
    037D 903000C0  LDS	R3,changdu+1
    037F 1582      CP	R24,R2
    0380 0593      CPC	R25,R3
    0381 F424      BGE	0x0386
    0382 939000C0  STS	changdu+1,R25
    0384 938000BF  STS	changdu,R24
(0235) if((status>90)&&(status<140))changdu--;
    0386 E58A      LDI	R24,0x5A
    0387 902000B5  LDS	R2,status
    0389 1582      CP	R24,R2
    038A F460      BCC	0x0397
    038B 2D82      MOV	R24,R2
    038C 388C      CPI	R24,0x8C
    038D F448      BCC	0x0397
    038E 918000BF  LDS	R24,changdu
    0390 919000C0  LDS	R25,changdu+1
    0392 9701      SBIW	R24,1
    0393 939000C0  STS	changdu+1,R25
    0395 938000BF  STS	changdu,R24
(0236) if(changdu<=0){changdu=0;}
    0397 2422      CLR	R2
    0398 2433      CLR	R3
    0399 904000BF  LDS	R4,changdu
    039B 905000C0  LDS	R5,changdu+1
    039D 1424      CP	R2,R4
    039E 0435      CPC	R3,R5
    039F F024      BLT	0x03A4
    03A0 923000C0  STS	changdu+1,R3
    03A2 922000BF  STS	changdu,R2
(0237) if(inc_dec_flag)sp_pl++;
    03A4 9020006B  LDS	R2,inc_dec_flag
    03A6 2022      TST	R2
    03A7 F049      BEQ	0x03B1
    03A8 918000B7  LDS	R24,sp_pl
    03AA 919000B8  LDS	R25,sp_pl+1
    03AC 9601      ADIW	R24,1
    03AD 939000B8  STS	sp_pl+1,R25
    03AF 938000B7  STS	sp_pl,R24
(0238) if(sp_pl>9999)sp_pl=9999;
    03B1 E08F      LDI	R24,0xF
    03B2 E297      LDI	R25,0x27
    03B3 902000B7  LDS	R2,sp_pl
    03B5 903000B8  LDS	R3,sp_pl+1
    03B7 1582      CP	R24,R2
    03B8 0593      CPC	R25,R3
    03B9 F420      BCC	0x03BE
    03BA 939000B8  STS	sp_pl+1,R25
    03BC 938000B7  STS	sp_pl,R24
    03BE 9029      LD	R2,Y+
    03BF BE2F      OUT	0x3F,R2
    03C0 9199      LD	R25,Y+
    03C1 9189      LD	R24,Y+
    03C2 9059      LD	R5,Y+
    03C3 9049      LD	R4,Y+
    03C4 9039      LD	R3,Y+
    03C5 9029      LD	R2,Y+
    03C6 9518      RETI
(0239) }
(0240) 
(0241) 
(0242) /*==========开门时的加速子函数===========*/
(0243) void open_inc_speed(uint sp_pl)
(0244) {
(0245) 	switch (sp_pl)
_open_inc_speed:
  sp_pl                --> R16
    03C7 3302      CPI	R16,0x32
    03C8 E0E0      LDI	R30,0
    03C9 071E      CPC	R17,R30
    03CA F409      BNE	0x03CC
    03CB C09F      RJMP	0x046B
    03CC E382      LDI	R24,0x32
    03CD E090      LDI	R25,0
    03CE 1780      CP	R24,R16
    03CF 0791      CPC	R25,R17
    03D0 F40C      BGE	0x03D2
    03D1 C036      RJMP	0x0408
    03D2 3104      CPI	R16,0x14
    03D3 E0E0      LDI	R30,0
    03D4 071E      CPC	R17,R30
    03D5 F409      BNE	0x03D7
    03D6 C080      RJMP	0x0457
    03D7 E184      LDI	R24,0x14
    03D8 E090      LDI	R25,0
    03D9 1780      CP	R24,R16
    03DA 0791      CPC	R25,R17
    03DB F0B4      BLT	0x03F2
    03DC 3005      CPI	R16,5
    03DD E0E0      LDI	R30,0
    03DE 071E      CPC	R17,R30
    03DF F409      BNE	0x03E1
    03E0 C06C      RJMP	0x044D
    03E1 E085      LDI	R24,5
    03E2 E090      LDI	R25,0
    03E3 1780      CP	R24,R16
    03E4 0791      CPC	R25,R17
    03E5 F034      BLT	0x03EC
    03E6 3001      CPI	R16,1
    03E7 E0E0      LDI	R30,0
    03E8 071E      CPC	R17,R30
    03E9 F409      BNE	0x03EB
    03EA C05D      RJMP	0x0448
    03EB C0AE      RJMP	0x049A
    03EC 300A      CPI	R16,0xA
    03ED E0E0      LDI	R30,0
    03EE 071E      CPC	R17,R30
    03EF F409      BNE	0x03F1
    03F0 C061      RJMP	0x0452
    03F1 C0A8      RJMP	0x049A
    03F2 3203      CPI	R16,0x23
    03F3 E0E0      LDI	R30,0
    03F4 071E      CPC	R17,R30
    03F5 F409      BNE	0x03F7
    03F6 C06A      RJMP	0x0461
    03F7 E283      LDI	R24,0x23
    03F8 E090      LDI	R25,0
    03F9 1780      CP	R24,R16
    03FA 0791      CPC	R25,R17
    03FB F034      BLT	0x0402
    03FC 3109      CPI	R16,0x19
    03FD E0E0      LDI	R30,0
    03FE 071E      CPC	R17,R30
    03FF F409      BNE	0x0401
    0400 C05B      RJMP	0x045C
    0401 C098      RJMP	0x049A
    0402 320D      CPI	R16,0x2D
    0403 E0E0      LDI	R30,0
    0404 071E      CPC	R17,R30
    0405 F409      BNE	0x0407
    0406 C05F      RJMP	0x0466
    0407 C092      RJMP	0x049A
    0408 3505      CPI	R16,0x55
    0409 E0E0      LDI	R30,0
    040A 071E      CPC	R17,R30
    040B F409      BNE	0x040D
    040C C072      RJMP	0x047F
    040D E585      LDI	R24,0x55
    040E E090      LDI	R25,0
    040F 1780      CP	R24,R16
    0410 0791      CPC	R25,R17
    0411 F0B4      BLT	0x0428
    0412 3401      CPI	R16,0x41
    0413 E0E0      LDI	R30,0
    0414 071E      CPC	R17,R30
    0415 F409      BNE	0x0417
    0416 C05E      RJMP	0x0475
    0417 E481      LDI	R24,0x41
    0418 E090      LDI	R25,0
    0419 1780      CP	R24,R16
    041A 0791      CPC	R25,R17
    041B F034      BLT	0x0422
    041C 330C      CPI	R16,0x3C
    041D E0E0      LDI	R30,0
    041E 071E      CPC	R17,R30
    041F F409      BNE	0x0421
    0420 C04F      RJMP	0x0470
    0421 C078      RJMP	0x049A
    0422 340B      CPI	R16,0x4B
    0423 E0E0      LDI	R30,0
    0424 071E      CPC	R17,R30
    0425 F409      BNE	0x0427
    0426 C053      RJMP	0x047A
    0427 C072      RJMP	0x049A
    0428 3604      CPI	R16,0x64
    0429 E0E0      LDI	R30,0
    042A 071E      CPC	R17,R30
    042B F409      BNE	0x042D
    042C C05C      RJMP	0x0489
    042D E684      LDI	R24,0x64
    042E E090      LDI	R25,0
    042F 1780      CP	R24,R16
    0430 0791      CPC	R25,R17
    0431 F034      BLT	0x0438
    0432 350A      CPI	R16,0x5A
    0433 E0E0      LDI	R30,0
    0434 071E      CPC	R17,R30
    0435 F409      BNE	0x0437
    0436 C04D      RJMP	0x0484
    0437 C062      RJMP	0x049A
    0438 3609      CPI	R16,0x69
    0439 E0E0      LDI	R30,0
    043A 071E      CPC	R17,R30
    043B F409      BNE	0x043D
    043C C051      RJMP	0x048E
    043D 3609      CPI	R16,0x69
    043E E0E0      LDI	R30,0
    043F 071E      CPC	R17,R30
    0440 F40C      BGE	0x0442
    0441 C058      RJMP	0x049A
    0442 3703      CPI	R16,0x73
    0443 E0E0      LDI	R30,0
    0444 071E      CPC	R17,R30
    0445 F409      BNE	0x0447
    0446 C04C      RJMP	0x0493
    0447 C052      RJMP	0x049A
(0246) 		{
(0247) 		case 1:wide=open_inc_tab[0];break;	
    0448 9020009E  LDS	R2,open_inc_tab
    044A 92200068  STS	wide,R2
    044C C04D      RJMP	0x049A
(0248) 		case 5:wide=open_inc_tab[1];break;		
    044D 9020009F  LDS	R2,open_inc_tab+1
    044F 92200068  STS	wide,R2
    0451 C048      RJMP	0x049A
(0249) 		case 10:wide=open_inc_tab[2];break;
    0452 902000A0  LDS	R2,open_inc_tab+2
    0454 92200068  STS	wide,R2
    0456 C043      RJMP	0x049A
(0250) 		case 20:wide=open_inc_tab[3];break;	
    0457 902000A1  LDS	R2,open_inc_tab+3
    0459 92200068  STS	wide,R2
    045B C03E      RJMP	0x049A
(0251) 		case 25:wide=open_inc_tab[4];break;		
    045C 902000A2  LDS	R2,0xA2
    045E 92200068  STS	wide,R2
    0460 C039      RJMP	0x049A
(0252) 		case 35:wide=open_inc_tab[5];break;
    0461 902000A3  LDS	R2,0xA3
    0463 92200068  STS	wide,R2
    0465 C034      RJMP	0x049A
(0253) 		case 45:wide=open_inc_tab[6];break;	
    0466 902000A4  LDS	R2,0xA4
    0468 92200068  STS	wide,R2
    046A C02F      RJMP	0x049A
(0254) 		case 50:wide=open_inc_tab[7];break;
    046B 902000A5  LDS	R2,0xA5
    046D 92200068  STS	wide,R2
    046F C02A      RJMP	0x049A
(0255) 		case 60:wide=open_inc_tab[8];break;
    0470 902000A6  LDS	R2,0xA6
    0472 92200068  STS	wide,R2
    0474 C025      RJMP	0x049A
(0256) 		case 65:wide=open_inc_tab[9];break;	
    0475 902000A7  LDS	R2,0xA7
    0477 92200068  STS	wide,R2
    0479 C020      RJMP	0x049A
(0257) 		case 75:wide=open_inc_tab[10];break;		
    047A 902000A8  LDS	R2,0xA8
    047C 92200068  STS	wide,R2
    047E C01B      RJMP	0x049A
(0258) 		case 85:wide=open_inc_tab[11];break;
    047F 902000A9  LDS	R2,0xA9
    0481 92200068  STS	wide,R2
    0483 C016      RJMP	0x049A
(0259) 		case 90:wide=open_inc_tab[12];break;	
    0484 902000AA  LDS	R2,0xAA
    0486 92200068  STS	wide,R2
    0488 C011      RJMP	0x049A
(0260) 		case 100:wide=open_inc_tab[13];break;	
    0489 902000AB  LDS	R2,0xAB
    048B 92200068  STS	wide,R2
    048D C00C      RJMP	0x049A
(0261) 		case 105:wide=open_inc_tab[14];break;	
    048E 902000AC  LDS	R2,0xAC
    0490 92200068  STS	wide,R2
    0492 C007      RJMP	0x049A
(0262) 		case 115:wide=open_inc_tab[15];inc_dec_flag=0;break;		
    0493 902000AD  LDS	R2,0xAD
    0495 92200068  STS	wide,R2
    0497 2422      CLR	R2
    0498 9220006B  STS	inc_dec_flag,R2
(0263) 		default:break;
(0264) 		}
(0265) 		OCR2=wide;
    049A 90200068  LDS	R2,wide
    049C BC23      OUT	0x23,R2
    049D 9508      RET
(0266) }
(0267) 
(0268) 
(0269) /*==========门扇半开运行的减速子函数===========*/
(0270) void openhalf_dec_speed(uint sp_pl)
(0271) {
(0272) 	switch (sp_pl)
_openhalf_dec_speed:
  sp_pl                --> R16
    049E 3500      CPI	R16,0x50
    049F E0E0      LDI	R30,0
    04A0 071E      CPC	R17,R30
    04A1 F409      BNE	0x04A3
    04A2 C099      RJMP	0x053C
    04A3 E580      LDI	R24,0x50
    04A4 E090      LDI	R25,0
    04A5 1780      CP	R24,R16
    04A6 0791      CPC	R25,R17

⌨️ 快捷键说明

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