📄 kb.lis
字号:
019A 002D mov R16,R0
019C 31DF xcall _put_kbbuff
019E .dbline 80
; }
019E 33C0 xjmp L33
01A0 L32:
01A0 .dbline 82
; else
; {
01A0 .dbline 83
01A0 4427 clr R20
01A2 01C0 xjmp L45
01A4 L42:
01A4 .dbline 83
01A4 L43:
01A4 .dbline 83
01A4 4395 inc R20
01A6 L45:
01A6 .dbline 83
; for(i = 0;shifted[i][0]!=sc && shifted[i][0]; i++);
01A6 80E0 ldi R24,<_shifted
01A8 90E0 ldi R25,>_shifted
01AA 242E mov R2,R20
01AC 3324 clr R3
01AE 220C lsl R2
01B0 331C rol R3
01B2 280E add R2,R24
01B4 391E adc R3,R25
01B6 E22D mov R30,R2
01B8 F32D mov R31,R3
01BA C895 lpm
01BC 202C mov R2,R0
01BE 3324 clr R3
01C0 462E mov R4,R22
01C2 5524 clr R5
01C4 2414 cp R2,R4
01C6 3504 cpc R3,R5
01C8 21F0 breq L46
01CA 2220 tst R2
01CC 59F7 brne L42
01CE 3320 tst R3
01D0 49F7 brne L42
01D2 L46:
01D2 .dbline 84
; if (shifted[i][0] == sc)
01D2 80E0 ldi R24,<_shifted
01D4 90E0 ldi R25,>_shifted
01D6 242E mov R2,R20
01D8 3324 clr R3
01DA 220C lsl R2
01DC 331C rol R3
01DE 280E add R2,R24
01E0 391E adc R3,R25
01E2 E22D mov R30,R2
01E4 F32D mov R31,R3
01E6 C895 lpm
01E8 0616 cp R0,R22
01EA 69F4 brne L47
01EC .dbline 85
; {
01EC .dbline 86
; put_kbbuff(shifted[i][1]);
01EC 80E0 ldi R24,<_shifted+1
01EE 90E0 ldi R25,>_shifted+1
01F0 242E mov R2,R20
01F2 3324 clr R3
01F4 220C lsl R2
01F6 331C rol R3
01F8 280E add R2,R24
01FA 391E adc R3,R25
01FC E22D mov R30,R2
01FE F32D mov R31,R3
0200 C895 lpm
0202 002D mov R16,R0
0204 FDDE xcall _put_kbbuff
0206 .dbline 87
; }
0206 L47:
0206 .dbline 88
; }
0206 L33:
0206 .dbline 89
; }
0206 .dbline 90
; }
0206 .dbline -2
0206 .dbline 96
; /*debug
; kb_buffer[1]=ascii[sc%16];
; sc=sc/16;
; kb_buffer[0]=ascii[sc%16];
; debug*/
; }
0206 L10:
0206 2296 adiw R28,2
0208 0E940000 xcall pop_gset3
020C .dbline 0 ; func end
020C 0895 ret
020E .dbsym r i 20 c
020E .dbsym r sc 22 c
.area vector(rom, abs)
.org 20
0014 0C940701 jmp _int4_isr
.area text(rom, con, rel)
020E .dbfile D:\ICC-AVR\Pc_At\kb.c
.area bss(ram, con, rel)
0003 .dbfile D:\ICC-AVR\Pc_At\kb.c
0003 L52:
0003 .blkb 1
.area text(rom, con, rel)
020E .dbfile D:\ICC-AVR\Pc_At\kb.c
020E .dbfunc s int4_isr _int4_isr fI
020E .dbsym s data L52 c
.even
020E _int4_isr::
020E 0E940000 xcall push_lset
0212 0E940000 xcall push_gset1
0216 .dbline -1
0216 .dbline 99
; #pragma interrupt_handler int4_isr:6
; void int4_isr(void)
; {
0216 .dbline 112
; static unsigned char data;
; /*if((bitcount < 11)&(bitcount > 2))
; {
; data = (data >> 1);
; if((PINE&0x20)!=0)
; data|=0x80;
; }
; if (--bitcount==0)
; {
; bitcount=11;
; decode(data);
; }*/
; switch (bitcount)
0216 40914400 lds R20,_bitcount
021A 5527 clr R21
021C 4130 cpi R20,1
021E E0E0 ldi R30,0
0220 5E07 cpc R21,R30
0222 E1F0 breq L60
0224 4230 cpi R20,2
0226 E0E0 ldi R30,0
0228 5E07 cpc R21,R30
022A 91F0 breq L59
022C 4130 cpi R20,1
022E E0E0 ldi R30,0
0230 5E07 cpc R21,R30
0232 34F1 brlt L53
0234 L65:
0234 4B30 cpi R20,11
0236 E0E0 ldi R30,0
0238 5E07 cpc R21,R30
023A 09F0 breq L56
023C 21C0 xjmp L53
023E X5:
023E .dbline 113
; {
023E L56:
023E .dbline 114
; case 11:{
023E .dbline 115
; if ((PINE&0x20)!=0)
023E 0D9B sbis 0x1,5
0240 01C0 rjmp L57
0242 .dbline 116
; return;
0242 2EC0 xjmp L51
0244 L57:
0244 .dbline 118
; else
; bitcount--;
0244 80914400 lds R24,_bitcount
0248 8150 subi R24,1
024A 80934400 sts _bitcount,R24
024E .dbline 119
; break;}
024E 28C0 xjmp L54
0250 L59:
0250 .dbline 120
; case 2:{
0250 .dbline 121
; bitcount--;
0250 80914400 lds R24,_bitcount
0254 8150 subi R24,1
0256 80934400 sts _bitcount,R24
025A .dbline 122
; break;}
025A 22C0 xjmp L54
025C L60:
025C .dbline 123
; case 1:{
025C .dbline 124
; bitcount--;
025C 80914400 lds R24,_bitcount
0260 8150 subi R24,1
0262 80934400 sts _bitcount,R24
0266 .dbline 125
; if ((PINE&0x20)==0)
0266 0D99 sbic 0x1,5
0268 04C0 rjmp L61
026A .dbline 126
; {
026A .dbline 127
; bitcount=11;
026A 8BE0 ldi R24,11
026C 80934400 sts _bitcount,R24
0270 .dbline 128
; return;
0270 17C0 xjmp L51
0272 L61:
0272 .dbline 131
; }
; else
; {
0272 .dbline 132
; bitcount=11;
0272 8BE0 ldi R24,11
0274 80934400 sts _bitcount,R24
0278 .dbline 133
; decode(data);
0278 00910300 lds R16,L52
027C F9DE xcall _decode
027E .dbline 134
; }
027E .dbline 135
; break;}
027E 10C0 xjmp L54
0280 L53:
0280 .dbline 136
; default:{
0280 .dbline 137
; data = (data >> 1);
0280 20900300 lds R2,L52
0284 2694 lsr R2
0286 20920300 sts L52,R2
028A .dbline 138
; if((PINE&0x20)!=0)
028A 0D9B sbis 0x1,5
028C 04C0 rjmp L63
028E .dbline 139
; data|=0x80;
028E 822D mov R24,R2
0290 8068 ori R24,128
0292 80930300 sts L52,R24
0296 L63:
0296 .dbline 140
0296 80914400 lds R24,_bitcount
029A 8150 subi R24,1
029C 80934400 sts _bitcount,R24
02A0 .dbline 141
02A0 .dbline 142
02A0 L54:
02A0 .dbline -2
02A0 .dbline 143
; bitcount--;
; }
; }
; }
02A0 L51:
02A0 0E940000 xcall pop_gset1
02A4 0E940000 xcall pop_lset
02A8 .dbline 0 ; func end
02A8 1895 reti
.area bss(ram, con, rel)
0004 .dbfile D:\ICC-AVR\Pc_At\kb.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
.area data(ram, con, rel)
0002 .dbfile D:\ICC-AVR\Pc_At\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 D:\ICC-AVR\Pc_At\kb.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -