📄 led.s
字号:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbend
.dbfunc e LED_DISPLAY_UP_DMX512 _LED_DISPLAY_UP_DMX512 fV
.even
_LED_DISPLAY_UP_DMX512::
.dbline -1
.dbline 296
; //----------------UP_DMX512-------------------------------------
; void LED_DISPLAY_UP_DMX512()
; {
.dbline 297
; if (LED_DISPLAY_V2==5)
lds R24,_LED_DISPLAY_V2
cpi R24,5
brne L39
.dbline 298
; {
.dbline 299
; if (LED_DISPLAY_V3==1)
lds R24,_LED_DISPLAY_V3
cpi R24,1
brne L41
.dbline 300
; {
.dbline 301
; if (LED_DISPLAY_V4==2)
lds R24,_LED_DISPLAY_V4
cpi R24,2
brne L43
.dbline 302
; {
.dbline 303
; LED_DISPLAY_V2=0;
.dbline 304
; LED_DISPLAY_V3=0;
.dbline 305
; LED_DISPLAY_V4=0;
clr R2
sts _LED_DISPLAY_V2,R2
sts _LED_DISPLAY_V3,R2
sts _LED_DISPLAY_V4,R2
.dbline 306
; }
L43:
.dbline 307
; }
L41:
.dbline 308
; }
L39:
.dbline 309
; if (LED_DISPLAY_V4==9)
lds R24,_LED_DISPLAY_V4
cpi R24,9
brne L45
.dbline 310
; {
.dbline 311
; LED_DISPLAY_V4=0;
.dbline 312
; if (LED_DISPLAY_V3==9)
clr R2
sts _LED_DISPLAY_V4,R2
lds R24,_LED_DISPLAY_V3
cpi R24,9
brne L47
.dbline 313
; {
.dbline 314
; LED_DISPLAY_V3=0;
.dbline 315
; LED_DISPLAY_V2=++LED_DISPLAY_V2;
sts _LED_DISPLAY_V3,R2
lds R24,_LED_DISPLAY_V2
subi R24,255 ; addi 1
mov R2,R24
sts _LED_DISPLAY_V2,R2
sts _LED_DISPLAY_V2,R2
.dbline 316
; }
xjmp L46
L47:
.dbline 318
; else
; LED_DISPLAY_V3=++LED_DISPLAY_V3;
lds R24,_LED_DISPLAY_V3
subi R24,255 ; addi 1
mov R2,R24
sts _LED_DISPLAY_V3,R2
sts _LED_DISPLAY_V3,R2
.dbline 319
; }
xjmp L46
L45:
.dbline 321
lds R24,_LED_DISPLAY_V4
subi R24,255 ; addi 1
mov R2,R24
sts _LED_DISPLAY_V4,R2
sts _LED_DISPLAY_V4,R2
L46:
.dbline -2
.dbline 322
; else
; LED_DISPLAY_V4=++LED_DISPLAY_V4;
; }
L38:
.dbline 0 ; func end
ret
.dbend
.dbfunc e KEY_CHK_DOWN _KEY_CHK_DOWN fV
.even
_KEY_CHK_DOWN::
xcall push_gset2
sbiw R28,4
.dbline -1
.dbline 326
; ////////////////////////////////DOWN/////////////////////////////////////////////////////////////////////////
;
; void KEY_CHK_DOWN()
; {
.dbline 328
;
; KEY_BANK=KEY_INPUT; // 取PINC值
.dbline 329
; KEY_BANK=KEY_BANK>>3;
.dbline 330
; KEY_BANK&=0X01; // 取DOWN 值
.dbline 331
; if (KEY_BANK==0) //press on do it
in R2,0x13
sts _KEY_BANK,R2
lsr R2
lsr R2
lsr R2
sts _KEY_BANK,R2
mov R24,R2
andi R24,1
sts _KEY_BANK,R24
tst R24
breq X1
xjmp L50
X1:
.dbline 332
; {
.dbline 334
;
; JS_PRESS_OFF_DOWN==0;
.dbline 336
;
; if (JS_PRESS_DOWN_ON_1==0) //press on yes first times
lds R2,_JS_PRESS_DOWN_ON_1
tst R2
brne L52
.dbline 337
; {
.dbline 338
; JS_PRESS_DOWN_ON_1=1;
.dbline 339
; JS_PRESS_ON_DOWN=0;
.dbline 340
; JS_PRESS_ON_DOWN_FAST=0;
.dbline 341
; JS_PRESS_ON_DOWN_10000=0;
.dbline 342
; LED_DISPLAY_DOWN_DMX512();
ldi R24,1
sts _JS_PRESS_DOWN_ON_1,R24
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
sts _JS_PRESS_ON_DOWN+1,R21
sts _JS_PRESS_ON_DOWN,R20
sts _JS_PRESS_ON_DOWN+2+1,R23
sts _JS_PRESS_ON_DOWN+2,R22
clr R2
clr R3
sts _JS_PRESS_ON_DOWN_FAST+1,R3
sts _JS_PRESS_ON_DOWN_FAST,R2
sts _JS_PRESS_ON_DOWN_10000,R2
xcall _LED_DISPLAY_DOWN_DMX512
.dbline 347
;
; // JS_DOWN_MODE=++JS_DOWN_MODE;
; // if (JS_DOWN_MODE==4)
; // JS_DOWN_MODE=0;
; }
xjmp L51
L52:
.dbline 349
; else
; {
.dbline 350
; if (JS_PRESS_ON_DOWN_10000==1)
lds R24,_JS_PRESS_ON_DOWN_10000
cpi R24,1
brne L54
.dbline 351
; {
.dbline 352
; if (JS_PRESS_ON_DOWN_FAST==2000)
lds R24,_JS_PRESS_ON_DOWN_FAST
lds R25,_JS_PRESS_ON_DOWN_FAST+1
cpi R24,208
ldi R30,7
cpc R25,R30
brne L56
.dbline 353
; {
.dbline 354
; JS_PRESS_ON_DOWN_FAST=0;
.dbline 355
; LED_DISPLAY_DOWN_DMX512();
clr R2
clr R3
sts _JS_PRESS_ON_DOWN_FAST+1,R3
sts _JS_PRESS_ON_DOWN_FAST,R2
xcall _LED_DISPLAY_DOWN_DMX512
.dbline 356
; }
xjmp L57
L56:
.dbline 358
; else
; JS_PRESS_ON_DOWN_FAST=++JS_PRESS_ON_DOWN_FAST;
lds R24,_JS_PRESS_ON_DOWN_FAST
lds R25,_JS_PRESS_ON_DOWN_FAST+1
adiw R24,1
sts _JS_PRESS_ON_DOWN_FAST+1,R25
sts _JS_PRESS_ON_DOWN_FAST,R24
sts _JS_PRESS_ON_DOWN_FAST+1,R25
sts _JS_PRESS_ON_DOWN_FAST,R24
L57:
.dbline 359
; }
L54:
.dbline 361
;
; if (JS_PRESS_ON_DOWN==30000)
ldi R20,48
ldi R21,117
ldi R22,0
ldi R23,0
lds R4,_JS_PRESS_ON_DOWN+2
lds R5,_JS_PRESS_ON_DOWN+2+1
lds R2,_JS_PRESS_ON_DOWN
lds R3,_JS_PRESS_ON_DOWN+1
cp R2,R20
cpc R3,R21
cpc R4,R22
cpc R5,R23
brne L58
.dbline 362
; {
.dbline 363
; JS_PRESS_ON_DOWN=0;
.dbline 364
; JS_PRESS_ON_DOWN_10000=1;
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
sts _JS_PRESS_ON_DOWN+1,R21
sts _JS_PRESS_ON_DOWN,R20
sts _JS_PRESS_ON_DOWN+2+1,R23
sts _JS_PRESS_ON_DOWN+2,R22
ldi R24,1
sts _JS_PRESS_ON_DOWN_10000,R24
.dbline 365
; }
xjmp L51
L58:
.dbline 367
; else
; JS_PRESS_ON_DOWN=++JS_PRESS_ON_DOWN;
ldi R20,1
ldi R21,0
ldi R22,0
ldi R23,0
lds R4,_JS_PRESS_ON_DOWN+2
lds R5,_JS_PRESS_ON_DOWN+2+1
lds R2,_JS_PRESS_ON_DOWN
lds R3,_JS_PRESS_ON_DOWN+1
add R2,R20
adc R3,R21
adc R4,R22
adc R5,R23
movw R30,R28
std z+0,R2
std z+1,R3
std z+2,R4
std z+3,R5
movw R30,R28
ldd R2,z+0
ldd R3,z+1
ldd R4,z+2
ldd R5,z+3
sts _JS_PRESS_ON_DOWN+1,R3
sts _JS_PRESS_ON_DOWN,R2
sts _JS_PRESS_ON_DOWN+2+1,R5
sts _JS_PRESS_ON_DOWN+2,R4
movw R30,R28
ldd R2,z+0
ldd R3,z+1
ldd R4,z+2
ldd R5,z+3
sts _JS_PRESS_ON_DOWN+1,R3
sts _JS_PRESS_ON_DOWN,R2
sts _JS_PRESS_ON_DOWN+2+1,R5
sts _JS_PRESS_ON_DOWN+2,R4
.dbline 368
; }
.dbline 369
; }
xjmp L51
L50:
.dbline 371
; else //unpress
; {
.dbline 372
; JS_PRESS_ON_DOWN=0;
.dbline 373
; JS_PRESS_ON_DOWN_10000=0;
.dbline 374
; JS_PRESS_ON_DOWN_FAST=0;
.dbline 375
; JS_PRESS_OFF_DOWN=++JS_PRESS_OFF_DOWN;
.dbline 376
; if (JS_PRESS_OFF_DOWN==2000)
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
sts _JS_PRESS_ON_DOWN+1,R21
sts _JS_PRESS_ON_DOWN,R20
sts _JS_PRESS_ON_DOWN+2+1,R23
sts _JS_PRESS_ON_DOWN+2,R22
clr R2
sts _JS_PRESS_ON_DOWN_10000,R2
clr R3
sts _JS_PRESS_ON_DOWN_FAST+1,R3
sts _JS_PRESS_ON_DOWN_FAST,R2
lds R24,_JS_PRESS_OFF_DOWN
lds R25,_JS_PRESS_OFF_DOWN+1
adiw R24,1
sts _JS_PRESS_OFF_DOWN+1,R25
sts _JS_PRESS_OFF_DOWN,R24
sts _JS_PRESS_OFF_DOWN+1,R25
sts _JS_PRESS_OFF_DOWN,R24
cpi R24,208
ldi R30,7
cpc R25,R30
brne L60
.dbline 377
; {
.dbline 378
; JS_PRESS_DOWN_ON_1=0;
.dbline 379
; JS_PRESS_OFF_DOWN=0;
sts _JS_PRESS_DOWN_ON_1,R2
sts _JS_PRESS_OFF_DOWN+1,R3
sts _JS_PRESS_OFF_DOWN,R2
.dbline 380
; }
L60:
.dbline 381
L51:
.dbline -2
.dbline 383
; }
;
; }
L49:
adiw R28,4
xcall pop_gset2
.dbline 0 ; func end
ret
.dbend
.dbfunc e LED_DISPLAY_DOWN_DMX512 _LED_DISPLAY_DOWN_DMX512 fV
.even
_LED_DISPLAY_DOWN_DMX512::
.dbline -1
.dbline 386
; //----------------------DOWN_DMX512-----------------------
; void LED_DISPLAY_DOWN_DMX512()
; {
.dbline 387
; if (LED_DISPLAY_V2==0)
lds R2,_LED_DISPLAY_V2
tst R2
brne L63
.dbline 388
; {
.dbline 389
; if (LED_DISPLAY_V3==0)
lds R2,_LED_DISPLAY_V3
tst R2
brne L65
.dbline 390
; {
.dbline 391
; if (LED_DISPLAY_V4==1)
lds R24,_LED_DISPLAY_V4
cpi R24,1
brne L67
.dbline 392
; {
.dbline 393
; LED_DISPLAY_V2=5;
.dbline 394
; LED_DISPLAY_V3=1;
.dbline 395
; LED_DISPLAY_V4=3;
ldi R24,5
sts _LED_DISPLAY_V2,R24
ldi R24,1
sts _LED_DISPLAY_V3,R24
ldi R24,3
sts _LED_DISPLAY_V4,R24
.dbline 396
; }
L67:
.dbline 397
; }
L65:
.dbline 398
; }
L63:
.dbline 399
; if (LED_DISPLAY_V4==0)
lds R2,_LED_DISPLAY_V4
tst R2
brne L69
.dbline 400
; {
.dbline 401
; LED_DISPLAY_V4=9;
.dbline 402
; if (LED_DISPLAY_V3==0)
ldi R24,9
sts _LED_DISPLAY_V4,R24
lds R2,_LED_DISPLAY_V3
tst R2
brne L71
.dbline 403
; {
.dbline 404
; LED_DISPLAY_V3=9;
.dbline 405
; LED_DISPLAY_V2=--LED_DISPLAY_V2;
sts _LED_DISPLAY_V3,R24
lds R24,_LED_DISPLAY_V2
subi R24,1
mov R2,R24
sts _LED_DISPLAY_V2,R2
sts _LED_DISPLAY_V2,R2
.dbline 406
; }
xjmp L70
L71:
.dbline 408
; else
; LED_DISPLAY_V3=--LED_DISPLAY_V3;
lds R24,_LED_DISPLAY_V3
subi R24,1
mov R2,R24
sts _LED_DISPLAY_V3,R2
sts _LED_DISPLAY_V3,R2
.dbline 409
; }
xjmp L70
L69:
.dbline 411
lds R24,_LED_DISPLAY_V4
subi R24,1
mov R2,R24
sts _LED_DISPLAY_V4,R2
sts _LED_DISPLAY_V4,R2
L70:
.dbline -2
.dbline 412
; else
; LED_DISPLAY_V4=--LED_DISPLAY_V4;
; }
L62:
.dbline 0 ; func end
ret
.dbend
.dbfunc e LED_SCAN _LED_SCAN fV
.even
_LED_SCAN::
.dbline -1
.dbline 415
; ////////////LED_DISPLAY_SCAN/////////////////////////////////////////////////////////////////////////////////////
; void LED_SCAN()
; {
.dbline 416
; JS_001=++JS_001;
.dbline 418
;
; if (JS_001<=10)
lds R24,_JS_001
subi R24,255 ; addi 1
mov R2,R24
sts _JS_001,R2
sts _JS_001,R2
ldi R24,10
cp R24,R2
brlo L74
.dbline 419
; {
.dbline 420
; HC573_CLK_PORTC|=HC573_CLK; // PC4 =1
sbi 0x15,4
.dbline 421
; LED_SCAN_PORTB|=0xff;
in R24,0x18
ori R24,255
out 0x18,R24
.dbline 422
; LED_SCAN_PORTB&=~LED_V1; //PB0=0
cbi 0x18,0
.dbline 423
; LED_DATA_PORTA&=0X00; //OUT LED_DATA
clr R2
out 0x1b,R2
.dbline 424
; LED_DATA_PORTA|=LED_DATA[LED_DISPLAY_V1];
ldi R24,<_LED_DATA
ldi R25,>_LED_DATA
lds R30,_LED_DISPLAY_V1
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
in R3,0x1b
or R3,R2
out 0x1b,R3
.dbline 425
; if (JS_001>=3)
lds R24,_JS_001
cpi R24,3
brlo L76
.dbline 426
; HC573_CLK_PORTC&=~HC573_CLK; // PC4 =0
cbi 0x15,4
xjmp L75
L76:
.dbline 428
; else
; HC573_CLK_PORTC|=HC573_CLK; // PC4 =1
sbi 0x15,4
.dbline 429
; }
xjmp L75
L74:
.dbline 430
; else if (JS_001>10,JS_001<=20)
ldi R24,20
lds R2,_JS_001
cp R24,R2
brlo L78
.dbline 431
; {
.dbline 432
; HC573_CLK_PORTC|=HC573_CLK; // PC4 =0
sbi 0x15,4
.dbline 433
; LED_SCAN_PORTB|=0xff;
in R24,0x18
ori R24,255
out 0x18,R24
.dbline 434
; LED_SCAN_PORTB&=~LED_V2; //PB1=0
cbi 0x18,1
.dbline 435
; LED_DATA_PORTA&=0X00;
clr R2
out 0x1b,R2
.dbline 436
; LED_DATA_PORTA|=LED_DATA[LED_DISPLAY_V2];
ldi R24,<_LED_DATA
ldi R25,>_LED_DATA
lds R30,_LED_DISPLAY_V2
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
in R3,0x1b
or R3,R2
out 0x1b,R3
.dbline 437
; if (JS_001>=13)
lds R24,_JS_001
cpi R24,13
brlo L80
.dbline 438
; HC573_CLK_PORTC&=~HC573_CLK; // PC4 =0
cbi 0x15,4
xjmp L79
L80:
.dbline 440
; else
; HC573_CLK_PORTC|=HC573_CLK; // PC4 =1
sbi 0x15,4
.dbline 441
; }
xjmp L79
L78:
.dbline 442
; else if (JS_001>20,JS_001<=30)
ldi R24,30
lds R2,_JS_001
cp R24,R2
brlo L82
.dbline 443
; {
.dbline 444
; HC573_CLK_PORTC|=HC573_CLK; // PC4 =1
sbi 0x15,4
.dbline 445
; LED_SCAN_PORTB=0xff;
ldi R24,255
out 0x18,R24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -