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

📄 led_m16.lst

📁 51单片机的
💻 LST
📖 第 1 页 / 共 5 页
字号:
(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 + -