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

📄 fp_lut.lis

📁 sunplus spca514 cdmp3 源码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                         .module fp_lut.c
                         .area data(ram, con, rel)
 0000                 _repeat::
 0000                   .blkb 1
                         .area idata
 0000 00                .byte 0
                         .area data(ram, con, rel)
 0001                   .dbfile D:\avrmcu\AT980\fp_lut.c
 0001                   .dbsym s repeat _repeat c
                         .area lit(rom, con, rel)
 0000                 _repeat_key::
 0000 0200              .word 2
 0002 0000              .word 0
 0004                   .dbsym s repeat_key _repeat_key A[4:2]i
                         .area text(rom, con, rel)
 0000                   .dbfile D:\avrmcu\AT980\fp_lut.c
 0000                   .dbfunc s is_repeat_ui_key _is_repeat_ui_key fI
                       ;              i -> R20
                       ;          value -> R16,R17
                         .even
 0000                 _is_repeat_ui_key::
 0000 0E940000          xcall push_gset1
 0004                   .dbline -1
 0004                   .dbline 15
                       ; #include "nec_fp.h"
                       ; #include "key.h"
                       ; #include "main.h"
                       ; extern unsigned char work_mode;
                       ; extern unsigned char p_keycode[BYTES_USED_TO_SCANKEY];
                       ; extern unsigned int key_buff,dvd_key;
                       ; unsigned char  repeat=0;
                       ; #define REPEAT_DELAY 3
                       ; #define REPEAT_KEY_CNT  2
                       ; const unsigned int repeat_key[REPEAT_KEY_CNT]=
                       ; {
                       ;  IRKC_VOLUME_UP,IRKC_VOLUME_DOWN
                       ; };
                       ; unsigned char is_repeat_ui_key(unsigned int value)
                       ; {
 0004                   .dbline 17
                       ;  unsigned char i;
                       ;  for(i=0;i<REPEAT_KEY_CNT;i++)
 0004 4427              clr R20
 0006 12C0              xjmp L5
 0008                 L2:
 0008                   .dbline 18
                       ;  {
 0008                   .dbline 19
                       ;   if(value==repeat_key[i])
 0008 80E0              ldi R24,<_repeat_key
 000A 90E0              ldi R25,>_repeat_key
 000C E42F              mov R30,R20
 000E FF27              clr R31
 0010 EE0F              lsl R30
 0012 FF1F              rol R31
 0014 E80F              add R30,R24
 0016 F91F              adc R31,R25
 0018 0590              lpm R0,Z+
 001A 1490              lpm R1,Z
 001C F001              movw R30,R0
 001E 0E17              cp R16,R30
 0020 1F07              cpc R17,R31
 0022 19F4              brne L6
 0024                   .dbline 20
                       ;     return 1;
 0024 01E0              ldi R16,1
 0026 10E0              ldi R17,0
 0028 05C0              xjmp L1
 002A                 L6:
 002A                   .dbline 21
 002A                 L3:
 002A                   .dbline 17
 002A 4395              inc R20
 002C                 L5:
 002C                   .dbline 17
 002C 4230              cpi R20,2
 002E 60F3              brlo L2
 0030                   .dbline 22
                       ;  }
                       ;  return 0;                           
 0030 0027              clr R16
 0032 1127              clr R17
 0034                   .dbline -2
 0034                 L1:
 0034 0E940000          xcall pop_gset1
 0038                   .dbline 0 ; func end
 0038 0895              ret
 003A                   .dbsym r i 20 c
 003A                   .dbsym r value 16 i
                         .area data(ram, con, rel)
 0001                   .dbfile D:\avrmcu\AT980\fp_lut.c
 0001                 L9:
 0001                   .blkb 2
                         .area idata
 0001 0000              .word 0
                         .area data(ram, con, rel)
 0003                   .dbfile D:\avrmcu\AT980\fp_lut.c
 0003                 L10:
 0003                   .blkb 1
                         .area idata
 0003 00                .byte 0
                         .area data(ram, con, rel)
 0004                   .dbfile D:\avrmcu\AT980\fp_lut.c
 0004                 L11:
 0004                   .blkb 1
                         .area idata
 0004 00                .byte 0
                         .area data(ram, con, rel)
 0005                   .dbfile D:\avrmcu\AT980\fp_lut.c
                         .area text(rom, con, rel)
 003A                   .dbfile D:\avrmcu\AT980\fp_lut.c
 003A                   .dbfunc s fp_key_scan2 _fp_key_scan2 fI
 003A                   .dbsym s longkeyflag L11 c
 003A                   .dbsym s key_time L10 c
 003A                   .dbsym s LastFPKey L9 i
                       ;     Fp_KeyCode -> R20,R21
                       ;              i -> R22,R23
                         .even
 003A                 _fp_key_scan2::
 003A 0E940000          xcall push_gset2
 003E                   .dbline -1
 003E                   .dbline 26
                       ; }
                       ; 
                       ; void fp_key_scan2(void)
                       ; {
 003E                   .dbline 29
                       ;     unsigned int i;
                       ;     static unsigned int  LastFPKey= 0;
                       ;     unsigned int  Fp_KeyCode = 0;
 003E 4427              clr R20
 0040 5527              clr R21
 0042                   .dbline 33
                       ;     static unsigned char key_time=0,longkeyflag=0;
                       ;     
                       ;     
                       ;     VFD_LL_ReadKeyScan();
 0042 0E940000          xcall _VFD_LL_ReadKeyScan
 0046                   .dbline 34
                       ;     Fp_KeyCode = 0;
 0046                   .dbline 35
                       ;     for (i=0; i<BYTES_USED_TO_SCANKEY; i++) 
 0046 6627              clr R22
 0048 7727              clr R23
 004A 15C0              xjmp L15
 004C                 L12:
 004C                   .dbline 36
                       ;         if (p_keycode[i])  
 004C 80E0              ldi R24,<_p_keycode
 004E 90E0              ldi R25,>_p_keycode
 0050 FB01              movw R30,R22
 0052 E80F              add R30,R24
 0054 F91F              adc R31,R25
 0056 2080              ldd R2,z+0
 0058 2220              tst R2
 005A 59F0              breq L16
 005C                   .dbline 37
                       ;             Fp_KeyCode = ((unsigned int)p_keycode[i] |(i+1)<<8);
 005C FB01              movw R30,R22
 005E E80F              add R30,R24
 0060 F91F              adc R31,R25
 0062 4081              ldd R20,z+0
 0064 5527              clr R21
 0066 CB01              movw R24,R22
 0068 0196              adiw R24,1
 006A 982F              mov R25,R24
 006C 8827              clr R24
 006E 482B              or R20,R24
 0070 592B              or R21,R25
 0072                 L16:
 0072                 L13:
 0072                   .dbline 35
 0072 6F5F              subi R22,255  ; offset = 1
 0074 7F4F              sbci R23,255
 0076                 L15:
 0076                   .dbline 35
 0076 6430              cpi R22,4
 0078 E0E0              ldi R30,0
 007A 7E07              cpc R23,R30
 007C 38F3              brlo L12
 007E                   .dbline 39
                       ; 
                       ;     if(Fp_KeyCode==272) Fp_KeyCode = 0;
 007E 4031              cpi R20,16
 0080 E1E0              ldi R30,1
 0082 5E07              cpc R21,R30
 0084 11F4              brne L18
 0086                   .dbline 39
 0086 4427              clr R20
 0088 5527              clr R21
 008A                 L18:
 008A                   .dbline 40
                       ;     if(Fp_KeyCode ==0)
 008A 4030              cpi R20,0
 008C 4507              cpc R20,R21
 008E 61F5              brne L20
 0090                   .dbline 41
                       ;     {
 0090                   .dbline 42
                       ;         repeat = 0;
 0090 2224              clr R2
 0092 20920000          sts _repeat,R2
 0096                   .dbline 45
                       ;         //Fp_KeyCode =LastFPKey;//temp_FpKey;
                       ;         //LastFPKey = 0;
                       ;         if(work_mode<2)
 0096 80910000          lds R24,_work_mode
 009A 8230              cpi R24,2
 009C F0F4              brsh L22
 009E                   .dbline 46
                       ;         {
 009E                   .dbline 47
                       ;          if((LastFPKey == FPKC_NEXT)||(LastFPKey == FPKC_PREV))
 009E 90910200          lds R25,L9+1
 00A2 80910100          lds R24,L9
 00A6 8032              cpi R24,32
 00A8 E1E0              ldi R30,1
 00AA 9E07              cpc R25,R30
 00AC 21F0              breq L26
 00AE 8033              cpi R24,48
 00B0 E1E0              ldi R30,1
 00B2 9E07              cpc R25,R30
 00B4 91F4              brne L24
 00B6                 L26:
 00B6                   .dbline 48
                       ;          {
 00B6                   .dbline 49
                       ;           if(longkeyflag)
 00B6 20900400          lds R2,L11
 00BA 2220              tst R2
 00BC 51F0              breq L27
 00BE                   .dbline 50
                       ;           {
 00BE                   .dbline 51
                       ;             longkeyflag = 0;
 00BE 2224              clr R2
 00C0 20920400          sts L11,R2
 00C4                   .dbline 52
                       ;             if(work_mode==DVD_MODE)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -