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

📄 kb.lis

📁 ATmegal128的混合中断编程
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module kb.c
                        .area lit(rom, con, rel)
 0000           _unshifted::
 0000 0D09              .byte 13,9
 0002 0E60              .byte 14,96
 0004 1571              .byte 21,'q
 0006 1631              .byte 22,49
 0008 1A7A              .byte 26,'z
 000A 1B73              .byte 27,'s
 000C 1C61              .byte 28,'a
 000E 1D77              .byte 29,'w
 0010 1E32              .byte 30,50
 0012 2163              .byte 33,'c
 0014 2278              .byte 34,'x
 0016 2364              .byte 35,'d
 0018 2465              .byte 36,'e
 001A 2534              .byte 37,52
 001C 2633              .byte 38,51
 001E 2920              .byte 41,32
 0020 2A76              .byte 42,'v
 0022 2B66              .byte 43,'f
 0024 2C74              .byte 44,'t
 0026 2D72              .byte 45,'r
 0028 2E35              .byte 46,53
 002A 316E              .byte 49,'n
 002C 3262              .byte 50,'b
 002E 3368              .byte 51,'h
 0030 3467              .byte 52,'g
 0032 3579              .byte 53,'y
 0034 3636              .byte 54,54
 0036 392C              .byte 57,44
 0038 3A6D              .byte 58,'m
 003A 3B6A              .byte 59,'j
 003C 3C75              .byte 60,'u
 003E 3D37              .byte 61,55
 0040 3E38              .byte 62,56
 0042 412C              .byte 'A,44
 0044 426B              .byte 'B,'k
 0046 4369              .byte 'C,'i
 0048 446F              .byte 'D,'o
 004A 4530              .byte 'E,48
 004C 4639              .byte 'F,57
 004E 492E              .byte 'I,46
 0050 4A2F              .byte 'J,47
 0052 4B6C              .byte 'K,'l
 0054 4C3B              .byte 'L,59
 0056 4D70              .byte 'M,'p
 0058 4E2D              .byte 'N,45
 005A 5227              .byte 'R,39
 005C 545B              .byte 'T,91
 005E 553D              .byte 'U,61
 0060 5A0D              .byte 'Z,13
 0062 5B5D              .byte 91,93
 0064 5D5C              .byte 93,92
 0066 613C              .byte 'a,60
 0068 6608              .byte 'f,8
 006A 6931              .byte 'i,49
 006C 6B34              .byte 'k,52
 006E 6C37              .byte 'l,55
 0070 7030              .byte 'p,48
 0072 712C              .byte 'q,44
 0074 7232              .byte 'r,50
 0076 7335              .byte 's,53
 0078 7436              .byte 't,54
 007A 7538              .byte 'u,56
 007C 792B              .byte 'y,43
 007E 7A33              .byte 'z,51
 0080 7B2D              .byte 123,45
 0082 7C2A              .byte 124,42
 0084 7D39              .byte 125,57
 0086 0000              .byte 0,0
 0088                   .dbfile C:\work\mega128\mix_exp/scancodes.h
 0088                   .dbsym e unshifted _unshifted A[136:68:2]c
 0088           _shifted::
 0088 0D09              .byte 13,9
 008A 0E7E              .byte 14,126
 008C 1551              .byte 21,'Q
 008E 1621              .byte 22,33
 0090 1A5A              .byte 26,'Z
 0092 1B53              .byte 27,'S
 0094 1C41              .byte 28,'A
 0096 1D57              .byte 29,'W
 0098 1E40              .byte 30,64
 009A 2143              .byte 33,'C
 009C 2258              .byte 34,'X
 009E 2344              .byte 35,'D
 00A0 2445              .byte 36,'E
 00A2 2524              .byte 37,36
 00A4 2623              .byte 38,35
 00A6 2920              .byte 41,32
 00A8 2A56              .byte 42,'V
 00AA 2B46              .byte 43,'F
 00AC 2C54              .byte 44,'T
 00AE 2D52              .byte 45,'R
 00B0 2E25              .byte 46,37
 00B2 314E              .byte 49,'N
 00B4 3242              .byte 50,'B
 00B6 3348              .byte 51,'H
 00B8 3447              .byte 52,'G
 00BA 3559              .byte 53,'Y
 00BC 365E              .byte 54,94
 00BE 394C              .byte 57,'L
 00C0 3A4D              .byte 58,'M
 00C2 3B4A              .byte 59,'J
 00C4 3C55              .byte 60,'U
 00C6 3D26              .byte 61,38
 00C8 3E2A              .byte 62,42
 00CA 413C              .byte 'A,60
 00CC 424B              .byte 'B,'K
 00CE 4349              .byte 'C,'I
 00D0 444F              .byte 'D,'O
 00D2 4529              .byte 'E,41
 00D4 4628              .byte 'F,40
 00D6 493E              .byte 'I,62
 00D8 4A3F              .byte 'J,63
 00DA 4B4C              .byte 'K,'L
 00DC 4C3A              .byte 'L,58
 00DE 4D50              .byte 'M,'P
 00E0 4E5F              .byte 'N,95
 00E2 5222              .byte 'R,34
 00E4 547B              .byte 'T,123
 00E6 552B              .byte 'U,43
 00E8 5A0D              .byte 'Z,13
 00EA 5B7D              .byte 91,125
 00EC 5D7C              .byte 93,124
 00EE 613E              .byte 'a,62
 00F0 6608              .byte 'f,8
 00F2 6931              .byte 'i,49
 00F4 6B34              .byte 'k,52
 00F6 6C37              .byte 'l,55
 00F8 7030              .byte 'p,48
 00FA 712C              .byte 'q,44
 00FC 7232              .byte 'r,50
 00FE 7335              .byte 's,53
 0100 7436              .byte 't,54
 0102 7538              .byte 'u,56
 0104 792B              .byte 'y,43
 0106 7A33              .byte 'z,51
 0108 7B2D              .byte 123,45
 010A 7C2A              .byte 124,42
 010C 7D39              .byte 125,57
 010E 0000              .byte 0,0
 0110                   .dbsym e shifted _shifted A[136:68:2]c
 0110           _ascii::
 0110 3000              .word 48
 0112 3100              .word 49
 0114 3200              .word 50
 0116 3300              .word 51
 0118 3400              .word 52
 011A 3500              .word 53
 011C 3600              .word 54
 011E 3700              .word 55
 0120 3800              .word 56
 0122 3900              .word 57
 0124 4100              .word 65
 0126 4200              .word 66
 0128 4300              .word 67
 012A 4400              .word 68
 012C 4500              .word 69
 012E 4600              .word 70
 0130                   .dbfile C:\work\mega128\mix_exp\kb.c
 0130                   .dbsym e ascii _ascii A[32:16]I
                        .area data(ram, con, rel)
 0000                   .dbfile C:\work\mega128\mix_exp\kb.c
 0000           _input::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile C:\work\mega128\mix_exp\kb.c
 0001                   .dbsym e input _input c
 0001           _output::
 0001                   .blkb 1
                        .area idata
 0001 00                .byte 0
                        .area data(ram, con, rel)
 0002                   .dbfile C:\work\mega128\mix_exp\kb.c
 0002                   .dbsym e output _output c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\work\mega128\mix_exp\kb.c
 0000                   .dbfunc e put_kbbuff _put_kbbuff fV
 0000           ;              c -> R16
                        .even
 0000           _put_kbbuff::
 0000                   .dbline -1
 0000                   .dbline 18
 0000           ; #include <iom128v.h>
 0000           ; #include "pindefs.h"
 0000           ; #include "scancodes.h"
 0000           ; #define BUFF_SIZE 64
 0000           ; extern void delay_ms(unsigned int time);
 0000           ; const ascii[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,
 0000           ;                  0x39,0x41,0x42,0x43,0x44,0x45,0x46};
 0000           ; unsigned char bitcount;  
 0000           ; unsigned char kb_buffer[BUFF_SIZE];
 0000           ; unsigned char input=0;
 0000           ; unsigned char output=0;
 0000           ; extern void cls(unsigned x,unsigned y,unsigned char high,unsigned char width);
 0000           ; extern void asc_tran(unsigned char x,unsigned char y,unsigned char *asc_p);
 0000           ; extern void ocmj_write(unsigned char data);
 0000           ; extern void hz_tran(unsigned char x,unsigned char y,unsigned char *hz_p);
 0000           ; extern void delay_ms(unsigned int n);
 0000           ; void put_kbbuff(unsigned char c)
 0000           ;  {
 0000                   .dbline 19
 0000           ;   kb_buffer[input]=c;
 0000 80E0              ldi R24,<_kb_buffer
 0002 90E0              ldi R25,>_kb_buffer
 0004 E0910000          lds R30,_input
 0008 FF27              clr R31
 000A E80F              add R30,R24
 000C F91F              adc R31,R25
 000E 0083              std z+0,R16
 0010                   .dbline 20
 0010           ;   if (input<(BUFF_SIZE-1))
 0010 80910000          lds R24,_input
 0014 8F33              cpi R24,63
 0016 20F4              brsh L2
 0018                   .dbline 21
 0018           ;      input++; 
 0018 8F5F              subi R24,255    ; addi 1
 001A 80930000          sts _input,R24
 001E 03C0              xjmp L3
 0020           L2:
 0020                   .dbline 23
 0020 2224              clr R2
 0022 20920000          sts _input,R2
 0026           L3:
 0026                   .dbline -2
 0026                   .dbline 24
 0026           ;   else
 0026           ;      input=0;  
 0026           ;  }
 0026           L1:
 0026                   .dbline 0 ; func end
 0026 0895              ret
 0028                   .dbsym r c 16 c
 0028                   .dbend
 0028                   .dbfunc e getchar _getchar fc
 0028           ;           temp -> R16
                        .even
 0028           _getchar::
 0028                   .dbline -1
 0028                   .dbline 26
 0028           ; unsigned char getchar(void)
 0028           ;   {
 0028                   .dbline 28
 0028           ;    unsigned char temp;
 0028           ;    if(output==input)
 0028 20900000          lds R2,_input
 002C 30900100          lds R3,_output
 0030 3214              cp R3,R2
 0032 11F4              brne L5
 0034                   .dbline 29
 0034           ;        return 0;
 0034 0027              clr R16
 0036 13C0              xjmp L4
 0038           L5:
 0038                   .dbline 31
 0038           ;    else
 0038           ;       {
 0038                   .dbline 32
 0038           ;          temp=kb_buffer[output];
 0038 80E0              ldi R24,<_kb_buffer
 003A 90E0              ldi R25,>_kb_buffer
 003C E0910100          lds R30,_output
 0040 FF27              clr R31
 0042 E80F              add R30,R24
 0044 F91F              adc R31,R25
 0046 0081              ldd R16,z+0
 0048                   .dbline 33
 0048           ;          if(output<(BUFF_SIZE-1))
 0048 80910100          lds R24,_output
 004C 8F33              cpi R24,63
 004E 20F4              brsh L7
 0050                   .dbline 34
 0050           ;            {

⌨️ 快捷键说明

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