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

📄 ps2main.lis

📁 AVR单片机(Atmega16)的PS2键盘驱动程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00F2 042F              mov R16,R20
 00F4 0E940000          xcall mod8u
 00F8 402F              mov R20,R16
 00FA                   .dbline 91
 00FA           ; }
 00FA 0023              tst R16
 00FC 19F4              brne L21
 00FE                   .dbline 91
 00FE 462F              mov R20,R22
 0100 4058              subi R20,128    ; addi 128
 0102 02C0              xjmp L22
 0104           L21:
 0104                   .dbline 92
 0104           ; }
 0104 462F              mov R20,R22
 0106 4054              subi R20,64    ; addi 192
 0108           L22:
 0108                   .dbline 93
 0108           ; }
 0108 042F              mov R16,R20
 010A A8DF              xcall _LCD_WriteC
 010C                   .dbline -2
 010C           L20:
 010C 0E940000          xcall pop_gset2
 0110                   .dbline 0 ; func end
 0110 0895              ret
 0112                   .dbsym r add 20 c
 0112                   .dbsym r y 20 c
 0112                   .dbsym r x 22 c
 0112                   .dbend
 0112                   .dbfunc e LCD_Clear _LCD_Clear fV
                        .even
 0112           _LCD_Clear::
 0112                   .dbline -1
 0112                   .dbline 99
 0112           ; }
 0112           ; }
 0112           ; }
 0112           ; }
 0112           ; }
 0112           ; }
 0112                   .dbline 99
 0112 01E0              ldi R16,1
 0114 A3DF              xcall _LCD_WriteC
 0116                   .dbline 100
 0116           ; }
 0116 02E0              ldi R16,2
 0118 10E0              ldi R17,0
 011A 8DDF              xcall _delay_nms
 011C                   .dbline 101
 011C           ; }
 011C 21E0              ldi R18,1
 011E 0027              clr R16
 0120 DDDF              xcall _LCD_SetXY
 0122                   .dbline -2
 0122           L23:
 0122                   .dbline 0 ; func end
 0122 0895              ret
 0124                   .dbend
 0124                   .dbfunc e LCD_Write_Char _LCD_Write_Char fV
 0124           ;              i -> y+4
 0124           ;              y -> R22
 0124           ;              x -> R20
                        .even
 0124           _LCD_Write_Char::
 0124 0E940000          xcall push_gset2
 0128 622F              mov R22,R18
 012A 402F              mov R20,R16
 012C                   .dbline -1
 012C                   .dbline 107
 012C           ; }
 012C           ; }
 012C           ; }
 012C           ; }
 012C           ; }
 012C           ; }
 012C                   .dbline 107
 012C 262F              mov R18,R22
 012E 042F              mov R16,R20
 0130 D5DF              xcall _LCD_SetXY
 0132                   .dbline 108
 0132           ; }
 0132 0C81              ldd R16,y+4
 0134 B3DF              xcall _LCD_WriteD
 0136                   .dbline -2
 0136           L24:
 0136 0E940000          xcall pop_gset2
 013A                   .dbline 0 ; func end
 013A 0895              ret
 013C                   .dbsym l i 4 c
 013C                   .dbsym r y 22 c
 013C                   .dbsym r x 20 c
 013C                   .dbend
 013C                   .dbfunc e LCD_Write_String _LCD_Write_String fV
 013C           ;              s -> R20,R21
 013C           ;              y -> R10
 013C           ;              x -> R22
                        .even
 013C           _LCD_Write_String::
 013C 0E940000          xcall push_gset3
 0140 A22E              mov R10,R18
 0142 602F              mov R22,R16
 0144 4E81              ldd R20,y+6
 0146 5F81              ldd R21,y+7
 0148                   .dbline -1
 0148                   .dbline 114
 0148           ; }
 0148           ; }
 0148           ; }
 0148           ; }
 0148           ; }
 0148           ; }
 0148                   .dbline 114
 0148 2A2D              mov R18,R10
 014A 062F              mov R16,R22
 014C C7DF              xcall _LCD_SetXY
 014E 05C0              xjmp L27
 0150           L26:
 0150                   .dbline 115
 0150                   .dbline 116
 0150 FA01              movw R30,R20
 0152 0081              ldd R16,z+0
 0154 A3DF              xcall _LCD_WriteD
 0156                   .dbline 117
 0156 4F5F              subi R20,255  ; offset = 1
 0158 5F4F              sbci R21,255
 015A                   .dbline 117
 015A           L27:
 015A                   .dbline 115
 015A           ; }
 015A FA01              movw R30,R20
 015C 2080              ldd R2,z+0
 015E 2220              tst R2
 0160 B9F7              brne L26
 0162                   .dbline -2
 0162           L25:
 0162 0E940000          xcall pop_gset3
 0166                   .dbline 0 ; func end
 0166 0895              ret
 0168                   .dbsym r s 20 pc
 0168                   .dbsym r y 10 c
 0168                   .dbsym r x 22 c
 0168                   .dbend
 0168                   .dbfunc e LCD_Init _LCD_Init fV
                        .even
 0168           _LCD_Init::
 0168                   .dbline -1
 0168                   .dbline 123
 0168           ; }
 0168           ; }
 0168           ; }
 0168           ; }
 0168           ; }
 0168           ; }
 0168           ; }
 0168           ; }
 0168                   .dbline 123
 0168 8AB3              in R24,0x1a
 016A 806F              ori R24,240
 016C 8ABB              out 0x1a,R24
 016E                   .dbline 124
 016E           ; }
 016E D29A              sbi 0x1a,2
 0170                   .dbline 125
 0170           ; }
 0170 D39A              sbi 0x1a,3
 0172                   .dbline 126
 0172           ; }
 0172 08E2              ldi R16,40
 0174 73DF              xcall _LCD_WriteC
 0176                   .dbline 127
 0176           ; }
 0176 6EDF              xcall _LCD_Write
 0178                   .dbline 128
 0178           ; }
 0178 08E2              ldi R16,40
 017A 70DF              xcall _LCD_WriteC
 017C                   .dbline 129
 017C           ; }
 017C 0CE0              ldi R16,12
 017E 6EDF              xcall _LCD_WriteC
 0180                   .dbline 130
 0180           ; }
 0180 01E0              ldi R16,1
 0182 6CDF              xcall _LCD_WriteC
 0184                   .dbline 131
 0184           ; }
 0184 02E0              ldi R16,2
 0186 10E0              ldi R17,0
 0188 56DF              xcall _delay_nms
 018A                   .dbline 132
 018A           ; }
 018A 21E0              ldi R18,1
 018C 0027              clr R16
 018E A6DF              xcall _LCD_SetXY
 0190                   .dbline -2
 0190           L29:
 0190                   .dbline 0 ; func end
 0190 0895              ret
 0192                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\wpzhao.USTC\MYDOCU~1\我的文档\我的ICC\我的PS2/1602.h
 0000           _Key_Up::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile C:\DOCUME~1\wpzhao.USTC\MYDOCU~1\我的文档\我的ICC\我的PS2/1602.h
 0001                   .dbfile C:\DOCUME~1\wpzhao.USTC\MYDOCU~1\我的文档\我的ICC\我的PS2/KeyCode.h
 0001                   .dbsym e Key_Up _Key_Up c
 0001           _Finish::
 0001                   .blkb 1
                        .area idata
 0001 00                .byte 0
                        .area data(ram, con, rel)
 0002                   .dbfile C:\DOCUME~1\wpzhao.USTC\MYDOCU~1\我的文档\我的ICC\我的PS2/KeyCode.h
 0002                   .dbsym e Finish _Finish c
                        .area lit(rom, con, rel)
 0000           _KeyCode::
 0000 1C41              .byte 28,'A
 0002 3242              .byte 50,'B
 0004 2143              .byte 33,'C
 0006 2344              .byte 35,'D
 0008 2445              .byte 36,'E
 000A 2B46              .byte 43,'F
 000C 3447              .byte 52,'G
 000E 3348              .byte 51,'H
 0010 4349              .byte 'C,'I
 0012 3B4A              .byte 59,'J
 0014 424B              .byte 'B,'K
 0016 4B4C              .byte 'K,'L
 0018 3A4D              .byte 58,'M
 001A 314E              .byte 49,'N
 001C 444F              .byte 'D,'O
 001E 4D50              .byte 'M,'P
 0020 1551              .byte 21,'Q
 0022 2D52              .byte 45,'R
 0024 1B53              .byte 27,'S
 0026 2C54              .byte 44,'T
 0028 3C55              .byte 60,'U
 002A 2A56              .byte 42,'V
 002C 1D57              .byte 29,'W
 002E 2258              .byte 34,'X
 0030 3559              .byte 53,'Y
 0032 1A5A              .byte 26,'Z
 0034 4530              .byte 'E,48
 0036 1631              .byte 22,49
 0038 1E32              .byte 30,50
 003A 2633              .byte 38,51
 003C 2534              .byte 37,52
 003E 2E35              .byte 46,53
 0040 3636              .byte 54,54
 0042 3D37              .byte 61,55
 0044 3E38              .byte 62,56
 0046 4639              .byte 'F,57
 0048 0E7E              .byte 14,126
 004A 7B3E              .byte 123,62
 004C 793D              .byte 'y,61
 004E 7C3F              .byte 124,63
 0050 7740              .byte 'w,64
 0052 547B              .byte 'T,123
 0054 5B7D              .byte 91,125
 0056 4C3A              .byte 'L,58
 0058 5222              .byte 'R,34
 005A 413C              .byte 'A,60
 005C E03C              .byte 224,60
 005E 5A3B              .byte 'Z,59
 0060 713A              .byte 'q,58
 0062 7030              .byte 'p,48
 0064 6931              .byte 'i,49
 0066 7232              .byte 'r,50
 0068 7A33              .byte 'z,51
 006A 6B34              .byte 'k,52
 006C 7335              .byte 's,53
 006E 7436              .byte 't,54
 0070 6C37              .byte 'l,55
 0072 7538              .byte 'u,56
 0074 7D39              .byte 125,57
 0076                   .dbsym e KeyCode _KeyCode A[118:59:2]kc
                        .area text(rom, con, rel)
 0192                   .dbfile C:\DOCUME~1\wpzhao.USTC\MYDOCU~1\我的文档\我的ICC\我的PS2/KeyCode.h
 0192                   .dbfunc e Decode _Decode fc
 0192           ;              i -> R20
 0192           ;           temp -> R22
 0192           ;       ScanCode -> R16
                        .even
 0192           _Decode::
 0192 0E940000          xcall push_gset2
 0196                   .dbline -1
 0196                   .dbline 81
 0196                   .dbline 83
 0196 402F              mov R20,R16
 0198 5527              clr R21
 019A 403E              cpi R20,224
 019C E0E0              ldi R30,0
 019E 5E07              cpc R21,R30
 01A0 09F0              breq L34
 01A2 05C0              xjmp L31
 01A4           X0:
 01A4                   .dbline 84
 01A4           L34:
 01A4                   .dbline 85
 01A4                   .dbline 85
 01A4 81E0              ldi R24,1
 01A6 80930000          sts _Key_Up,R24
 01AA                   .dbline 85
 01AA 4CE0              ldi R20,12
 01AC                   .dbline 85
 01AC 22C0              xjmp L32
 01AE           L31:
 01AE                   .dbline 87
 01AE 6627              clr R22
 01B0 01C0              xjmp L38
 01B2           L35:
 01B2                   .dbline 87
 01B2           L36:
 01B2                   .dbline 87
 01B2 6395              inc R22
 01B4           L38:
 01B4                   .dbline 87
 01B4 82E0              ldi R24,2
 01B6 869F              mul R24,R22
 01B8 F001              movw R30,R0
 01BA 80E0              ldi R24,<_KeyCode
 01BC 90E0              ldi R25,>_KeyCode
 01BE E80F              add R30,R24
 01C0 F91F              adc R31,R25
 01C2 E491              lpm R30,Z
 01C4 E017              cp R30,R16
 01C6 11F0              breq L39
 01C8 6B33              cpi R22,59
 01CA 98F3              brlo L35
 01CC           L39:
 01CC                   .dbline 88
 01CC 82E0              ldi R24,2
 01CE 869F              mul R24,R22
 01D0 F001              movw R30,R0
 01D2 80E0              ldi R24,<_KeyCode

⌨️ 快捷键说明

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