📄 key.ls1
字号:
A51 MACRO ASSEMBLER KEY 12/27/2003 22:39:17 PAGE 1
MACRO ASSEMBLER A51 V7.04
OBJECT MODULE PLACED IN key.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE key.src PR(.\key.ls1) EP DEBUG
LOC OBJ LINE SOURCE
1 ; .\key.SRC generated from: key.c
2 ; COMPILER INVOKED BY:
3 ; C:\Keil\C51\BIN\C51.EXE key.c DEBUG OBJECTEXTEND NOPRINT SRC(.\key.SRC)
4
5 $nomod51
6
7 NAME KEY
8
0080 9 P0 DATA 080H
0090 10 P1 DATA 090H
00A0 11 P2 DATA 0A0H
00B0 12 P3 DATA 0B0H
00B4 13 T0 BIT 0B0H.4
00D6 14 AC BIT 0D0H.6
00B5 15 T1 BIT 0B0H.5
0090 16 T2 BIT 090H.0
00AF 17 EA BIT 0A8H.7
00A8 18 IE DATA 0A8H
00CE 19 EXF2 BIT 0C8H.6
00B7 20 RD BIT 0B0H.7
00AC 21 ES BIT 0A8H.4
00B8 22 IP DATA 0B8H
0098 23 RI BIT 098H.0
00B2 24 INT0 BIT 0B0H.2
00D7 25 CY BIT 0D0H.7
0099 26 TI BIT 098H.1
00B3 27 INT1 BIT 0B0H.3
0080 28 PIN_KEY_POWER BIT 080H.0
00CB 29 RCAP2H DATA 0CBH
00BC 30 PS BIT 0B8H.4
0081 31 SP DATA 081H
0091 32 T2EX BIT 090H.1
00D2 33 OV BIT 0D0H.2
00CA 34 RCAP2L DATA 0CAH
00C9 35 C_T2 BIT 0C8H.1
00B6 36 WR BIT 0B0H.6
00CD 37 RCLK BIT 0C8H.5
00CC 38 TCLK BIT 0C8H.4
0099 39 SBUF DATA 099H
0087 40 PCON DATA 087H
0098 41 SCON DATA 098H
0089 42 TMOD DATA 089H
0088 43 TCON DATA 088H
0089 44 IE0 BIT 088H.1
008B 45 IE1 BIT 088H.3
00F0 46 B DATA 0F0H
00C8 47 CP_RL2 BIT 0C8H.0
00E0 48 ACC DATA 0E0H
0081 49 PIN_KEY_MENU BIT 080H.1
00A9 50 ET0 BIT 0A8H.1
00AB 51 ET1 BIT 0A8H.3
008D 52 TF0 BIT 088H.5
00AD 53 ET2 BIT 0A8H.5
008F 54 TF1 BIT 088H.7
00CF 55 TF2 BIT 0C8H.7
009A 56 RB8 BIT 098H.2
008C 57 TH0 DATA 08CH
00A8 58 EX0 BIT 0A8H.0
A51 MACRO ASSEMBLER KEY 12/27/2003 22:39:17 PAGE 2
0088 59 IT0 BIT 088H.0
008D 60 TH1 DATA 08DH
009B 61 TB8 BIT 098H.3
00AA 62 EX1 BIT 0A8H.2
008A 63 IT1 BIT 088H.2
00CD 64 TH2 DATA 0CDH
0084 65 PIN_KEY_MUTE BIT 080H.4
00D0 66 P BIT 0D0H.0
009F 67 SM0 BIT 098H.7
008A 68 TL0 DATA 08AH
009E 69 SM1 BIT 098H.6
008B 70 TL1 DATA 08BH
009D 71 SM2 BIT 098H.5
00CC 72 TL2 DATA 0CCH
00B9 73 PT0 BIT 0B8H.1
00BB 74 PT1 BIT 0B8H.3
00D3 75 RS0 BIT 0D0H.3
00BD 76 PT2 BIT 0B8H.5
008C 77 TR0 BIT 088H.4
00D4 78 RS1 BIT 0D0H.4
008E 79 TR1 BIT 088H.6
00CA 80 TR2 BIT 0C8H.2
00B8 81 PX0 BIT 0B8H.0
00BA 82 PX1 BIT 0B8H.2
00B2 83 IRDA_DAT BIT 0B0H.2
0083 84 DPH DATA 083H
00A5 85 HZ_IND BIT 0A0H.5
0082 86 PIN_KEY_DEC BIT 080H.2
0082 87 DPL DATA 082H
00CB 88 EXEN2 BIT 0C8H.3
009C 89 REN BIT 098H.4
00C8 90 T2CON DATA 0C8H
0083 91 PIN_KEY_INC BIT 080H.3
00B0 92 RXD BIT 0B0H.0
00B1 93 TXD BIT 0B0H.1
00D5 94 F0 BIT 0D0H.5
00D0 95 PSW DATA 0D0H
96 ?PR?_?check_key?KEY SEGMENT CODE
97 ?PR?wait_for_pin?KEY SEGMENT CODE
98 ?DT?wait_for_pin?KEY SEGMENT DATA OVERLAYABLE
99 ?BI?wait_for_pin?KEY SEGMENT BIT OVERLAYABLE
100 ?PR?decode_lead?KEY SEGMENT CODE
101 ?PR?decode_byte?KEY SEGMENT CODE
102 ?PR?key_bh?KEY SEGMENT CODE
103 ?PR?key_init?KEY SEGMENT CODE
104 ?C_INITSEG SEGMENT CODE
105 ?BI?KEY SEGMENT BIT
106 ?DT?KEY SEGMENT DATA
107 EXTRN BIT (use_timer1)
108 EXTRN CODE (?C?SLDIV)
109 PUBLIC rephz_INC
110 PUBLIC key_last
111 PUBLIC keybh_pending
112 PUBLIC rephz_DEC
113 PUBLIC rephz_MUTE
114 PUBLIC rephz_MENU
115 PUBLIC rephz_POWER
116 PUBLIC key_on
117 PUBLIC key_init
118 PUBLIC key_bh
119 PUBLIC decode_byte
120 PUBLIC decode_lead
121 PUBLIC _?check_key
122
---- 123 RSEG ?DT?wait_for_pin?KEY
0000 124 ?wait_for_pin?BYTE:
A51 MACRO ASSEMBLER KEY 12/27/2003 22:39:17 PAGE 3
0000 125 min?141: DS 1
0001 126 max?142: DS 1
127
---- 128 RSEG ?BI?wait_for_pin?KEY
0000 129 ?wait_for_pin?BIT:
0000 130 level?140: DBIT 1
131
---- 132 RSEG ?BI?KEY
0000 133 key_on: DBIT 1
0001 134 keybh_pending: DBIT 1
135
---- 136 RSEG ?DT?KEY
0000 137 rephz_POWER: DS 1
0001 138 count_POWER: DS 1
0002 139 rephz_MENU: DS 1
0003 140 count_MENU: DS 1
0004 141 rephz_MUTE: DS 1
0005 142 count_MUTE: DS 1
0006 143 rephz_DEC: DS 1
0007 144 count_DEC: DS 1
0008 145 key_last: DS 1
0009 146 rephz_INC: DS 1
000A 147 count_INC: DS 1
148
---- 149 RSEG ?C_INITSEG
0000 C100 F 150 DB 0C1H, key_on + 000H ; bit-init
151
0002 01 152 DB 001H
0003 00 F 153 DB count_POWER
0004 05 154 DB 005H
155
0005 01 156 DB 001H
0006 00 F 157 DB rephz_POWER
0007 00 158 DB 000H
159
0008 01 160 DB 001H
0009 00 F 161 DB count_MENU
000A 05 162 DB 005H
163
000B 01 164 DB 001H
000C 00 F 165 DB rephz_MENU
000D 05 166 DB 005H
167
000E 01 168 DB 001H
000F 00 F 169 DB count_DEC
0010 05 170 DB 005H
171
0011 01 172 DB 001H
0012 00 F 173 DB rephz_DEC
0013 05 174 DB 005H
175
0014 01 176 DB 001H
0015 00 F 177 DB count_INC
0016 05 178 DB 005H
179
0017 01 180 DB 001H
0018 00 F 181 DB rephz_INC
0019 05 182 DB 005H
183
001A 01 184 DB 001H
001B 00 F 185 DB count_MUTE
001C 05 186 DB 005H
187
001D 01 188 DB 001H
001E 00 F 189 DB rephz_MUTE
001F 00 190 DB 000H
A51 MACRO ASSEMBLER KEY 12/27/2003 22:39:17 PAGE 4
191
0020 C100 F 192 DB 0C1H, keybh_pending + 000H ; bit-init
193
194 ; #pragma REGISTERBANK(0)
195 ;
196 ; #include <reg52.h>
197 ; #include "def.h"
198 ; #include "key.h"
199 ; #include "timer.h"
200 ; #include "mtv130.h"
201 ;
202 ; bit key_on = 0;
203 ; unsigned char key_last;
204 ;
205 ; //static struct timer_list timer;
206 ;
207 ; #define DEBOUNCE_MS 50L
208 ; #define REPEAT_HZ 5
209 ;
210 ; #define DEFINE_KEY(key, pin, rephz) \
211 ; sbit PIN_KEY_##key = pin; \
212 ; static unsigned char count_##key = DEBOUNCE_MS*HZ/1000; \
213 ; unsigned char rephz_##key = rephz;
214 ;
215 ; #define CHK_KEY(key) \
216 ; do { \
217 ; if (PIN_KEY_##key != 0) { \
218 ; count_##key = DEBOUNCE_MS*HZ/1000; \
219 ; } else if (count_##key && --count_##key == 0) { \
220 ; count_##key = HZ/rephz_##key; \
221 ; if (!key_on) { \
222 ; key_last = KEY_##key; \
223 ; key_on = 1; \
224 ; } \
225 ; } \
226 ; } while (0)
227 ;
228 ; DEFINE_KEY(POWER, P0 ^ 0, 0)
229 ; DEFINE_KEY(MENU, P0 ^ 1, REPEAT_HZ)
230 ; DEFINE_KEY(DEC, P0 ^ 2, REPEAT_HZ)
231 ; DEFINE_KEY(INC, P0 ^ 3, REPEAT_HZ)
232 ; DEFINE_KEY(MUTE, P0 ^ 4, 0)
233 ;
234 ; void check_key(void) reentrant
235
---- 236 RSEG ?PR?_?check_key?KEY
0000 237 _?check_key:
238 USING 0
239 ; SOURCE LINE # 41
240 ; {
241 ; CHK_KEY(POWER);
242 ; SOURCE LINE # 43
0000 308005 243 JNB PIN_KEY_POWER,?C0004
0003 750005 F 244 MOV count_POWER,#05H
0006 8021 245 SJMP ?C0010
0008 246 ?C0004:
0008 E500 F 247 MOV A,count_POWER
000A 601D 248 JZ ?C0010
000C D5001A F 249 DJNZ count_POWER,?C0010
000F AF00 F 250 MOV R7,rephz_POWER
0011 AB07 251 MOV R3,AR7
0013 E4 252 CLR A
0014 FA 253 MOV R2,A
0015 F9 254 MOV R1,A
0016 F8 255 MOV R0,A
0017 7F64 256 MOV R7,#064H
A51 MACRO ASSEMBLER KEY 12/27/2003 22:39:17 PAGE 5
0019 FE 257 MOV R6,A
001A FD 258 MOV R5,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -