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

📄 kbc.lis

📁 单片机pc8535开发程序 (利用iccavr等开发工具开发)
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 016A C895              lpm
 016C 002D              mov R16,R0
 016E 48DF              rcall _put_kbbuff
 0170                   .dbline 79
                       ;                      }
 0170 33C0              rjmp L30
 0172                 L29:
 0172                   .dbline 81
                       ;                   else
                       ;                      {
 0172                   .dbline 82
 0172 4427              clr R20
 0174 01C0              rjmp L42
 0176                 L39:
 0176                   .dbline 82
 0176                 L40:
 0176                   .dbline 82
 0176 4395              inc R20
 0178                 L42:
 0178                   .dbline 82
                       ;                      for(i = 0;shifted[i][0]!=sc && shifted[i][0]; i++);
 0178 80E0              ldi R24,<_shifted
 017A 90E0              ldi R25,>_shifted
 017C 242E              mov R2,R20
 017E 3324              clr R3
 0180 220C              lsl R2
 0182 331C              rol R3
 0184 280E              add R2,R24
 0186 391E              adc R3,R25
 0188 E22D              mov R30,R2
 018A F32D              mov R31,R3
 018C C895              lpm
 018E 202C              mov R2,R0
 0190 3324              clr R3
 0192 462E              mov R4,R22
 0194 5524              clr R5
 0196 2414              cp R2,R4
 0198 3504              cpc R3,R5
 019A 21F0              breq L43
 019C 2220              tst R2
 019E 59F7              brne L39
 01A0 3320              tst R3
 01A2 49F7              brne L39
 01A4                 L43:
 01A4                   .dbline 83
                       ;                      if (shifted[i][0] == sc)
 01A4 80E0              ldi R24,<_shifted
 01A6 90E0              ldi R25,>_shifted
 01A8 242E              mov R2,R20
 01AA 3324              clr R3
 01AC 220C              lsl R2
 01AE 331C              rol R3
 01B0 280E              add R2,R24
 01B2 391E              adc R3,R25
 01B4 E22D              mov R30,R2
 01B6 F32D              mov R31,R3
 01B8 C895              lpm
 01BA 0616              cp R0,R22
 01BC 69F4              brne L44
 01BE                   .dbline 84
                       ;                          {
 01BE                   .dbline 85
                       ;                           put_kbbuff(shifted[i][1]);                          
 01BE 80E0              ldi R24,<_shifted+1
 01C0 90E0              ldi R25,>_shifted+1
 01C2 242E              mov R2,R20
 01C4 3324              clr R3
 01C6 220C              lsl R2
 01C8 331C              rol R3
 01CA 280E              add R2,R24
 01CC 391E              adc R3,R25
 01CE E22D              mov R30,R2
 01D0 F32D              mov R31,R3
 01D2 C895              lpm
 01D4 002D              mov R16,R0
 01D6 14DF              rcall _put_kbbuff
 01D8                   .dbline 86
                       ;                          }                               
 01D8                 L44:
 01D8                   .dbline 87
                       ;                      } 
 01D8                 L30:
 01D8                   .dbline 88
                       ;                  }               
 01D8                   .dbline 89
                       ;         }   
 01D8                   .dbline -2
 01D8                   .dbline 90
                       ;     }
 01D8                 L10:
 01D8 00D0              rcall pop_gset3
 01DA                   .dbline 0 ; func end
 01DA 0895              ret
 01DC                   .dbsym r i 20 c
 01DC                   .dbsym r sc 22 c
                         .area vector(rom, abs)
                         .org 2
 0002 EEC0              rjmp _int0_isr
                         .area text(rom, con, rel)
 01DC                   .dbfile D:\ICC-AVR\examples.sl\pc_8535\kbc.c
                         .area bss(ram, con, rel)
 0003                   .dbfile D:\ICC-AVR\examples.sl\pc_8535\kbc.c
 0003                 L49:
 0003                   .blkb 1
                         .area text(rom, con, rel)
 01DC                   .dbfile D:\ICC-AVR\examples.sl\pc_8535\kbc.c
 01DC                   .dbfunc s int0_isr _int0_isr fI
 01DC                   .dbsym s data L49 c
                         .even
 01DC                 _int0_isr::
 01DC 00D0              rcall push_lset
 01DE 00D0              rcall push_gset1
 01E0                   .dbline -1
 01E0                   .dbline 94
                       ; //键盘数据读取程序  
                       ; #pragma interrupt_handler int0_isr:2
                       ; void int0_isr(void)
                       ;    {
 01E0                   .dbline 96
                       ;     static unsigned char data;      
                       ;     switch (bitcount)
 01E0 40914400          lds R20,_bitcount
 01E4 5527              clr R21
 01E6 4130              cpi R20,1
 01E8 E0E0              ldi R30,0
 01EA 5E07              cpc R21,R30
 01EC E1F0              breq L57
 01EE 4230              cpi R20,2
 01F0 E0E0              ldi R30,0
 01F2 5E07              cpc R21,R30
 01F4 91F0              breq L56
 01F6 4130              cpi R20,1
 01F8 E0E0              ldi R30,0
 01FA 5E07              cpc R21,R30
 01FC 34F1              brlt L50
 01FE                 L62:
 01FE 4B30              cpi R20,11
 0200 E0E0              ldi R30,0
 0202 5E07              cpc R21,R30
 0204 09F0              breq L53
 0206 21C0              rjmp L50
 0208                 X5:
 0208                   .dbline 97
                       ;       {
 0208                 L53:
 0208                   .dbline 98
                       ;        case 11:{
 0208                   .dbline 99
                       ;                 if ((PIN_KB&(1<<DATAPIN))!=0)
 0208 839B              sbis 0x10,3
 020A 01C0              rjmp L54
 020C                   .dbline 100
                       ;                      return;
 020C 2EC0              rjmp L48
 020E                 L54:
 020E                   .dbline 102
                       ;                 else         
                       ;                     bitcount--;
 020E 80914400          lds R24,_bitcount
 0212 8150              subi R24,1
 0214 80934400          sts _bitcount,R24
 0218                   .dbline 103
                       ;                 break;}
 0218 28C0              rjmp L51
 021A                 L56:
 021A                   .dbline 104
                       ;        case 2:{
 021A                   .dbline 105
                       ;                 bitcount--;            
 021A 80914400          lds R24,_bitcount
 021E 8150              subi R24,1
 0220 80934400          sts _bitcount,R24
 0224                   .dbline 106
                       ;                 break;}
 0224 22C0              rjmp L51
 0226                 L57:
 0226                   .dbline 107
                       ;        case 1:{
 0226                   .dbline 108
                       ;                 bitcount--;  
 0226 80914400          lds R24,_bitcount
 022A 8150              subi R24,1
 022C 80934400          sts _bitcount,R24
 0230                   .dbline 109
                       ;                 if ((PIN_KB&(1<<DATAPIN))==0)
 0230 8399              sbic 0x10,3
 0232 04C0              rjmp L58
 0234                   .dbline 110
                       ;                     {
 0234                   .dbline 111
                       ;                      bitcount=11;
 0234 8BE0              ldi R24,11
 0236 80934400          sts _bitcount,R24
 023A                   .dbline 112
                       ;                      return;
 023A 17C0              rjmp L48
 023C                 L58:
 023C                   .dbline 115
                       ;                     }
                       ;                 else
                       ;                    {
 023C                   .dbline 116
                       ;                     bitcount=11;
 023C 8BE0              ldi R24,11
 023E 80934400          sts _bitcount,R24
 0242                   .dbline 117
                       ;                     decode(data);
 0242 00910300          lds R16,L49
 0246 16DF              rcall _decode
 0248                   .dbline 118
                       ;                    }      
 0248                   .dbline 119
                       ;                 break;}
 0248 10C0              rjmp L51
 024A                 L50:
 024A                   .dbline 120
                       ;        default:{
 024A                   .dbline 121
                       ;                 data = (data >> 1);
 024A 20900300          lds R2,L49
 024E 2694              lsr R2
 0250 20920300          sts L49,R2
 0254                   .dbline 122
                       ;                 if((PIN_KB&(1<<DATAPIN))!=0)
 0254 839B              sbis 0x10,3
 0256 04C0              rjmp L60
 0258                   .dbline 123
                       ;                     data|=0x80;
 0258 822D              mov R24,R2
 025A 8068              ori R24,128
 025C 80930300          sts L49,R24
 0260                 L60:
 0260                   .dbline 124
 0260 80914400          lds R24,_bitcount
 0264 8150              subi R24,1
 0266 80934400          sts _bitcount,R24
 026A                   .dbline 125
 026A                   .dbline 126
 026A                 L51:
 026A                   .dbline -2
 026A                   .dbline 127
                       ;                 bitcount--;
                       ;                 }       
                       ;       }                     
                       ;     } 
 026A                 L48:
 026A 00D0              rcall pop_gset1
 026C 00D0              rcall pop_lset
 026E                   .dbline 0 ; func end
 026E 1895              reti
                         .area bss(ram, con, rel)
 0004                   .dbfile D:\ICC-AVR\examples.sl\pc_8535\kbc.c
 0004                 _kb_buffer::
 0004                   .blkb 64
 0044                   .dbsym s kb_buffer _kb_buffer A[64:64]c
 0044                 _bitcount::
 0044                   .blkb 1
 0045                   .dbsym s bitcount _bitcount c

⌨️ 快捷键说明

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