?? kbc.lis
字號:
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_8515\kbc.c
.area bss(ram, con, rel)
0003 .dbfile D:\ICC-AVR\examples.sl\pc_8515\kbc.c
0003 L49:
0003 .blkb 1
.area text(rom, con, rel)
01DC .dbfile D:\ICC-AVR\examples.sl\pc_8515\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_8515\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 + -