📄 m8demo.lis
字号:
046A X6:
046A 4130 cpi R20,1
046C E0E0 ldi R30,0
046E 5E07 cpc R21,R30
0470 81F1 breq L68
0472 4230 cpi R20,2
0474 E0E0 ldi R30,0
0476 5E07 cpc R21,R30
0478 09F4 brne X8
047A 39C0 rjmp L71
047C X8:
047C 4330 cpi R20,3
047E E0E0 ldi R30,0
0480 5E07 cpc R21,R30
0482 09F4 brne X9
0484 41C0 rjmp L74
0486 X9:
0486 4430 cpi R20,4
0488 E0E0 ldi R30,0
048A 5E07 cpc R21,R30
048C 09F4 brne X10
048E 49C0 rjmp L77
0490 X10:
0490 4530 cpi R20,5
0492 E0E0 ldi R30,0
0494 5E07 cpc R21,R30
0496 09F4 brne X11
0498 51C0 rjmp L80
049A X11:
049A 4630 cpi R20,6
049C E0E0 ldi R30,0
049E 5E07 cpc R21,R30
04A0 09F4 brne X12
04A2 64C0 rjmp L83
04A4 X12:
04A4 7AC0 rjmp L63
04A6 X7:
04A6 .dbline 328
04A6 ; {
04A6 L65:
04A6 .dbline 330
04A6 ; case KBD_IDLE:
04A6 ; {
04A6 .dbline 331
04A6 ; key_value=key_no;
04A6 8FEF ldi R24,255
04A8 80930700 sts _key_value,R24
04AC .dbline 332
04AC ; key_pressed=false;
04AC 2224 clr R2
04AE 20920600 sts _key_pressed,R2
04B2 .dbline 333
04B2 ; key_value=Key_Decode();
04B2 AADF rcall _Key_Decode
04B4 00930700 sts _key_value,R16
04B8 .dbline 334
04B8 ; if(key_value!=key_no)
04B8 0F3F cpi R16,255
04BA 09F4 brne X13
04BC 6EC0 rjmp L63
04BE X13:
04BE .dbline 335
04BE ; {
04BE .dbline 336
04BE ; key_state = KBD_DEBOUNCE;
04BE 81E0 ldi R24,1
04C0 80930800 sts _key_state,R24
04C4 .dbline 337
04C4 ; key_tick=0;
04C4 2224 clr R2
04C6 3324 clr R3
04C8 30920A00 sts _key_tick+1,R3
04CC 20920900 sts _key_tick,R2
04D0 .dbline 339
04D0 ;
04D0 ; }
04D0 .dbline 340
04D0 ; break;
04D0 64C0 rjmp L63
04D2 L68:
04D2 .dbline 345
04D2 ; }
04D2 ;
04D2 ; case KBD_DEBOUNCE:
04D2 ;
04D2 ; {
04D2 .dbline 347
04D2 ;
04D2 ; if (key_tick > KBD_DEBOUNCE_TEMPO)
04D2 82E3 ldi R24,50
04D4 90E0 ldi R25,0
04D6 20900900 lds R2,_key_tick
04DA 30900A00 lds R3,_key_tick+1
04DE 8215 cp R24,R2
04E0 9305 cpc R25,R3
04E2 08F0 brlo X14
04E4 5AC0 rjmp L63
04E6 X14:
04E6 .dbline 348
04E6 ; key_state = KBD_DECODE;
04E6 82E0 ldi R24,2
04E8 80930800 sts _key_state,R24
04EC .dbline 350
04EC ;
04EC ; break;
04EC 56C0 rjmp L63
04EE L71:
04EE .dbline 354
04EE ; }
04EE ;
04EE ; case KBD_DECODE:
04EE ; {
04EE .dbline 356
04EE ;
04EE ; if(key_value==Key_Decode())
04EE 8CDF rcall _Key_Decode
04F0 20900700 lds R2,_key_value
04F4 2016 cp R2,R16
04F6 21F4 brne L72
04F8 .dbline 357
04F8 ; {
04F8 .dbline 361
04F8 ; //if(( key_value==key_dec)||(key_value==key_inc))
04F8 ; // key_state = KBD_DECODE5;
04F8 ; //else
04F8 ; key_state = KBD_DECODE2;
04F8 83E0 ldi R24,3
04FA 80930800 sts _key_state,R24
04FE .dbline 364
04FE ;
04FE ;
04FE ; }
04FE 4DC0 rjmp L63
0500 L72:
0500 .dbline 366
0500 ; else
0500 ; key_state = KBD_IDLE;
0500 2224 clr R2
0502 20920800 sts _key_state,R2
0506 .dbline 367
0506 ; break;
0506 49C0 rjmp L63
0508 L74:
0508 .dbline 371
0508 ; }
0508 ;
0508 ; case KBD_DECODE2:
0508 ; {
0508 .dbline 372
0508 ; if(key_value!=Key_Decode())
0508 7FDF rcall _Key_Decode
050A 20900700 lds R2,_key_value
050E 2016 cp R2,R16
0510 09F4 brne X15
0512 43C0 rjmp L63
0514 X15:
0514 .dbline 373
0514 ; {key_pressed = true;
0514 .dbline 373
0514 81E0 ldi R24,1
0516 80930600 sts _key_pressed,R24
051A .dbline 374
051A ; key_state = KBD_IDLE;
051A 2224 clr R2
051C 20920800 sts _key_state,R2
0520 .dbline 375
0520 ; }
0520 .dbline 376
0520 ; break;
0520 3CC0 rjmp L63
0522 L77:
0522 .dbline 380
0522 ; }
0522 ;
0522 ; case KBD_DECODE3:
0522 ; {
0522 .dbline 381
0522 ; if (key_tick > KBD_DEBOUNCE_TEMP1)
0522 8CE2 ldi R24,300
0524 91E0 ldi R25,1
0526 20900900 lds R2,_key_tick
052A 30900A00 lds R3,_key_tick+1
052E 8215 cp R24,R2
0530 9305 cpc R25,R3
0532 98F5 brsh L63
0534 .dbline 382
0534 ; key_state = KBD_DECODE5;
0534 86E0 ldi R24,6
0536 80930800 sts _key_state,R24
053A .dbline 383
053A ; break;
053A 2FC0 rjmp L63
053C L80:
053C .dbline 387
053C ; }
053C ;
053C ; case KBD_DECODE4:
053C ; {
053C .dbline 389
053C ;
053C ; key_pressed = true;
053C 81E0 ldi R24,1
053E 80930600 sts _key_pressed,R24
0542 .dbline 390
0542 ; key_state = KBD_DECODE3;
0542 84E0 ldi R24,4
0544 80930800 sts _key_state,R24
0548 .dbline 391
0548 ; key_tick=0;
0548 2224 clr R2
054A 3324 clr R3
054C 30920A00 sts _key_tick+1,R3
0550 20920900 sts _key_tick,R2
0554 .dbline 392
0554 ; if(key_value!=Key_Decode())
0554 59DF rcall _Key_Decode
0556 20900700 lds R2,_key_value
055A 2016 cp R2,R16
055C F1F0 breq L63
055E .dbline 393
055E ; {
055E .dbline 394
055E ; key_pressed = true;
055E 81E0 ldi R24,1
0560 80930600 sts _key_pressed,R24
0564 .dbline 395
0564 ; key_state = KBD_IDLE;
0564 2224 clr R2
0566 20920800 sts _key_state,R2
056A .dbline 396
056A ; }
056A .dbline 397
056A ; break;
056A 17C0 rjmp L63
056C L83:
056C .dbline 400
056C ; }
056C ; case KBD_DECODE5:
056C ; {
056C .dbline 402
056C ;
056C ; if (key_tick > KBD_DEBOUNCE_TEMP1)
056C 8CE2 ldi R24,300
056E 91E0 ldi R25,1
0570 20900900 lds R2,_key_tick
0574 30900A00 lds R3,_key_tick+1
0578 8215 cp R24,R2
057A 9305 cpc R25,R3
057C 18F4 brsh L84
057E .dbline 403
057E ; key_state = KBD_DECODE4;
057E 85E0 ldi R24,5
0580 80930800 sts _key_state,R24
0584 L84:
0584 .dbline 404
0584 41DF rcall _Key_Decode
0586 20900700 lds R2,_key_value
058A 2016 cp R2,R16
058C 31F0 breq L63
058E .dbline 405
058E .dbline 406
058E 81E0 ldi R24,1
0590 80930600 sts _key_pressed,R24
0594 .dbline 407
0594 2224 clr R2
0596 20920800 sts _key_state,R2
059A .dbline 408
059A .dbline 410
059A .dbline 413
059A L63:
059A .dbline -2
059A L61:
059A 00D0 rcall pop_gset1
059C .dbline 0 ; func end
059C 0895 ret
059E .dbend
059E .dbfunc e UserApplication _UserApplication fV
059E ; nn -> <dead>
.even
059E _UserApplication::
059E 00D0 rcall push_gset5
05A0 2297 sbiw R28,2
05A2 .dbline -1
05A2 .dbline 421
05A2 ; if(key_value!=Key_Decode())
05A2 ; {
05A2 ; key_pressed = true;
05A2 ; key_state = KBD_IDLE;
05A2 ; }
05A2 ;
05A2 ; break;
05A2 ; }
05A2 ;
05A2 ; default: break;
05A2 ; }
05A2 ;
05A2 ;
05A2 ; }
05A2 ;
05A2 ;
05A2 ; void UserApplication(void)
05A2 ; {
05A2 .dbline 422
05A2 ; unsigned char nn;;
05A2 .dbline 423
05A2 ; init_devices();
05A2 60DE rcall _init_devices
05A4 .dbline 424
05A4 ; TimerCount=0;
05A4 2224 clr R2
05A6 3324 clr R3
05A8 30920E00 sts _TimerCount+1,R3
05AC 20920D00 sts _TimerCount,R2
05B0 .dbline 425
05B0 ; TimerCountOld=0;
05B0 30920C00 sts _TimerCountOld+1,R3
05B4 20920B00 sts _TimerCountOld,R2
05B8 .dbline 426
05B8 ; key_state=KBD_IDLE;
05B8 20920800 sts _key_state,R2
05BC .dbline 427
05BC ; mode_state=0;
05BC 20920500 sts _mode_state,R2
05C0 .dbline 428
05C0 ; PutChar(0x0a);
05C0 0AE0 ldi R16,10
05C2 00D0 rcall _PutChar
05C4 .dbline 429
05C4 ; PutChar(0x0d);
05C4 0DE0 ldi R16,13
05C6 00D0 rcall _PutChar
05C8 .dbline 430
05C8 ; PutStr("富友勤电子M8DEMO");
05C8 00E0 ldi R16,<L89
05CA 10E0 ldi R17,>L89
05CC 00D0 rcall _PutStr
05CE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -