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

📄 m8demo.lis

📁 AVR系列被广泛应用的单片机MEGA8开发(原理图)及例程
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -