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

📄 kb.lis

📁 ATmegal128的混合中断编程
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 015C 82E0              ldi R24,2
 015E 849F              mul R24,R20
 0160 F001              movw R30,R0
 0162 80E0              ldi R24,<_unshifted+1
 0164 90E0              ldi R25,>_unshifted+1
 0166 E80F              add R30,R24
 0168 F91F              adc R31,R25
 016A 0491              lpm R16,Z
 016C 49DF              xcall _put_kbbuff
 016E                   .dbline 89
 016E           ;                                        }
 016E 23C0              xjmp L36
 0170           L35:
 0170                   .dbline 91
 0170           ;                                 else
 0170           ;                                    {
 0170                   .dbline 92
 0170 4427              clr R20
 0172 01C0              xjmp L48
 0174           L45:
 0174                   .dbline 92
 0174           L46:
 0174                   .dbline 92
 0174 4395              inc R20
 0176           L48:
 0176                   .dbline 92
 0176           ;                                        for(i = 0;shifted[i][0]!=sc && shifted[i][0]; i++);
 0176 82E0              ldi R24,2
 0178 849F              mul R24,R20
 017A F001              movw R30,R0
 017C 80E0              ldi R24,<_shifted
 017E 90E0              ldi R25,>_shifted
 0180 E80F              add R30,R24
 0182 F91F              adc R31,R25
 0184 2490              lpm R2,Z
 0186 3324              clr R3
 0188 2616              cp R2,R22
 018A 11F0              breq L49
 018C 2220              tst R2
 018E 91F7              brne L45
 0190           L49:
 0190                   .dbline 93
 0190           ;                      if (shifted[i][0] == sc)
 0190 82E0              ldi R24,2
 0192 849F              mul R24,R20
 0194 F001              movw R30,R0
 0196 80E0              ldi R24,<_shifted
 0198 90E0              ldi R25,>_shifted
 019A E80F              add R30,R24
 019C F91F              adc R31,R25
 019E E491              lpm R30,Z
 01A0 E617              cp R30,R22
 01A2 49F4              brne L50
 01A4                   .dbline 94
 01A4           ;                          {
 01A4                   .dbline 95
 01A4           ;                                                 put_kbbuff(shifted[i][1]);                                              
 01A4 82E0              ldi R24,2
 01A6 849F              mul R24,R20
 01A8 F001              movw R30,R0
 01AA 80E0              ldi R24,<_shifted+1
 01AC 90E0              ldi R25,>_shifted+1
 01AE E80F              add R30,R24
 01B0 F91F              adc R31,R25
 01B2 0491              lpm R16,Z
 01B4 25DF              xcall _put_kbbuff
 01B6                   .dbline 96
 01B6           ;                                                }                                                               
 01B6           L50:
 01B6                   .dbline 97
 01B6           ;                                        } 
 01B6           L36:
 01B6                   .dbline 98
 01B6           ;                        }                       
 01B6                   .dbline 99
 01B6           ;               } 
 01B6                   .dbline -2
 01B6                   .dbline 105
 01B6           ;               /*debug
 01B6           ;        kb_buffer[1]=ascii[sc%16];
 01B6           ;        sc=sc/16;
 01B6           ;        kb_buffer[0]=ascii[sc%16];
 01B6           ;           debug*/     
 01B6           ;     }
 01B6           L10:
 01B6 2296              adiw R28,2
 01B8 0E940000          xcall pop_gset3
 01BC                   .dbline 0 ; func end
 01BC 0895              ret
 01BE                   .dbsym r i 20 c
 01BE                   .dbsym r sc 22 c
 01BE                   .dbend
                        .area vector(rom, abs)
                        .org 20
 0014 0C94DF00          jmp _int4_isr
                        .area text(rom, con, rel)
 01BE                   .dbfile C:\work\mega128\mix_exp\kb.c
                        .area bss(ram, con, rel)
 0003                   .dbfile C:\work\mega128\mix_exp\kb.c
 0003           L55:
 0003                   .blkb 1
                        .area text(rom, con, rel)
 01BE                   .dbfile C:\work\mega128\mix_exp\kb.c
 01BE                   .dbfunc e int4_isr _int4_isr fV
 01BE                   .dbsym s data L55 c
                        .even
 01BE           _int4_isr::
 01BE 0E940000          xcall push_lset
 01C2 0E940000          xcall push_gset1
 01C6                   .dbline -1
 01C6                   .dbline 108
 01C6           ; #pragma interrupt_handler int4_isr:6
 01C6           ; void int4_isr(void)
 01C6           ;    {
 01C6                   .dbline 121
 01C6           ;     static unsigned char data;   
 01C6           ;       /*if((bitcount < 11)&(bitcount > 2))
 01C6           ;        {
 01C6           ;           data = (data >> 1);
 01C6           ;         if((PINE&0x20)!=0)
 01C6           ;            data|=0x80;
 01C6           ;          }   
 01C6           ;     if (--bitcount==0)
 01C6           ;            {
 01C6           ;                 bitcount=11;
 01C6           ;                 decode(data);
 01C6           ;                }*/
 01C6           ;     switch (bitcount)
 01C6 40914400          lds R20,_bitcount
 01CA 5527              clr R21
 01CC 4130              cpi R20,1
 01CE E0E0              ldi R30,0
 01D0 5E07              cpc R21,R30
 01D2 E1F0              breq L63
 01D4 4230              cpi R20,2
 01D6 E0E0              ldi R30,0
 01D8 5E07              cpc R21,R30
 01DA 91F0              breq L62
 01DC 4130              cpi R20,1
 01DE E0E0              ldi R30,0
 01E0 5E07              cpc R21,R30
 01E2 34F1              brlt L56
 01E4           L68:
 01E4 4B30              cpi R20,11
 01E6 E0E0              ldi R30,0
 01E8 5E07              cpc R21,R30
 01EA 09F0              breq L59
 01EC 21C0              xjmp L56
 01EE           X5:
 01EE                   .dbline 122
 01EE           ;         {
 01EE           L59:
 01EE                   .dbline 123
 01EE           ;          case 11:{
 01EE                   .dbline 124
 01EE           ;                   if ((PINE&0x20)!=0)
 01EE 0D9B              sbis 0x1,5
 01F0 01C0              rjmp L60
 01F2                   .dbline 125
 01F2           ;                                    return;
 01F2 2EC0              xjmp L54
 01F4           L60:
 01F4                   .dbline 127
 01F4           ;                           else                 
 01F4           ;                                   bitcount--;
 01F4 80914400          lds R24,_bitcount
 01F8 8150              subi R24,1
 01FA 80934400          sts _bitcount,R24
 01FE                   .dbline 128
 01FE           ;                       break;}
 01FE 28C0              xjmp L57
 0200           L62:
 0200                   .dbline 129
 0200           ;          case 2:{
 0200                   .dbline 130
 0200           ;                               bitcount--;                        
 0200 80914400          lds R24,_bitcount
 0204 8150              subi R24,1
 0206 80934400          sts _bitcount,R24
 020A                   .dbline 131
 020A           ;                           break;}
 020A 22C0              xjmp L57
 020C           L63:
 020C                   .dbline 132
 020C           ;          case 1:{
 020C                   .dbline 133
 020C           ;                               bitcount--;      
 020C 80914400          lds R24,_bitcount
 0210 8150              subi R24,1
 0212 80934400          sts _bitcount,R24
 0216                   .dbline 134
 0216           ;                               if ((PINE&0x20)==0)
 0216 0D99              sbic 0x1,5
 0218 04C0              rjmp L64
 021A                   .dbline 135
 021A           ;                                   {
 021A                   .dbline 136
 021A           ;                                        bitcount=11;
 021A 8BE0              ldi R24,11
 021C 80934400          sts _bitcount,R24
 0220                   .dbline 137
 0220           ;                                        return;
 0220 17C0              xjmp L54
 0222           L64:
 0222                   .dbline 140
 0222           ;                                       }
 0222           ;                               else
 0222           ;                                  {
 0222                   .dbline 141
 0222           ;                                   bitcount=11;
 0222 8BE0              ldi R24,11
 0224 80934400          sts _bitcount,R24
 0228                   .dbline 142
 0228           ;                           decode(data);
 0228 00910300          lds R16,L55
 022C 1FDF              xcall _decode
 022E                   .dbline 143
 022E           ;                                  }      
 022E                   .dbline 144
 022E           ;                       break;}
 022E 10C0              xjmp L57
 0230           L56:
 0230                   .dbline 145
 0230           ;          default:{
 0230                   .dbline 146
 0230           ;                       data = (data >> 1);
 0230 20900300          lds R2,L55
 0234 2694              lsr R2
 0236 20920300          sts L55,R2
 023A                   .dbline 147
 023A           ;                 if((PINE&0x20)!=0)
 023A 0D9B              sbis 0x1,5
 023C 04C0              rjmp L66
 023E                   .dbline 148
 023E           ;                     data|=0x80;
 023E 822D              mov R24,R2
 0240 8068              ori R24,128
 0242 80930300          sts L55,R24
 0246           L66:
 0246                   .dbline 149
 0246 80914400          lds R24,_bitcount
 024A 8150              subi R24,1
 024C 80934400          sts _bitcount,R24
 0250                   .dbline 150
 0250                   .dbline 151
 0250           L57:
 0250                   .dbline -2
 0250                   .dbline 152
 0250           ;                               bitcount--;
 0250           ;                   }           
 0250           ;         }                                             
 0250           ;     } 
 0250           L54:
 0250 0E940000          xcall pop_gset1
 0254 0E940000          xcall pop_lset
 0258                   .dbline 0 ; func end
 0258 1895              reti
 025A                   .dbend
                        .area bss(ram, con, rel)
 0004                   .dbfile C:\work\mega128\mix_exp\kb.c
 0004           _kb_buffer::
 0004                   .blkb 64
 0044                   .dbsym e kb_buffer _kb_buffer A[64:64]c
 0044           _bitcount::
 0044                   .blkb 1
 0045                   .dbsym e bitcount _bitcount c
                        .area data(ram, con, rel)
 0002                   .dbfile C:\work\mega128\mix_exp\kb.c
 0002           L26:
 0002                   .blkb 13
                        .area idata
 0002 BDABD2AAD6D8D0C2C6F4B6AF00        .byte 189,171,210,170,214,216,208,194,198,244,182,175,0
                        .area data(ram, con, rel)
 000F                   .dbfile C:\work\mega128\mix_exp\kb.c

⌨️ 快捷键说明

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