📄 led_m16.lst
字号:
(0351) {
(0352) if (JS_PRESS_ON_DOWN_FAST==2000)
029D 918000AB LDS R24,_JS_PRESS_ON_DOWN_FAST
029F 919000AC LDS R25,_JS_PRESS_ON_DOWN_FAST+1
02A1 3D80 CPI R24,0xD0
02A2 E0E7 LDI R30,7
02A3 079E CPC R25,R30
02A4 F441 BNE 0x02AD
(0353) {
(0354) JS_PRESS_ON_DOWN_FAST=0;
(0355) LED_DISPLAY_DOWN_DMX512();
02A5 2422 CLR R2
02A6 2433 CLR R3
02A7 923000AC STS _JS_PRESS_ON_DOWN_FAST+1,R3
02A9 922000AB STS _JS_PRESS_ON_DOWN_FAST,R2
02AB D08E RCALL _LED_DISPLAY_DOWN_DMX512
(0356) }
02AC C00D RJMP 0x02BA
(0357) else
(0358) JS_PRESS_ON_DOWN_FAST=++JS_PRESS_ON_DOWN_FAST;
02AD 918000AB LDS R24,_JS_PRESS_ON_DOWN_FAST
02AF 919000AC LDS R25,_JS_PRESS_ON_DOWN_FAST+1
02B1 9601 ADIW R24,1
02B2 939000AC STS _JS_PRESS_ON_DOWN_FAST+1,R25
02B4 938000AB STS _JS_PRESS_ON_DOWN_FAST,R24
02B6 939000AC STS _JS_PRESS_ON_DOWN_FAST+1,R25
02B8 938000AB STS _JS_PRESS_ON_DOWN_FAST,R24
(0359) }
(0360)
(0361) if (JS_PRESS_ON_DOWN==30000)
02BA E340 LDI R20,0x30
02BB E755 LDI R21,0x75
02BC E060 LDI R22,0
02BD E070 LDI R23,0
02BE 90400086 LDS R4,0x86
02C0 90500087 LDS R5,0x87
02C2 90200084 LDS R2,0x84
02C4 90300085 LDS R3,0x85
02C6 1624 CP R2,R20
02C7 0635 CPC R3,R21
02C8 0646 CPC R4,R22
02C9 0657 CPC R5,R23
02CA F481 BNE 0x02DB
(0362) {
(0363) JS_PRESS_ON_DOWN=0;
(0364) JS_PRESS_ON_DOWN_10000=1;
02CB E040 LDI R20,0
02CC E050 LDI R21,0
02CD E060 LDI R22,0
02CE E070 LDI R23,0
02CF 93500085 STS 0x85,R21
02D1 93400084 STS 0x84,R20
02D3 93700087 STS 0x87,R23
02D5 93600086 STS 0x86,R22
02D7 E081 LDI R24,1
02D8 9380008C STS 0x8C,R24
(0365) }
02DA C05B RJMP 0x0336
(0366) else
(0367) JS_PRESS_ON_DOWN=++JS_PRESS_ON_DOWN;
02DB E041 LDI R20,1
02DC E050 LDI R21,0
02DD E060 LDI R22,0
02DE E070 LDI R23,0
02DF 90400086 LDS R4,0x86
02E1 90500087 LDS R5,0x87
02E3 90200084 LDS R2,0x84
02E5 90300085 LDS R3,0x85
02E7 0E24 ADD R2,R20
02E8 1E35 ADC R3,R21
02E9 1E46 ADC R4,R22
02EA 1E57 ADC R5,R23
02EB 01FE MOVW R30,R28
02EC 8220 STD Z+0,R2
02ED 8231 STD Z+1,R3
02EE 8242 STD Z+2,R4
02EF 8253 STD Z+3,R5
02F0 01FE MOVW R30,R28
02F1 8020 LDD R2,Z+0
02F2 8031 LDD R3,Z+1
02F3 8042 LDD R4,Z+2
02F4 8053 LDD R5,Z+3
02F5 92300085 STS 0x85,R3
02F7 92200084 STS 0x84,R2
02F9 92500087 STS 0x87,R5
02FB 92400086 STS 0x86,R4
02FD 01FE MOVW R30,R28
02FE 8020 LDD R2,Z+0
02FF 8031 LDD R3,Z+1
0300 8042 LDD R4,Z+2
0301 8053 LDD R5,Z+3
0302 92300085 STS 0x85,R3
0304 92200084 STS 0x84,R2
0306 92500087 STS 0x87,R5
0308 92400086 STS 0x86,R4
(0368) }
(0369) }
030A C02B RJMP 0x0336
(0370) else //unpress
(0371) {
(0372) JS_PRESS_ON_DOWN=0;
(0373) JS_PRESS_ON_DOWN_10000=0;
(0374) JS_PRESS_ON_DOWN_FAST=0;
(0375) JS_PRESS_OFF_DOWN=++JS_PRESS_OFF_DOWN;
(0376) if (JS_PRESS_OFF_DOWN==2000)
030B E040 LDI R20,0
030C E050 LDI R21,0
030D E060 LDI R22,0
030E E070 LDI R23,0
030F 93500085 STS 0x85,R21
0311 93400084 STS 0x84,R20
0313 93700087 STS 0x87,R23
0315 93600086 STS 0x86,R22
0317 2422 CLR R2
0318 9220008C STS 0x8C,R2
031A 2433 CLR R3
031B 923000AC STS _JS_PRESS_ON_DOWN_FAST+1,R3
031D 922000AB STS _JS_PRESS_ON_DOWN_FAST,R2
031F 918000AD LDS R24,_JS_PRESS_OFF_DOWN
0321 919000AE LDS R25,_JS_PRESS_OFF_DOWN+1
0323 9601 ADIW R24,1
0324 939000AE STS _JS_PRESS_OFF_DOWN+1,R25
0326 938000AD STS _JS_PRESS_OFF_DOWN,R24
0328 939000AE STS _JS_PRESS_OFF_DOWN+1,R25
032A 938000AD STS _JS_PRESS_OFF_DOWN,R24
032C 3D80 CPI R24,0xD0
032D E0E7 LDI R30,7
032E 079E CPC R25,R30
032F F431 BNE 0x0336
(0377) {
(0378) JS_PRESS_DOWN_ON_1=0;
(0379) JS_PRESS_OFF_DOWN=0;
0330 922000AA STS _JS_PRESS_DOWN_ON_1,R2
0332 923000AE STS _JS_PRESS_OFF_DOWN+1,R3
0334 922000AD STS _JS_PRESS_OFF_DOWN,R2
(0380) }
(0381) }
(0382)
(0383) }
0336 9624 ADIW R28,4
0337 940E0613 CALL pop_gset2
0339 9508 RET
(0384) //----------------------DOWN_DMX512-----------------------
(0385) void LED_DISPLAY_DOWN_DMX512()
(0386) {
(0387) if (LED_DISPLAY_V2==0)
_LED_DISPLAY_DOWN_DMX512:
033A 9020007C LDS R2,0x7C
033C 2022 TST R2
033D F489 BNE 0x034F
(0388) {
(0389) if (LED_DISPLAY_V3==0)
033E 9020007D LDS R2,0x7D
0340 2022 TST R2
0341 F469 BNE 0x034F
(0390) {
(0391) if (LED_DISPLAY_V4==1)
0342 9180007E LDS R24,0x7E
0344 3081 CPI R24,1
0345 F449 BNE 0x034F
(0392) {
(0393) LED_DISPLAY_V2=5;
(0394) LED_DISPLAY_V3=1;
(0395) LED_DISPLAY_V4=3;
0346 E085 LDI R24,5
0347 9380007C STS 0x7C,R24
0349 E081 LDI R24,1
034A 9380007D STS 0x7D,R24
034C E083 LDI R24,3
034D 9380007E STS 0x7E,R24
(0396) }
(0397) }
(0398) }
(0399) if (LED_DISPLAY_V4==0)
034F 9020007E LDS R2,0x7E
0351 2022 TST R2
0352 F4D9 BNE 0x036E
(0400) {
(0401) LED_DISPLAY_V4=9;
(0402) if (LED_DISPLAY_V3==0)
0353 E089 LDI R24,0x9
0354 9380007E STS 0x7E,R24
0356 9020007D LDS R2,0x7D
0358 2022 TST R2
0359 F459 BNE 0x0365
(0403) {
(0404) LED_DISPLAY_V3=9;
(0405) LED_DISPLAY_V2=--LED_DISPLAY_V2;
035A 9380007D STS 0x7D,R24
035C 9180007C LDS R24,0x7C
035E 5081 SUBI R24,1
035F 2E28 MOV R2,R24
0360 9220007C STS 0x7C,R2
0362 9220007C STS 0x7C,R2
(0406) }
0364 C011 RJMP 0x0376
(0407) else
(0408) LED_DISPLAY_V3=--LED_DISPLAY_V3;
0365 9180007D LDS R24,0x7D
0367 5081 SUBI R24,1
0368 2E28 MOV R2,R24
0369 9220007D STS 0x7D,R2
036B 9220007D STS 0x7D,R2
(0409) }
036D C008 RJMP 0x0376
(0410) else
(0411) LED_DISPLAY_V4=--LED_DISPLAY_V4;
036E 9180007E LDS R24,0x7E
0370 5081 SUBI R24,1
0371 2E28 MOV R2,R24
0372 9220007E STS 0x7E,R2
0374 9220007E STS 0x7E,R2
(0412) }
0376 9508 RET
(0413) ////////////LED_DISPLAY_SCAN/////////////////////////////////////////////////////////////////////////////////////
(0414) void LED_SCAN()
(0415) {
(0416) JS_001=++JS_001;
(0417)
(0418) if (JS_001<=10)
_LED_SCAN:
0377 91800070 LDS R24,0x70
0379 5F8F SUBI R24,0xFF
037A 2E28 MOV R2,R24
037B 92200070 STS 0x70,R2
037D 92200070 STS 0x70,R2
037F E08A LDI R24,0xA
0380 1582 CP R24,R2
0381 F0D0 BCS 0x039C
(0419) {
(0420) HC573_CLK_PORTC|=HC573_CLK; // PC4 =1
0382 9AAC SBI 0x15,4
(0421) LED_SCAN_PORTB|=0xff;
0383 B388 IN R24,0x18
0384 6F8F ORI R24,0xFF
0385 BB88 OUT 0x18,R24
(0422) LED_SCAN_PORTB&=~LED_V1; //PB0=0
0386 98C0 CBI 0x18,0
(0423) LED_DATA_PORTA&=0X00; //OUT LED_DATA
0387 2422 CLR R2
0388 BA2B OUT 0x1B,R2
(0424) LED_DATA_PORTA|=LED_DATA[LED_DISPLAY_V1];
0389 E680 LDI R24,0x60
038A E090 LDI R25,0
038B 91E0007B LDS R30,0x7B
038D 27FF CLR R31
038E 0FE8 ADD R30,R24
038F 1FF9 ADC R31,R25
0390 8020 LDD R2,Z+0
0391 B23B IN R3,0x1B
0392 2832 OR R3,R2
0393 BA3B OUT 0x1B,R3
(0425) if (JS_001>=3)
0394 91800070 LDS R24,0x70
0396 3083 CPI R24,3
0397 F010 BCS 0x039A
(0426) HC573_CLK_PORTC&=~HC573_CLK; // PC4 =0
0398 98AC CBI 0x15,4
0399 C082 RJMP 0x041C
(0427) else
(0428) HC573_CLK_PORTC|=HC573_CLK; // PC4 =1
039A 9AAC SBI 0x15,4
(0429) }
039B C080 RJMP 0x041C
(0430) else if (JS_001>10,JS_001<=20)
039C E184 LDI R24,0x14
039D 90200070 LDS R2,0x70
039F 1582 CP R24,R2
03A0 F0D0 BCS 0x03BB
(0431) {
(0432) HC573_CLK_PORTC|=HC573_CLK; // PC4 =0
03A1 9AAC SBI 0x15,4
(0433) LED_SCAN_PORTB|=0xff;
03A2 B388 IN R24,0x18
03A3 6F8F ORI R24,0xFF
03A4 BB88 OUT 0x18,R24
(0434) LED_SCAN_PORTB&=~LED_V2; //PB1=0
03A5 98C1 CBI 0x18,1
(0435) LED_DATA_PORTA&=0X00;
03A6 2422 CLR R2
03A7 BA2B OUT 0x1B,R2
(0436) LED_DATA_PORTA|=LED_DATA[LED_DISPLAY_V2];
03A8 E680 LDI R24,0x60
03A9 E090 LDI R25,0
03AA 91E0007C LDS R30,0x7C
03AC 27FF CLR R31
03AD 0FE8 ADD R30,R24
03AE 1FF9 ADC R31,R25
03AF 8020 LDD R2,Z+0
03B0 B23B IN R3,0x1B
03B1 2832 OR R3,R2
03B2 BA3B OUT 0x1B,R3
(0437) if (JS_001>=13)
03B3 91800070 LDS R24,0x70
03B5 308D CPI R24,0xD
03B6 F010 BCS 0x03B9
(0438) HC573_CLK_PORTC&=~HC573_CLK; // PC4 =0
03B7 98AC CBI 0x15,4
03B8 C063 RJMP 0x041C
(0439) else
(0440) HC573_CLK_PORTC|=HC573_CLK; // PC4 =1
03B9 9AAC SBI 0x15,4
(0441) }
03BA C061 RJMP 0x041C
(0442) else if (JS_001>20,JS_001<=30)
03BB E18E LDI R24,0x1E
03BC 90200070 LDS R2,0x70
03BE 1582 CP R24,R2
03BF F0C8 BCS 0x03D9
(0443) {
(0444) HC573_CLK_PORTC|=HC573_CLK; // PC4 =1
03C0 9AAC SBI 0x15,4
(0445) LED_SCAN_PORTB=0xff;
03C1 EF8F LDI R24,0xFF
03C2 BB88 OUT 0x18,R24
(0446) LED_DATA_PORTA&=0X00;
03C3 2422 CLR R2
03C4 BA2B OUT 0x1B,R2
(0447) LED_DATA_PORTA|=LED_DATA[LED_DISPLAY_V3];
03C5 E680 LDI R24,0x60
03C6 E090 LDI R25,0
03C7 91E0007D LDS R30,0x7D
03C9 27FF CLR R31
03CA 0FE8 ADD R30,R24
03CB 1FF9 ADC R31,R25
03CC 8020 LDD R2,Z+0
03CD B23B IN R3,0x1B
03CE 2832 OR R3,R2
03CF BA3B OUT 0x1B,R3
(0448) LED_SCAN_PORTB&=~LED_V3; //PB2=0
03D0 98C2 CBI 0x18,2
(0449) if (JS_001>=23)
03D1 91800070 LDS R24,0x70
03D3 3187 CPI R24,0x17
03D4 F010 BCS 0x03D7
(0450) HC573_CLK_PORTC&=~HC573_CLK; // PC4 =0
03D5 98AC CBI 0x15,4
03D6 C045 RJMP 0x041C
(0451) else
(0452) HC573_CLK_PORTC|=HC573_CLK; // PC4 =1
03D7 9AAC SBI 0x15,4
(0453) }
03D8 C043 RJMP 0x041C
(0454) else if (JS_001>30,JS_001<=40)
03D9 E288 LDI R24,0x28
03DA 90200070 LDS R2,0x70
03DC 1582 CP R24,R2
03DD F0C8 BCS 0x03F7
(0455) {
(0456) HC573_CLK_PORTC|=HC573_CLK; // PC4 =1
03DE 9AAC SBI 0x15,4
(0457) LED_SCAN_PORTB=0xff;
03DF EF8F LDI R24,0xFF
03E0 BB88 OUT 0x18,R24
(0458) LED_DATA_PORTA&=0X00;
03E1 2422 CLR R2
03E2 BA2B OUT 0x1B,R2
(0459) LED_DATA_PORTA|=LED_DATA[LED_DISPLAY_V4];
03E3 E680 LDI R24,0x60
03E4 E090 LDI R25,0
03E5 91E0007E LDS R30,0x7E
03E7 27FF CLR R31
03E8 0FE8 ADD R30,R24
03E9 1FF9 ADC R31,R25
03EA 8020 LDD R2,Z+0
03EB B23B IN R3,0x1B
03EC 2832 OR R3,R2
03ED BA3B OUT 0x1B,R3
(0460) LED_SCAN_PORTB&=~LED_V4; //PB3=0
03EE 98C3 CBI 0x18,3
(0461) if (JS_001>=33)
03EF 91800070 LDS R24,0x70
03F1 3281 CPI R24,0x21
03F2 F010 BCS 0x03F5
(0462) HC573_CLK_PORTC&=~HC573_CLK; // PC4 =0
03F3 98AC CBI 0x15,4
03F4 C027 RJMP 0x041C
(0463) else
(0464) HC573_CLK_PORTC|=HC573_CLK; // PC4 =1
03F5 9AAC SBI 0x15,4
(0465) }
03F6 C025 RJMP 0x041C
(0466) else if (JS_001>40,JS_001<=50)
03F7 E382 LDI R24,0x32
03F8 90200070 LDS R2,0x70
03FA 1582 CP R24,R2
03FB F100 BCS 0x041C
(0467) {
(0468) HC573_CLK_PORTC|=HC573_CLK; // PC4 =1
03FC 9AAC SBI 0x15,4
(0469) LED_SCAN_PORTB=0xff;
03FD EF8F LDI R24,0xFF
03FE BB88 OUT 0x18,R24
(0470) LED_DATA_PORTA|=0Xff;
03FF B38B IN R24,0x1B
0400 6F8F ORI R24,0xFF
0401 BB8B OUT 0x1B,R24
(0471) LED_DATA_PORTA&=LED_DATA[LED_DISPLAY_V5];
0402 E680 LDI R24,0x60
0403 E090 LDI R25,0
0404 91E0007F LDS R30,0x7F
0406 27FF CLR R31
0407 0FE8 ADD R30,R24
0408 1FF9 ADC R31,R25
0409 8020 LDD R2,Z+0
040A B23B IN R3,0x1B
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -