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

📄 test51.lst

📁 单片机键盘输入扫描方式以及防抖处理,此方法为普遍输入方法.
💻 LST
📖 第 1 页 / 共 3 页
字号:
0013 C003              PUSH    AR3
0015 C004              PUSH    AR4
0017 C005              PUSH    AR5
0019 C006              PUSH    AR6
001B C007              PUSH    AR7
                                           ; SOURCE LINE # 22
                                           ; SOURCE LINE # 24
001D 758CDB            MOV     TH0,#0DBH
                                           ; SOURCE LINE # 25
0020 758AD4            MOV     TL0,#0D4H
                                           ; SOURCE LINE # 26
0023 120000      R     LCALL   Key_Scan
                                           ; SOURCE LINE # 27
0026 120000      R     LCALL   Disp_Func
                                           ; SOURCE LINE # 28
0029 D007              POP     AR7
002B D006              POP     AR6
002D D005              POP     AR5
002F D004              POP     AR4
0031 D003              POP     AR3
0033 D002              POP     AR2
0035 D001              POP     AR1
0037 D000              POP     AR0
0039 D0D0              POP     PSW
003B D082              POP     DPL
003D D083              POP     DPH
003F D0F0              POP     B
0041 D0E0              POP     ACC
0043 32                RETI    
             ; FUNCTION Time0_Func (END)

             ; FUNCTION Disp_Func (BEGIN)
                                           ; SOURCE LINE # 34
                                           ; SOURCE LINE # 35
                                           ; SOURCE LINE # 36
0000 7580FF            MOV     P0,#0FFH
                                           ; SOURCE LINE # 37
0003 7400        R     MOV     A,#LOW g_bpDisp
0005 2500        R     ADD     A,g_bCurrent_Local
0007 F8                MOV     R0,A
0008 E6                MOV     A,@R0
0009 F580              MOV     P0,A
                                           ; SOURCE LINE # 38
000B E500        R     MOV     A,g_bCurrent_Local
000D 600F              JZ      ?C0002
                                           ; SOURCE LINE # 39
                                           ; SOURCE LINE # 40
000F 7F80              MOV     R7,#080H
0011 120000      R     LCALL   _Setb_Func
C51 COMPILER V7.50   TEST51                                                                12/02/2007 23:53:05 PAGE 7   

                                           ; SOURCE LINE # 41
0014 7F40              MOV     R7,#040H
0016 120000      R     LCALL   _Clr_Func
                                           ; SOURCE LINE # 42
0019 E4                CLR     A
001A F500        R     MOV     g_bCurrent_Local,A
                                           ; SOURCE LINE # 43
001C 800D              SJMP    ?C0003
001E         ?C0002:
                                           ; SOURCE LINE # 45
                                           ; SOURCE LINE # 46
001E 7F40              MOV     R7,#040H
0020 120000      R     LCALL   _Setb_Func
                                           ; SOURCE LINE # 47
0023 7F80              MOV     R7,#080H
0025 120000      R     LCALL   _Clr_Func
                                           ; SOURCE LINE # 48
0028 750001      R     MOV     g_bCurrent_Local,#01H
                                           ; SOURCE LINE # 49
002B         ?C0003:
                                           ; SOURCE LINE # 50
002B 8500A0      R     MOV     P2,g_bP2_Io
                                           ; SOURCE LINE # 51
002E 22                RET     
             ; FUNCTION Disp_Func (END)

             ; FUNCTION _Clr_Func (BEGIN)
                                           ; SOURCE LINE # 57
;---- Variable 'bPort' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 58
                                           ; SOURCE LINE # 61
0000 A2AF              MOV     C,EA
0002 9200        R     MOV     btEa_Bak,C
                                           ; SOURCE LINE # 62
0004 C2AF              CLR     EA
                                           ; SOURCE LINE # 63
0006 6307FF            XRL     AR7,#0FFH
                                           ; SOURCE LINE # 64
0009 EF                MOV     A,R7
000A 5200        R     ANL     g_bP2_Io,A
                                           ; SOURCE LINE # 65
