📄 ac20-1.lst
字号:
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 + -