1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
|
1 ;--------------------------------------------------------
2 ; File Created by SDCC : free open source ANSI-C Compiler
3 ; Version 2.9.0 #5416 (Oct 6 2009) (UNIX)
4 ; This file was generated Tue Oct 27 23:03:55 2009
5 ;--------------------------------------------------------
6 .module keypad_display
7 .optsdcc -mmcs51 --model-small
8
9 ;--------------------------------------------------------
10 ; Public variables in this module
11 ;--------------------------------------------------------
12 .globl _main
13 .globl _CY
14 .globl _AC
15 .globl _F0
16 .globl _RS1
17 .globl _RS0
18 .globl _OV
19 .globl _F1
20 .globl _P
21 .globl _PS
22 .globl _PT1
23 .globl _PX1
24 .globl _PT0
25 .globl _PX0
26 .globl _RD
27 .globl _WR
28 .globl _T1
29 .globl _T0
30 .globl _INT1
31 .globl _INT0
32 .globl _TXD
33 .globl _RXD
34 .globl _P3_7
35 .globl _P3_6
36 .globl _P3_5
37 .globl _P3_4
38 .globl _P3_3
39 .globl _P3_2
40 .globl _P3_1
41 .globl _P3_0
42 .globl _EA
43 .globl _ES
44 .globl _ET1
45 .globl _EX1
46 .globl _ET0
47 .globl _EX0
48 .globl _P2_7
49 .globl _P2_6
50 .globl _P2_5
51 .globl _P2_4
52 .globl _P2_3
53 .globl _P2_2
54 .globl _P2_1
55 .globl _P2_0
56 .globl _SM0
57 .globl _SM1
58 .globl _SM2
59 .globl _REN
60 .globl _TB8
61 .globl _RB8
62 .globl _TI
63 .globl _RI
64 .globl _P1_7
65 .globl _P1_6
66 .globl _P1_5
67 .globl _P1_4
68 .globl _P1_3
69 .globl _P1_2
70 .globl _P1_1
71 .globl _P1_0
72 .globl _TF1
73 .globl _TR1
74 .globl _TF0
75 .globl _TR0
76 .globl _IE1
77 .globl _IT1
78 .globl _IE0
79 .globl _IT0
80 .globl _P0_7
81 .globl _P0_6
82 .globl _P0_5
83 .globl _P0_4
84 .globl _P0_3
85 .globl _P0_2
86 .globl _P0_1
87 .globl _P0_0
88 .globl _B
89 .globl _ACC
90 .globl _PSW
91 .globl _IP
92 .globl _P3
93 .globl _IE
94 .globl _P2
95 .globl _SBUF
96 .globl _SCON
97 .globl _P1
98 .globl _TH1
99 .globl _TH0
100 .globl _TL1
101 .globl _TL0
102 .globl _TMOD
103 .globl _TCON
104 .globl _PCON
105 .globl _DPH
106 .globl _DPL
107 .globl _SP
108 .globl _P0
109 .globl _row
110 .globl _state
111 ;--------------------------------------------------------
112 ; special function registers
113 ;--------------------------------------------------------
114 .area RSEG (DATA)
0080 115 G$P0$0$0 == 0x0080
0080 116 _P0 = 0x0080
0081 117 G$SP$0$0 == 0x0081
0081 118 _SP = 0x0081
0082 119 G$DPL$0$0 == 0x0082
0082 120 _DPL = 0x0082
0083 121 G$DPH$0$0 == 0x0083
0083 122 _DPH = 0x0083
0087 123 G$PCON$0$0 == 0x0087
0087 124 _PCON = 0x0087
0088 125 G$TCON$0$0 == 0x0088
0088 126 _TCON = 0x0088
0089 127 G$TMOD$0$0 == 0x0089
0089 128 _TMOD = 0x0089
008A 129 G$TL0$0$0 == 0x008a
008A 130 _TL0 = 0x008a
008B 131 G$TL1$0$0 == 0x008b
008B 132 _TL1 = 0x008b
008C 133 G$TH0$0$0 == 0x008c
008C 134 _TH0 = 0x008c
008D 135 G$TH1$0$0 == 0x008d
008D 136 _TH1 = 0x008d
0090 137 G$P1$0$0 == 0x0090
0090 138 _P1 = 0x0090
0098 139 G$SCON$0$0 == 0x0098
0098 140 _SCON = 0x0098
0099 141 G$SBUF$0$0 == 0x0099
0099 142 _SBUF = 0x0099
00A0 143 G$P2$0$0 == 0x00a0
00A0 144 _P2 = 0x00a0
00A8 145 G$IE$0$0 == 0x00a8
00A8 146 _IE = 0x00a8
00B0 147 G$P3$0$0 == 0x00b0
00B0 148 _P3 = 0x00b0
00B8 149 G$IP$0$0 == 0x00b8
00B8 150 _IP = 0x00b8
00D0 151 G$PSW$0$0 == 0x00d0
00D0 152 _PSW = 0x00d0
00E0 153 G$ACC$0$0 == 0x00e0
00E0 154 _ACC = 0x00e0
00F0 155 G$B$0$0 == 0x00f0
00F0 156 _B = 0x00f0
157 ;--------------------------------------------------------
158 ; special function bits
159 ;--------------------------------------------------------
160 .area RSEG (DATA)
0080 161 G$P0_0$0$0 == 0x0080
0080 162 _P0_0 = 0x0080
0081 163 G$P0_1$0$0 == 0x0081
0081 164 _P0_1 = 0x0081
0082 165 G$P0_2$0$0 == 0x0082
0082 166 _P0_2 = 0x0082
0083 167 G$P0_3$0$0 == 0x0083
0083 168 _P0_3 = 0x0083
0084 169 G$P0_4$0$0 == 0x0084
0084 170 _P0_4 = 0x0084
0085 171 G$P0_5$0$0 == 0x0085
0085 172 _P0_5 = 0x0085
0086 173 G$P0_6$0$0 == 0x0086
0086 174 _P0_6 = 0x0086
0087 175 G$P0_7$0$0 == 0x0087
0087 176 _P0_7 = 0x0087
0088 177 G$IT0$0$0 == 0x0088
0088 178 _IT0 = 0x0088
0089 179 G$IE0$0$0 == 0x0089
0089 180 _IE0 = 0x0089
008A 181 G$IT1$0$0 == 0x008a
008A 182 _IT1 = 0x008a
008B 183 G$IE1$0$0 == 0x008b
008B 184 _IE1 = 0x008b
008C 185 G$TR0$0$0 == 0x008c
008C 186 _TR0 = 0x008c
008D 187 G$TF0$0$0 == 0x008d
008D 188 _TF0 = 0x008d
008E 189 G$TR1$0$0 == 0x008e
008E 190 _TR1 = 0x008e
008F 191 G$TF1$0$0 == 0x008f
008F 192 _TF1 = 0x008f
0090 193 G$P1_0$0$0 == 0x0090
0090 194 _P1_0 = 0x0090
0091 195 G$P1_1$0$0 == 0x0091
0091 196 _P1_1 = 0x0091
0092 197 G$P1_2$0$0 == 0x0092
0092 198 _P1_2 = 0x0092
0093 199 G$P1_3$0$0 == 0x0093
0093 200 _P1_3 = 0x0093
0094 201 G$P1_4$0$0 == 0x0094
0094 202 _P1_4 = 0x0094
0095 203 G$P1_5$0$0 == 0x0095
0095 204 _P1_5 = 0x0095
0096 205 G$P1_6$0$0 == 0x0096
0096 206 _P1_6 = 0x0096
0097 207 G$P1_7$0$0 == 0x0097
0097 208 _P1_7 = 0x0097
0098 209 G$RI$0$0 == 0x0098
0098 210 _RI = 0x0098
0099 211 G$TI$0$0 == 0x0099
0099 212 _TI = 0x0099
009A 213 G$RB8$0$0 == 0x009a
009A 214 _RB8 = 0x009a
009B 215 G$TB8$0$0 == 0x009b
009B 216 _TB8 = 0x009b
009C 217 G$REN$0$0 == 0x009c
009C 218 _REN = 0x009c
009D 219 G$SM2$0$0 == 0x009d
009D 220 _SM2 = 0x009d
009E 221 G$SM1$0$0 == 0x009e
009E 222 _SM1 = 0x009e
009F 223 G$SM0$0$0 == 0x009f
009F 224 _SM0 = 0x009f
00A0 225 G$P2_0$0$0 == 0x00a0
00A0 226 _P2_0 = 0x00a0
00A1 227 G$P2_1$0$0 == 0x00a1
00A1 228 _P2_1 = 0x00a1
00A2 229 G$P2_2$0$0 == 0x00a2
00A2 230 _P2_2 = 0x00a2
00A3 231 G$P2_3$0$0 == 0x00a3
00A3 232 _P2_3 = 0x00a3
00A4 233 G$P2_4$0$0 == 0x00a4
00A4 234 _P2_4 = 0x00a4
00A5 235 G$P2_5$0$0 == 0x00a5
00A5 236 _P2_5 = 0x00a5
00A6 237 G$P2_6$0$0 == 0x00a6
00A6 238 _P2_6 = 0x00a6
00A7 239 G$P2_7$0$0 == 0x00a7
00A7 240 _P2_7 = 0x00a7
00A8 241 G$EX0$0$0 == 0x00a8
00A8 242 _EX0 = 0x00a8
00A9 243 G$ET0$0$0 == 0x00a9
00A9 244 _ET0 = 0x00a9
00AA 245 G$EX1$0$0 == 0x00aa
00AA 246 _EX1 = 0x00aa
00AB 247 G$ET1$0$0 == 0x00ab
00AB 248 _ET1 = 0x00ab
00AC 249 G$ES$0$0 == 0x00ac
00AC 250 _ES = 0x00ac
00AF 251 G$EA$0$0 == 0x00af
00AF 252 _EA = 0x00af
00B0 253 G$P3_0$0$0 == 0x00b0
00B0 254 _P3_0 = 0x00b0
00B1 255 G$P3_1$0$0 == 0x00b1
00B1 256 _P3_1 = 0x00b1
00B2 257 G$P3_2$0$0 == 0x00b2
00B2 258 _P3_2 = 0x00b2
00B3 259 G$P3_3$0$0 == 0x00b3
00B3 260 _P3_3 = 0x00b3
00B4 261 G$P3_4$0$0 == 0x00b4
00B4 262 _P3_4 = 0x00b4
00B5 263 G$P3_5$0$0 == 0x00b5
00B5 264 _P3_5 = 0x00b5
00B6 265 G$P3_6$0$0 == 0x00b6
00B6 266 _P3_6 = 0x00b6
00B7 267 G$P3_7$0$0 == 0x00b7
00B7 268 _P3_7 = 0x00b7
00B0 269 G$RXD$0$0 == 0x00b0
00B0 270 _RXD = 0x00b0
00B1 271 G$TXD$0$0 == 0x00b1
00B1 272 _TXD = 0x00b1
00B2 273 G$INT0$0$0 == 0x00b2
00B2 274 _INT0 = 0x00b2
00B3 275 G$INT1$0$0 == 0x00b3
00B3 276 _INT1 = 0x00b3
00B4 277 G$T0$0$0 == 0x00b4
00B4 278 _T0 = 0x00b4
00B5 279 G$T1$0$0 == 0x00b5
00B5 280 _T1 = 0x00b5
00B6 281 G$WR$0$0 == 0x00b6
00B6 282 _WR = 0x00b6
00B7 283 G$RD$0$0 == 0x00b7
00B7 284 _RD = 0x00b7
00B8 285 G$PX0$0$0 == 0x00b8
00B8 286 _PX0 = 0x00b8
00B9 287 G$PT0$0$0 == 0x00b9
00B9 288 _PT0 = 0x00b9
00BA 289 G$PX1$0$0 == 0x00ba
00BA 290 _PX1 = 0x00ba
00BB 291 G$PT1$0$0 == 0x00bb
00BB 292 _PT1 = 0x00bb
00BC 293 G$PS$0$0 == 0x00bc
00BC 294 _PS = 0x00bc
00D0 295 G$P$0$0 == 0x00d0
00D0 296 _P = 0x00d0
00D1 297 G$F1$0$0 == 0x00d1
00D1 298 _F1 = 0x00d1
00D2 299 G$OV$0$0 == 0x00d2
00D2 300 _OV = 0x00d2
00D3 301 G$RS0$0$0 == 0x00d3
00D3 302 _RS0 = 0x00d3
00D4 303 G$RS1$0$0 == 0x00d4
00D4 304 _RS1 = 0x00d4
00D5 305 G$F0$0$0 == 0x00d5
00D5 306 _F0 = 0x00d5
00D6 307 G$AC$0$0 == 0x00d6
00D6 308 _AC = 0x00d6
00D7 309 G$CY$0$0 == 0x00d7
00D7 310 _CY = 0x00d7
311 ;--------------------------------------------------------
312 ; overlayable register banks
313 ;--------------------------------------------------------
314 .area REG_BANK_0 (REL,OVR,DATA)
0000 315 .ds 8
316 ;--------------------------------------------------------
317 ; internal ram data
318 ;--------------------------------------------------------
319 .area DSEG (DATA)
0000 320 G$state$0$0==.
0008 321 _state::
0008 322 .ds 1
0001 323 G$row$0$0==.
0009 324 _row::
0009 325 .ds 2
326 ;--------------------------------------------------------
327 ; overlayable items in internal ram
328 ;--------------------------------------------------------
329 .area OSEG (OVR,DATA)
330 ;--------------------------------------------------------
331 ; Stack segment in internal ram
332 ;--------------------------------------------------------
333 .area SSEG (DATA)
000B 334 __start__stack:
000B 335 .ds 1
336
337 ;--------------------------------------------------------
338 ; indirectly addressable internal ram data
339 ;--------------------------------------------------------
340 .area ISEG (DATA)
341 ;--------------------------------------------------------
342 ; absolute internal ram data
343 ;--------------------------------------------------------
344 .area IABS (ABS,DATA)
345 .area IABS (ABS,DATA)
346 ;--------------------------------------------------------
347 ; bit data
348 ;--------------------------------------------------------
349 .area BSEG (BIT)
350 ;--------------------------------------------------------
351 ; paged external ram data
352 ;--------------------------------------------------------
353 .area PSEG (PAG,XDATA)
354 ;--------------------------------------------------------
355 ; external ram data
356 ;--------------------------------------------------------
357 .area XSEG (XDATA)
358 ;--------------------------------------------------------
359 ; absolute external ram data
360 ;--------------------------------------------------------
361 .area XABS (ABS,XDATA)
362 ;--------------------------------------------------------
363 ; external initialized ram data
364 ;--------------------------------------------------------
365 .area XISEG (XDATA)
366 .area HOME (CODE)
367 .area GSINIT0 (CODE)
368 .area GSINIT1 (CODE)
369 .area GSINIT2 (CODE)
370 .area GSINIT3 (CODE)
371 .area GSINIT4 (CODE)
372 .area GSINIT5 (CODE)
373 .area GSINIT (CODE)
374 .area GSFINAL (CODE)
375 .area CSEG (CODE)
376 ;--------------------------------------------------------
377 ; interrupt vector
378 ;--------------------------------------------------------
379 .area HOME (CODE)
0000 380 __interrupt_vect:
0000 02 00 08 381 ljmp __sdcc_gsinit_startup
382 ;--------------------------------------------------------
383 ; global & static initialisations
384 ;--------------------------------------------------------
385 .area HOME (CODE)
386 .area GSINIT (CODE)
387 .area GSFINAL (CODE)
388 .area GSINIT (CODE)
389 .globl __sdcc_gsinit_startup
390 .globl __sdcc_program_startup
391 .globl __start__stack
392 .globl __mcs51_genXINIT
393 .globl __mcs51_genXRAMCLEAR
394 .globl __mcs51_genRAMCLEAR
395 .area GSFINAL (CODE)
0061 02 00 03 396 ljmp __sdcc_program_startup
397 ;--------------------------------------------------------
398 ; Home
399 ;--------------------------------------------------------
400 .area HOME (CODE)
401 .area HOME (CODE)
0003 402 __sdcc_program_startup:
0003 12 00 64 403 lcall _main
404 ; return from main will lock up
0006 80 FE 405 sjmp .
406 ;--------------------------------------------------------
407 ; code
408 ;--------------------------------------------------------
409 .area CSEG (CODE)
410 ;------------------------------------------------------------
411 ;Allocation info for local variables in function 'main'
412 ;------------------------------------------------------------
413 ;------------------------------------------------------------
0000 414 G$main$0$0 ==.
0000 415 C$keypad_display.c$38$0$0 ==.
416 ; keypad_display.c:38: int main()
417 ; -----------------------------------------
418 ; function main
419 ; -----------------------------------------
0064 420 _main:
0002 421 ar2 = 0x02
0003 422 ar3 = 0x03
0004 423 ar4 = 0x04
0005 424 ar5 = 0x05
0006 425 ar6 = 0x06
0007 426 ar7 = 0x07
0000 427 ar0 = 0x00
0001 428 ar1 = 0x01
0000 429 C$keypad_display.c$40$1$1 ==.
430 ; keypad_display.c:40: while(1) {
0064 431 00123$:
0000 432 C$keypad_display.c$41$2$2 ==.
433 ; keypad_display.c:41: for(row=0; row<4; row++) {
0064 E4 434 clr a
0065 F5 09 435 mov _row,a
0067 F5 0A 436 mov (_row + 1),a
0069 437 00118$:
0069 C3 438 clr c
006A E5 09 439 mov a,_row
006C 94 04 440 subb a,#0x04
006E E5 0A 441 mov a,(_row + 1)
0070 64 80 442 xrl a,#0x80
0072 94 80 443 subb a,#0x80
0074 50 EE 444 jnc 00123$
0012 445 C$keypad_display.c$42$3$3 ==.
446 ; keypad_display.c:42: P1=keypad[row];
0076 E5 09 447 mov a,_row
0078 24 1A 448 add a,#_keypad
007A F5 82 449 mov dpl,a
007C E5 0A 450 mov a,(_row + 1)
007E 34 01 451 addc a,#(_keypad >> 8)
0080 F5 83 452 mov dph,a
0082 E4 453 clr a
0083 93 454 movc a,@a+dptr
0084 F5 90 455 mov _P1,a
0022 456 C$keypad_display.c$48$3$3 ==.
457 ; keypad_display.c:48: _endasm;
458
0086 85 90 08 459 mov _state, P1
460
0025 461 C$keypad_display.c$53$3$3 ==.
462 ; keypad_display.c:53: state&=0x0f;
0089 53 08 0F 463 anl _state,#0x0F
0028 464 C$keypad_display.c$54$3$3 ==.
465 ; keypad_display.c:54: state^=0x0f;
008C 63 08 0F 466 xrl _state,#0x0F
002B 467 C$keypad_display.c$56$3$3 ==.
468 ; keypad_display.c:56: if(state & 1) {
008F E5 08 469 mov a,_state
0091 30 E0 05 470 jnb acc.0,00111$
0030 471 C$keypad_display.c$57$4$4 ==.
472 ; keypad_display.c:57: state=0;
0094 75 08 00 473 mov _state,#0x00
0097 80 1F 474 sjmp 00112$
0099 475 00111$:
0035 476 C$keypad_display.c$58$3$3 ==.
477 ; keypad_display.c:58: } else if(state & 2) {
0099 E5 08 478 mov a,_state
009B 30 E1 05 479 jnb acc.1,00108$
003A 480 C$keypad_display.c$59$4$5 ==.
481 ; keypad_display.c:59: state=1;
009E 75 08 01 482 mov _state,#0x01
00A1 80 15 483 sjmp 00112$
00A3 484 00108$:
003F 485 C$keypad_display.c$60$3$3 ==.
486 ; keypad_display.c:60: } else if(state & 4) {
00A3 E5 08 487 mov a,_state
00A5 30 E2 05 488 jnb acc.2,00105$
0044 489 C$keypad_display.c$61$4$6 ==.
490 ; keypad_display.c:61: state=2;
00A8 75 08 02 491 mov _state,#0x02
00AB 80 0B 492 sjmp 00112$
00AD 493 00105$:
0049 494 C$keypad_display.c$62$3$3 ==.
495 ; keypad_display.c:62: } else if(state & 8) {
00AD E5 08 496 mov a,_state
00AF 20 E3 03 497 jb acc.3,00142$
00B2 02 01 0B 498 ljmp 00120$
00B5 499 00142$:
0051 500 C$keypad_display.c$63$4$7 ==.
501 ; keypad_display.c:63: state=3;
00B5 75 08 03 502 mov _state,#0x03
0054 503 C$keypad_display.c$65$3$3 ==.
504 ; keypad_display.c:65: continue;
00B8 505 00112$:
0054 506 C$keypad_display.c$68$3$3 ==.
507 ; keypad_display.c:68: switch(row) {
00B8 E4 508 clr a
00B9 B5 09 06 509 cjne a,_row,00143$
00BC E4 510 clr a
00BD B5 0A 02 511 cjne a,(_row + 1),00143$
00C0 80 23 512 sjmp 00113$
00C2 513 00143$:
00C2 74 01 514 mov a,#0x01
00C4 B5 09 06 515 cjne a,_row,00144$
00C7 E4 516 clr a
00C8 B5 0A 02 517 cjne a,(_row + 1),00144$
00CB 80 22 518 sjmp 00114$
00CD 519 00144$:
00CD 74 02 520 mov a,#0x02
00CF B5 09 06 521 cjne a,_row,00145$
00D2 E4 522 clr a
00D3 B5 0A 02 523 cjne a,(_row + 1),00145$
00D6 80 21 524 sjmp 00115$
00D8 525 00145$:
00D8 74 03 526 mov a,#0x03
00DA B5 09 06 527 cjne a,_row,00146$
00DD E4 528 clr a
00DE B5 0A 02 529 cjne a,(_row + 1),00146$
00E1 80 20 530 sjmp 00116$
00E3 531 00146$:
007F 532 C$keypad_display.c$69$4$9 ==.
533 ; keypad_display.c:69: case 0:
00E3 80 26 534 sjmp 00120$
00E5 535 00113$:
0081 536 C$keypad_display.c$70$4$9 ==.
537 ; keypad_display.c:70: P3=display_0[state];
00E5 E5 08 538 mov a,_state
00E7 90 01 1E 539 mov dptr,#_display_0
00EA 93 540 movc a,@a+dptr
00EB F5 B0 541 mov _P3,a
0089 542 C$keypad_display.c$71$4$9 ==.
543 ; keypad_display.c:71: break;
0089 544 C$keypad_display.c$72$4$9 ==.
545 ; keypad_display.c:72: case 1:
00ED 80 1C 546 sjmp 00120$
00EF 547 00114$:
008B 548 C$keypad_display.c$73$4$9 ==.
549 ; keypad_display.c:73: P3=display_1[state];
00EF E5 08 550 mov a,_state
00F1 90 01 22 551 mov dptr,#_display_1
00F4 93 552 movc a,@a+dptr
00F5 F5 B0 553 mov _P3,a
0093 554 C$keypad_display.c$74$4$9 ==.
555 ; keypad_display.c:74: break;
0093 556 C$keypad_display.c$75$4$9 ==.
557 ; keypad_display.c:75: case 2:
00F7 80 12 558 sjmp 00120$
00F9 559 00115$:
0095 560 C$keypad_display.c$76$4$9 ==.
561 ; keypad_display.c:76: P3=display_2[state];
00F9 E5 08 562 mov a,_state
00FB 90 01 26 563 mov dptr,#_display_2
00FE 93 564 movc a,@a+dptr
00FF F5 B0 565 mov _P3,a
009D 566 C$keypad_display.c$77$4$9 ==.
567 ; keypad_display.c:77: break;
009D 568 C$keypad_display.c$78$4$9 ==.
569 ; keypad_display.c:78: case 3:
0101 80 08 570 sjmp 00120$
0103 571 00116$:
009F 572 C$keypad_display.c$79$4$9 ==.
573 ; keypad_display.c:79: P3=display_3[state];
0103 E5 08 574 mov a,_state
0105 90 01 2A 575 mov dptr,#_display_3
0108 93 576 movc a,@a+dptr
0109 F5 B0 577 mov _P3,a
00A7 578 C$keypad_display.c$81$2$2 ==.
579 ; keypad_display.c:81: }
010B 580 00120$:
00A7 581 C$keypad_display.c$41$2$2 ==.
582 ; keypad_display.c:41: for(row=0; row<4; row++) {
010B 05 09 583 inc _row
010D E4 584 clr a
010E B5 09 02 585 cjne a,_row,00147$
0111 05 0A 586 inc (_row + 1)
0113 587 00147$:
00AF 588 C$keypad_display.c$84$1$1 ==.
00AF 589 XG$main$0$0 ==.
0113 02 00 69 590 ljmp 00118$
591 .area CSEG (CODE)
592 .area CONST (CODE)
0000 593 Fkeypad_display$keypad$0$0 == .
011A 594 _keypad:
011A EF 595 .db #0xEF
011B DF 596 .db #0xDF
011C BF 597 .db #0xBF
011D 7F 598 .db #0x7F
0004 599 Fkeypad_display$display_0$0$0 == .
011E 600 _display_0:
011E F9 601 .db #0xF9
011F 64 602 .db #0x64
0120 70 603 .db #0x70
0121 48 604 .db #0x48
0008 605 Fkeypad_display$display_1$0$0 == .
0122 606 _display_1:
0122 59 607 .db #0x59
0123 52 608 .db #0x52
0124 42 609 .db #0x42
0125 40 610 .db #0x40
000C 611 Fkeypad_display$display_2$0$0 == .
0126 612 _display_2:
0126 F8 613 .db #0xF8
0127 40 614 .db #0x40
0128 50 615 .db #0x50
0129 C6 616 .db #0xC6
0010 617 Fkeypad_display$display_3$0$0 == .
012A 618 _display_3:
012A 79 619 .db #0x79
012B C0 620 .db #0xC0
012C 49 621 .db #0x49
012D C0 622 .db #0xC0
623 .area XINIT (CODE)
624 .area CABS (ABS,CODE)
|