000C A200        R     MOV     C,btEa_Bak
000E 92AF              MOV     EA,C
                                           ; SOURCE LINE # 66
0010 22                RET     
             ; FUNCTION _Clr_Func (END)

             ; FUNCTION _Setb_Func (BEGIN)
                                           ; SOURCE LINE # 72
;---- Variable 'bPort' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 73
                                           ; SOURCE LINE # 76
0000 A2AF              MOV     C,EA
0002 9200        R     MOV     btEa_Bak,C
                                           ; SOURCE LINE # 77
0004 C2AF              CLR     EA
                                           ; SOURCE LINE # 78
0006 EF                MOV     A,R7
0007 4200        R     ORL     g_bP2_Io,A
                                           ; SOURCE LINE # 79
0009 A200        R     MOV     C,btEa_Bak
000B 92AF              MOV     EA,C
C51 COMPILER V7.50   TEST51                                                                12/02/2007 23:53:05 PAGE 8   

                                           ; SOURCE LINE # 80
000D 22                RET     
             ; FUNCTION _Setb_Func (END)

             ; FUNCTION Key_Func (BEGIN)
                                           ; SOURCE LINE # 86
                                           ; SOURCE LINE # 87
                                           ; SOURCE LINE # 90
0000 7F01              MOV     R7,#01H
0002 120000      R     LCALL   _Clr_Func
                                           ; SOURCE LINE # 91
0005 7F02              MOV     R7,#02H
0007 120000      R     LCALL   _Clr_Func
                                           ; SOURCE LINE # 92
000A 8500A0      R     MOV     P2,g_bP2_Io
                                           ; SOURCE LINE # 93
;---- Variable 'bI' assigned to Register 'R7' ----
000D AFA0              MOV     R7,P2
                                           ; SOURCE LINE # 94
000F EF                MOV     A,R7
0010 30E206            JNB     ACC.2,?C0007
0013 30E303            JNB     ACC.3,?C0007
                                           ; SOURCE LINE # 95
0016 7F00              MOV     R7,#00H
0018 22                RET     
0019         ?C0007:
                                           ; SOURCE LINE # 97
0019 7F01              MOV     R7,#01H
                                           ; SOURCE LINE # 98
001B         ?C0008:
001B 22                RET     
             ; FUNCTION Key_Func (END)

             ; FUNCTION Key_Scan (BEGIN)
                                           ; SOURCE LINE # 104
;---- Variable 'bLine' assigned to Register 'R6' ----
;---- Variable 'bKey' assigned to Register 'R5' ----
                                           ; SOURCE LINE # 105
                                           ; SOURCE LINE # 108
0000 120000      R     LCALL   Key_Func
0003 EF                MOV     A,R7
0004 606F              JZ      ?C0010
                                           ; SOURCE LINE # 109
                                           ; SOURCE LINE # 110
0006 200073      R     JB      g_btKey_Press,?C0013
0009 200070      R     JB      g_btKey_Flag,?C0013
                                           ; SOURCE LINE # 111
                                           ; SOURCE LINE # 113
000C         ?C0011:
                                           ; SOURCE LINE # 114
000C 7F02              MOV     R7,#02H
000E 120000      R     LCALL   _Setb_Func
                                           ; SOURCE LINE # 115
;---- Variable 'bRow' assigned to Register 'R4' ----
0011 E4                CLR     A
0012 FC                MOV     R4,A
0013         ?C0014:
0013 EC                MOV     A,R4
0014 C3                CLR     C
0015 9402              SUBB    A,#02H
0017 5039              JNC     ?C0015
                                           ; SOURCE LINE # 116
C51 COMPILER V7.50   TEST51                                                                12/02/2007 23:53:05 PAGE 9   

                                           ; SOURCE LINE # 117
0019 EC                MOV     A,R4
001A 6009              JZ      ?C0017
                                           ; SOURCE LINE # 118
                                           ; SOURCE LINE # 119
001C 7F01              MOV     R7,#01H
001E 120000      R     LCALL   _Setb_Func
                                           ; SOURCE LINE # 120
0021 0F                INC     R7
0022 120000      R     LCALL   _Clr_Func
                                           ; SOURCE LINE # 121
0025         ?C0017:
                                           ; SOURCE LINE # 122
0025 8500A0      R     MOV     P2,g_bP2_Io
                                           ; SOURCE LINE # 123
;---- Variable 'bK' assigned to Register 'R7' ----
0028 AFA0              MOV     R7,P2
                                           ; SOURCE LINE # 124
002A 53070C            ANL     AR7,#0CH
                                           ; SOURCE LINE # 125
002D EF                MOV     A,R7
002E 13                RRC     A
002F 13                RRC     A
0030 543F              ANL     A,#03FH
0032 FF                MOV     R7,A
                                           ; SOURCE LINE # 126
0033 24FE              ADD     A,#0FEH
0035 6007              JZ      ?C0020
0037 04                INC     A
0038 7008              JNZ     ?C0021
                                           ; SOURCE LINE # 127
                                           ; SOURCE LINE # 128
003A         ?C0019:
                                           ; SOURCE LINE # 129
003A E4                CLR     A
003B FE                MOV     R6,A
                                           ; SOURCE LINE # 130
003C 8006              SJMP    ?C0018
                                           ; SOURCE LINE # 131
003E         ?C0020:
                                           ; SOURCE LINE # 132
003E 7E01              MOV     R6,#01H
                                           ; SOURCE LINE # 133
0040 8002              SJMP    ?C0018
                                           ; SOURCE LINE # 134
0042         ?C0021:
                                           ; SOURCE LINE # 135
0042 7EFF              MOV     R6,#0FFH
                                           ; SOURCE LINE # 136
                                           ; SOURCE LINE # 137
0044         ?C0018:
                                           ; SOURCE LINE # 138
0044 EE                MOV     A,R6
0045 F4                CPL     A
0046 6007              JZ      ?C0016
                                           ; SOURCE LINE # 139
                                           ; SOURCE LINE # 140
0048 EC                MOV     A,R4
0049 25E0              ADD     A,ACC
004B 2E                ADD     A,R6
004C FD                MOV     R5,A
                                           ; SOURCE LINE # 141
C51 COMPILER V7.50   TEST51                                                                12/02/2007 23:53:05 PAGE 10  

004D 8003              SJMP    ?C0015
                                           ; SOURCE LINE # 142
                                           ; SOURCE LINE # 143
004F         ?C0016:
004F 0C                INC     R4
0050 80C1              SJMP    ?C0014
0052         ?C0015:
                                           ; SOURCE LINE # 144
0052 E500        R     MOV     A,g_bKey_Bak
0054 6D                XRL     A,R5
0055 6006              JZ      ?C0023
                                           ; SOURCE LINE # 145
                                           ; SOURCE LINE # 146
0057 E4                CLR     A
0058 F500        R     MOV     g_bKey_Time,A
                                           ; SOURCE LINE # 147
005A 8D00        R     MOV     g_bKey_Bak,R5
                                           ; SOURCE LINE # 148
005C 22                RET     
005D         ?C0023:
                                           ; SOURCE LINE # 150
                                           ; SOURCE LINE # 151
005D E500        R     MOV     A,g_bKey_Time
005F B40210            CJNE    A,#02H,?C0025
                                           ; SOURCE LINE # 152
                                           ; SOURCE LINE # 153
0062 850000      R     MOV     g_bKey,g_bKey_Bak
                                           ; SOURCE LINE # 154
0065 7500FF      R     MOV     g_bKey_Bak,#0FFH
                                           ; SOURCE LINE # 155
0068 D200        R     SETB    g_btKey_Press
                                           ; SOURCE LINE # 156
006A D200        R     SETB    g_btKey_Flag
                                           ; SOURCE LINE # 157
006C 7F10              MOV     R7,#010H
006E 120000      R     LCALL   _Clr_Func
                                           ; SOURCE LINE # 158
0071 22                RET     
0072         ?C0025:
                                           ; SOURCE LINE # 160
0072 0500        R     INC     g_bKey_Time

⌨️ 快捷键说明

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