📄 ac20-1.lis
字号:
020C ; {SREG|=0x80;
020C .dbline 184
020C 7894 bset 7
020E .dbline 185
020E ; round_cnt++;
020E 80915800 lds R24,_round_cnt
0212 90915900 lds R25,_round_cnt+1
0216 0196 adiw R24,1
0218 90935900 sts _round_cnt+1,R25
021C 80935800 sts _round_cnt,R24
0220 .dbline 186
0220 ; dis_bit++;
0220 80910300 lds R24,_dis_bit
0224 8F5F subi R24,255 ; addi 1
0226 80930300 sts _dis_bit,R24
022A .dbline 187
022A ; if(dis_bit>2)dis_bit=0;
022A 82E0 ldi R24,2
022C 20900300 lds R2,_dis_bit
0230 8215 cp R24,R2
0232 18F4 brsh L24
0234 .dbline 187
0234 2224 clr R2
0236 20920300 sts _dis_bit,R2
023A L24:
023A .dbline 188
023A ; if(fst==1)cnt_500++;
023A 80914900 lds R24,_fst
023E 8130 cpi R24,1
0240 49F4 brne L26
0242 .dbline 188
0242 80914A00 lds R24,_cnt_500
0246 90914B00 lds R25,_cnt_500+1
024A 0196 adiw R24,1
024C 90934B00 sts _cnt_500+1,R25
0250 80934A00 sts _cnt_500,R24
0254 L26:
0254 .dbline 189
0254 ; if(cnt_500>500){fst=2;round_cnt=0;cnt_500=0;}
0254 84EF ldi R24,500
0256 91E0 ldi R25,1
0258 20904A00 lds R2,_cnt_500
025C 30904B00 lds R3,_cnt_500+1
0260 8215 cp R24,R2
0262 9305 cpc R25,R3
0264 68F4 brsh L28
0266 .dbline 189
0266 .dbline 189
0266 82E0 ldi R24,2
0268 80934900 sts _fst,R24
026C .dbline 189
026C 2224 clr R2
026E 3324 clr R3
0270 30925900 sts _round_cnt+1,R3
0274 20925800 sts _round_cnt,R2
0278 .dbline 189
0278 30924B00 sts _cnt_500+1,R3
027C 20924A00 sts _cnt_500,R2
0280 .dbline 189
0280 L28:
0280 .dbline 191
0280 ;
0280 ; switch(dis_bit)
0280 40910300 lds R20,_dis_bit
0284 5527 clr R21
0286 4030 cpi R20,0
0288 4507 cpc R20,R21
028A 51F0 breq L33
028C X0:
028C 4130 cpi R20,1
028E E0E0 ldi R30,0
0290 5E07 cpc R21,R30
0292 C9F0 breq L34
0294 4230 cpi R20,2
0296 E0E0 ldi R30,0
0298 5E07 cpc R21,R30
029A 09F4 brne X4
029C 2BC0 xjmp L36
029E X4:
029E 3CC0 xjmp L31
02A0 X1:
02A0 .dbline 192
02A0 ; {
02A0 L33:
02A0 .dbline 193
02A0 ; case 0:PORTA=seg[status%10];PORTB=act[0];break;
02A0 2AE0 ldi R18,10
02A2 30E0 ldi R19,0
02A4 00914C00 lds R16,_status
02A8 1127 clr R17
02AA 0E940000 xcall mod16s
02AE F801 movw R30,R16
02B0 80E0 ldi R24,<_seg
02B2 90E0 ldi R25,>_seg
02B4 E80F add R30,R24
02B6 F91F adc R31,R25
02B8 E491 lpm R30,Z
02BA EBBB out 0x1b,R30
02BC .dbline 193
02BC E0E0 ldi R30,<_act
02BE F0E0 ldi R31,>_act
02C0 E491 lpm R30,Z
02C2 E8BB out 0x18,R30
02C4 .dbline 193
02C4 29C0 xjmp L31
02C6 L34:
02C6 .dbline 194
02C6 ; case 1:PORTA=seg[(status%100)/10];PORTB=act[1];break;
02C6 24E6 ldi R18,100
02C8 30E0 ldi R19,0
02CA 00914C00 lds R16,_status
02CE 1127 clr R17
02D0 0E940000 xcall mod16s
02D4 2AE0 ldi R18,10
02D6 30E0 ldi R19,0
02D8 0E940000 xcall div16s
02DC F801 movw R30,R16
02DE 80E0 ldi R24,<_seg
02E0 90E0 ldi R25,>_seg
02E2 E80F add R30,R24
02E4 F91F adc R31,R25
02E6 E491 lpm R30,Z
02E8 EBBB out 0x1b,R30
02EA .dbline 194
02EA E0E0 ldi R30,<_act+1
02EC F0E0 ldi R31,>_act+1
02EE E491 lpm R30,Z
02F0 E8BB out 0x18,R30
02F2 .dbline 194
02F2 12C0 xjmp L31
02F4 L36:
02F4 .dbline 195
02F4 ; case 2:PORTA=seg[status/100];PORTB=act[2];break;
02F4 24E6 ldi R18,100
02F6 30E0 ldi R19,0
02F8 00914C00 lds R16,_status
02FC 1127 clr R17
02FE 0E940000 xcall div16s
0302 F801 movw R30,R16
0304 80E0 ldi R24,<_seg
0306 90E0 ldi R25,>_seg
0308 E80F add R30,R24
030A F91F adc R31,R25
030C E491 lpm R30,Z
030E EBBB out 0x1b,R30
0310 .dbline 195
0310 E0E0 ldi R30,<_act+2
0312 F0E0 ldi R31,>_act+2
0314 E491 lpm R30,Z
0316 E8BB out 0x18,R30
0318 .dbline 195
0318 .dbline 196
0318 ; default:break;
0318 L31:
0318 .dbline 198
0318 ; }
0318 ; TCNT0=0xd9;
0318 89ED ldi R24,217
031A 82BF out 0x32,R24
031C .dbline 199
031C ; switch (status)
031C 40914C00 lds R20,_status
0320 5527 clr R21
0322 4035 cpi R20,80
0324 E0E0 ldi R30,0
0326 5E07 cpc R21,R30
0328 09F4 brne X5
032A 95C0 xjmp L56
032C X5:
032C 80E5 ldi R24,80
032E 90E0 ldi R25,0
0330 8417 cp R24,R20
0332 9507 cpc R25,R21
0334 4CF1 brlt L81
0336 L80:
0336 4233 cpi R20,50
0338 E0E0 ldi R30,0
033A 5E07 cpc R21,R30
033C 09F4 brne X6
033E 6AC0 xjmp L47
0340 X6:
0340 82E3 ldi R24,50
0342 90E0 ldi R25,0
0344 8417 cp R24,R20
0346 9507 cpc R25,R21
0348 7CF0 brlt L83
034A L82:
034A 4030 cpi R20,0
034C 4507 cpc R20,R21
034E 09F4 brne X7
0350 45C0 xjmp L41
0352 X7:
0352 X2:
0352 4030 cpi R20,0
0354 E0E0 ldi R30,0
0356 5E07 cpc R21,R30
0358 0CF4 brge X8
035A 11C1 xjmp L39
035C X8:
035C L84:
035C 4431 cpi R20,20
035E E0E0 ldi R30,0
0360 5E07 cpc R21,R30
0362 09F4 brne X9
0364 49C0 xjmp L44
0366 X9:
0366 0BC1 xjmp L39
0368 L83:
0368 4C33 cpi R20,60
036A E0E0 ldi R30,0
036C 5E07 cpc R21,R30
036E 09F4 brne X10
0370 5CC0 xjmp L50
0372 X10:
0372 4C33 cpi R20,60
0374 E0E0 ldi R30,0
0376 5E07 cpc R21,R30
0378 0CF4 brge X11
037A 01C1 xjmp L39
037C X11:
037C L85:
037C 4634 cpi R20,70
037E E0E0 ldi R30,0
0380 5E07 cpc R21,R30
0382 09F4 brne X12
0384 5DC0 xjmp L53
0386 X12:
0386 FBC0 xjmp L39
0388 L81:
0388 4E36 cpi R20,110
038A E0E0 ldi R30,0
038C 5E07 cpc R21,R30
038E 09F4 brne X13
0390 BCC0 xjmp L69
0392 X13:
0392 8EE6 ldi R24,110
0394 90E0 ldi R25,0
0396 8417 cp R24,R20
0398 9507 cpc R25,R21
039A 84F0 brlt L87
039C L86:
039C 4535 cpi R20,85
039E E0E0 ldi R30,0
03A0 5E07 cpc R21,R30
03A2 09F4 brne X14
03A4 7BC0 xjmp L61
03A6 X14:
03A6 4535 cpi R20,85
03A8 E0E0 ldi R30,0
03AA 5E07 cpc R21,R30
03AC 0CF4 brge X15
03AE E7C0 xjmp L39
03B0 X15:
03B0 L88:
03B0 4436 cpi R20,100
03B2 E0E0 ldi R30,0
03B4 5E07 cpc R21,R30
03B6 09F4 brne X16
03B8 94C0 xjmp L66
03BA X16:
03BA E1C0 xjmp L39
03BC L87:
03BC 4837 cpi R20,120
03BE E0E0 ldi R30,0
03C0 5E07 cpc R21,R30
03C2 09F4 brne X17
03C4 B5C0 xjmp L72
03C6 X17:
03C6 4837 cpi R20,120
03C8 E0E0 ldi R30,0
03CA 5E07 cpc R21,R30
03CC 0CF4 brge X18
03CE D7C0 xjmp L39
03D0 X18:
03D0 L89:
03D0 4238 cpi R20,130
03D2 E0E0 ldi R30,0
03D4 5E07 cpc R21,R30
03D6 09F4 brne X19
03D8 BEC0 xjmp L75
03DA X19:
03DA D1C0 xjmp L39
03DC X3:
03DC .dbline 200
03DC ; { //门全开后转状态10
03DC L41:
03DC .dbline 201
03DC ; case 0:if(round_cnt>200){status=10;}break;
03DC 88EC ldi R24,200
03DE 90E0 ldi R25,0
03E0 20905800 lds R2,_round_cnt
03E4 30905900 lds R3,_round_cnt+1
03E8 8215 cp R24,R2
03EA 9305 cpc R25,R3
03EC 08F0 brlo X20
03EE C7C0 xjmp L39
03F0 X20:
03F0 .dbline 201
03F0 .dbline 201
03F0 8AE0 ldi R24,10
03F2 80934C00 sts _status,R24
03F6 .dbline 201
03F6 .dbline 201
03F6 C3C0 xjmp L39
03F8 L44:
03F8 .dbline 203
03F8 ; //门全关后转状态30停止
03F8 ; case 20:if(round_cnt>200){status=30;}break;
03F8 88EC ldi R24,200
03FA 90E0 ldi R25,0
03FC 20905800 lds R2,_round_cnt
0400 30905900 lds R3,_round_cnt+1
0404 8215 cp R24,R2
0406 9305 cpc R25,R3
0408 08F0 brlo X21
040A B9C0 xjmp L39
040C X21:
040C .dbline 203
040C .dbline 203
040C 8EE1 ldi R24,30
040E 80934C00 sts _status,R24
0412 .dbline 203
0412 .dbline 203
0412 B5C0 xjmp L39
0414 L47:
0414 .dbline 204
0414 ; case 50:if(round_cnt>100){/*reset;*/}break;
0414 84E6 ldi R24,100
0416 90E0 ldi R25,0
0418 20905800 lds R2,_round_cnt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -