📄 keypad.lst
字号:
170:
171: 00F5 E5 90 mov a,p1
172: 00F7 54 FD anl a,#11111101b ;test row one
173: 00F9 B4 FD 25 cjne a,#11111101b,row_1
174: ;---------------------------------------------------------------------
175: 00FC D2 90 setb ROW0
176: 00FE D2 91 setb ROW1
177: 0100 C2 92 clr ROW2
178: 0102 D2 93 setb ROW3
179:
180: 0104 E5 90 mov a,p1
181: 0106 54 FB anl a,#11111011b ;test row two
182: 0108 B4 FB 1B cjne a,#11111011b,row_2
183: ;---------------------------------------------------------------------
184: 010B D2 90 setb ROW0
185: 010D D2 91 setb ROW1
186: 010F D2 92 setb ROW2
187: 0111 C2 93 clr ROW3
188:
189: 0113 E5 90 mov a,p1
190: 0115 54 F7 anl a,#11110111b ;test row three
191: 0117 B4 F7 11 cjne a,#11110111b,row_3
192: ;----------------------------------------------------------------------
193: 011A 80 A7 sjmp ks_loop1
194: ;----------------------------------------------------------------------
195: 011C 90 01 46 row_0: mov dptr,#disp_kcode0
196: 011F 80 0F sjmp find_num
197:
198: 0121 90 01 4A row_1: mov dptr,#disp_kcode1
199: 0124 80 0A sjmp find_num
200:
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 5
Line I Addr Code Source
201: 0126 90 01 4E row_2: mov dptr,#disp_kcode2
202: 0129 80 05 sjmp find_num
203:
204: 012B 90 01 52 row_3: mov dptr,#disp_kcode3
205: 012E 80 00 sjmp find_num
206: ;----------------------------------------------------------------------
207: 0130 33 find_num: rlc a
208: 0131 50 03 jnc found_num ;which column is pressed/grounded
209: 0133 A3 inc dptr
210: 0134 80 FA sjmp find_num
211: ;----------------------------------------------------------------------
212: 0136 C2 B7 found_num: clr ALERT ;notify main MC that key has been pressed
213:
214: 0138 E4 clr a
215: 0139 93 movc a,@a+dptr
216: 013A F5 30 mov DIGIT,a
217: 013C 11 3C acall tx_main ;send pressed button to serial port
218: 013E 11 85 acall ascii2hex
219: 0140 11 9F acall send4x4_parallel
220:
221: 0142 D2 B7 setb ALERT ;bring keypad module to waiting state
222: ;-----------------------------------------------------------------------
223: 0144 01 B9 jmp ks_main1
224: ;-----------------------------------------------------------------------
225: 0146 30 31 32 33 disp_kcode0:DB'0','1','2','3'
226: 014A 34 35 36 37 disp_kcode1:DB'4','5','6','7'
227: 014E 38 39 41 42 disp_kcode2:DB'8','9','A','B'
228: 0152 43 44 45 46 disp_kcode3:DB'C','D','E','F'
229: ;-----------------------------------------------------------------------
230:
231: end
register banks used: ---
no errors
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 6
L I S T O F S Y M B O L S
=============================
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
??ASEM_51 NUMBER 8051
??VERSION NUMBER 0130
AC BIT D6
ACC DATA E0
ALERT NUMBER 00B7 20
ASCII2HEX CODE 0085 95
ASCII2HEX_LOOP1 CODE 0094 104
ASCII2HEX_LOOP2 CODE 0099 108
B DATA F0
CHECK_ROW CODE 00D9 154
CLMN0 NUMBER 0097 14
CLMN1 NUMBER 0096 15
CLMN2 NUMBER 0095 16
CLMN3 NUMBER 0094 17
CY BIT D7
DEBOUNCE CODE 00CE 148
DELAY_20MS CODE 004D 64
DELAY_20MS_LOOP1 CODE 0053 67
DELAY_20MS_LOOP2 CODE 0055 68
DIGIT DATA 30 19
DISP_KCODE0 CODE 0146 225
DISP_KCODE1 CODE 014A 226
DISP_KCODE2 CODE 014E 227
DISP_KCODE3 CODE 0152 228
DISP_MESSAGE CODE 005E 76
DISP_MESSAGE_LOOP1 CODE 0060 78
DISP_MESSAGE_LOOP2 CODE 0069 85
DISP_PRESSED CODE 0070 91
DPH DATA 83
DPL DATA 82
EA BIT AF
ES BIT AC
ET0 BIT A9
ET1 BIT AB
EX0 BIT A8
EX1 BIT AA
EXTI0 CODE 0003
EXTI1 CODE 0013
F0 BIT D5
FIND_NUM CODE 0130 207
FOUND_NUM CODE 0136 212
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT0 BIT B2
INT1 BIT B3
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
KS_LOOP1 CODE 00C3 142
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 7
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
KS_MAIN CODE 00B2 133
KS_MAIN1 CODE 00B9 137
OV BIT D2
P BIT D0
P0 DATA 80
P1 DATA 90
P2 DATA A0
P3 DATA B0
PCON DATA 87
PS BIT BC
PSW DATA D0
PT0 BIT B9
PT1 BIT BB
PX0 BIT B8
PX1 BIT BA
RB8 BIT 9A
RD BIT B7
REN BIT 9C
RESET CODE 0000
RI BIT 98
ROW0 NUMBER 0090 9
ROW1 NUMBER 0091 10
ROW2 NUMBER 0092 11
ROW3 NUMBER 0093 12
ROW_0 CODE 011C 195
ROW_1 CODE 0121 198
ROW_2 CODE 0126 201
ROW_3 CODE 012B 204
RS0 BIT D3
RS1 BIT D4
RXD BIT B0
RX_LOOP CODE 0045 57
RX_MAIN CODE 0044 56
S9K_MAIN CODE 0030 35
SBUF DATA 99
SCON DATA 98
SEND4X4_PARALLEL CODE 009F 114
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
T0 BIT B4
T1 BIT B5
TB8 BIT 9B
TCON DATA 88
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIMER0 CODE 000B
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 8
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
TR0 BIT 8C
TR1 BIT 8E
TXD BIT B1
TX_LOOP CODE 003E 47
TX_MAIN CODE 003C 46
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -