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 (Feb 3 2010) (UNIX)
4 ; This file was generated Sun Dec 16 06:02:14 2012
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==.
0000 321 _state::
0000 322 .ds 1
0001 323 G$row$0$0==.
0001 324 _row::
0001 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)
0000 334 __start__stack:
0000 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 02s00r00 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)
0000 02s00r03 396 ljmp __sdcc_program_startup
397 ;--------------------------------------------------------
398 ; Home
399 ;--------------------------------------------------------
400 .area HOME (CODE)
401 .area HOME (CODE)
0003 402 __sdcc_program_startup:
0003 12s00r00 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 ; -----------------------------------------
0000 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) {
0000 431 00123$:
0000 432 C$keypad_display.c$41$2$2 ==.
433 ; keypad_display.c:41: for(row=0; row<4; row++) {
0000 E4 434 clr a
0001 F5*01 435 mov _row,a
0003 F5*02 436 mov (_row + 1),a
0005 437 00118$:
0005 C3 438 clr c
0006 E5*01 439 mov a,_row
0008 94 04 440 subb a,#0x04
000A E5*02 441 mov a,(_row + 1)
000C 64 80 442 xrl a,#0x80
000E 94 80 443 subb a,#0x80
0010 50 EE 444 jnc 00123$
0012 445 C$keypad_display.c$42$3$3 ==.
446 ; keypad_display.c:42: P1=keypad[row];
0012 E5*01 447 mov a,_row
0014 24r00 448 add a,#_keypad
0016 F5 82 449 mov dpl,a
0018 E5*02 450 mov a,(_row + 1)
001A 34s00 451 addc a,#(_keypad >> 8)
001C F5 83 452 mov dph,a
001E E4 453 clr a
001F 93 454 movc a,@a+dptr
0020 F5 90 455 mov _P1,a
0022 456 C$keypad_display.c$48$3$3 ==.
457 ; keypad_display.c:48: _endasm;
458
0022 85 90*00 459 mov _state, P1
460
0025 461 C$keypad_display.c$53$3$3 ==.
462 ; keypad_display.c:53: state&=0x0f;
0025 53r00 0F 463 anl _state,#0x0F
0028 464 C$keypad_display.c$54$3$3 ==.
465 ; keypad_display.c:54: state^=0x0f;
0028 63r00 0F 466 xrl _state,#0x0F
002B 467 C$keypad_display.c$56$3$3 ==.
468 ; keypad_display.c:56: if(state & 1) {
002B E5*00 469 mov a,_state
002D 30 E0 05 470 jnb acc.0,00111$
0030 471 C$keypad_display.c$57$4$4 ==.
472 ; keypad_display.c:57: state=0;
0030 75*00 00 473 mov _state,#0x00
0033 80 1F 474 sjmp 00112$
0035 475 00111$:
0035 476 C$keypad_display.c$58$3$3 ==.
477 ; keypad_display.c:58: } else if(state & 2) {
0035 E5*00 478 mov a,_state
0037 30 E1 05 479 jnb acc.1,00108$
003A 480 C$keypad_display.c$59$4$5 ==.
481 ; keypad_display.c:59: state=1;
003A 75*00 01 482 mov _state,#0x01
003D 80 15 483 sjmp 00112$
003F 484 00108$:
003F 485 C$keypad_display.c$60$3$3 ==.
486 ; keypad_display.c:60: } else if(state & 4) {
003F E5*00 487 mov a,_state
0041 30 E2 05 488 jnb acc.2,00105$
0044 489 C$keypad_display.c$61$4$6 ==.
490 ; keypad_display.c:61: state=2;
0044 75*00 02 491 mov _state,#0x02
0047 80 0B 492 sjmp 00112$
0049 493 00105$:
0049 494 C$keypad_display.c$62$3$3 ==.
495 ; keypad_display.c:62: } else if(state & 8) {
0049 E5*00 496 mov a,_state
004B 20 E3 03 497 jb acc.3,00142$
004E 02s00rA7 498 ljmp 00120$
0051 499 00142$:
0051 500 C$keypad_display.c$63$4$7 ==.
501 ; keypad_display.c:63: state=3;
0051 75*00 03 502 mov _state,#0x03
0054 503 C$keypad_display.c$65$3$3 ==.
504 ; keypad_display.c:65: continue;
0054 505 00112$:
0054 506 C$keypad_display.c$68$3$3 ==.
507 ; keypad_display.c:68: switch(row) {
0054 E4 508 clr a
0055 B5*01 06 509 cjne a,_row,00143$
0058 E4 510 clr a
0059 B5*02 02 511 cjne a,(_row + 1),00143$
005C 80 23 512 sjmp 00113$
005E 513 00143$:
005E 74 01 514 mov a,#0x01
0060 B5*01 06 515 cjne a,_row,00144$
0063 E4 516 clr a
0064 B5*02 02 517 cjne a,(_row + 1),00144$
0067 80 22 518 sjmp 00114$
0069 519 00144$:
0069 74 02 520 mov a,#0x02
006B B5*01 06 521 cjne a,_row,00145$
006E E4 522 clr a
006F B5*02 02 523 cjne a,(_row + 1),00145$
0072 80 21 524 sjmp 00115$
0074 525 00145$:
0074 74 03 526 mov a,#0x03
0076 B5*01 06 527 cjne a,_row,00146$
0079 E4 528 clr a
007A B5*02 02 529 cjne a,(_row + 1),00146$
007D 80 20 530 sjmp 00116$
007F 531 00146$:
007F 532 C$keypad_display.c$69$4$9 ==.
533 ; keypad_display.c:69: case 0:
007F 80 26 534 sjmp 00120$
0081 535 00113$:
0081 536 C$keypad_display.c$70$4$9 ==.
537 ; keypad_display.c:70: P3=display_0[state];
0081 E5*00 538 mov a,_state
0083 90s00r04 539 mov dptr,#_display_0
0086 93 540 movc a,@a+dptr
0087 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:
0089 80 1C 546 sjmp 00120$
008B 547 00114$:
008B 548 C$keypad_display.c$73$4$9 ==.
549 ; keypad_display.c:73: P3=display_1[state];
008B E5*00 550 mov a,_state
008D 90s00r08 551 mov dptr,#_display_1
0090 93 552 movc a,@a+dptr
0091 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:
0093 80 12 558 sjmp 00120$
0095 559 00115$:
0095 560 C$keypad_display.c$76$4$9 ==.
561 ; keypad_display.c:76: P3=display_2[state];
0095 E5*00 562 mov a,_state
0097 90s00r0C 563 mov dptr,#_display_2
009A 93 564 movc a,@a+dptr
009B 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:
009D 80 08 570 sjmp 00120$
009F 571 00116$:
009F 572 C$keypad_display.c$79$4$9 ==.
573 ; keypad_display.c:79: P3=display_3[state];
009F E5*00 574 mov a,_state
00A1 90s00r10 575 mov dptr,#_display_3
00A4 93 576 movc a,@a+dptr
00A5 F5 B0 577 mov _P3,a
00A7 578 C$keypad_display.c$81$2$2 ==.
579 ; keypad_display.c:81: }
00A7 580 00120$:
00A7 581 C$keypad_display.c$41$2$2 ==.
582 ; keypad_display.c:41: for(row=0; row<4; row++) {
00A7 05*01 583 inc _row
00A9 E4 584 clr a
00AA B5*01 02 585 cjne a,_row,00147$
00AD 05*02 586 inc (_row + 1)
00AF 587 00147$:
00AF 588 C$keypad_display.c$84$1$1 ==.
00AF 589 XG$main$0$0 ==.
00AF 02s00r05 590 ljmp 00118$
591 .area CSEG (CODE)
592 .area CONST (CODE)
0000 593 Fkeypad_display$keypad$0$0 == .
0000 594 _keypad:
0000 EF 595 .db #0xEF
0001 DF 596 .db #0xDF
0002 BF 597 .db #0xBF
0003 7F 598 .db #0x7F
0004 599 Fkeypad_display$display_0$0$0 == .
0004 600 _display_0:
0004 F9 601 .db #0xF9
0005 64 602 .db #0x64
0006 70 603 .db #0x70
0007 48 604 .db #0x48
0008 605 Fkeypad_display$display_1$0$0 == .
0008 606 _display_1:
0008 59 607 .db #0x59
0009 52 608 .db #0x52
000A 42 609 .db #0x42
000B 40 610 .db #0x40
000C 611 Fkeypad_display$display_2$0$0 == .
000C 612 _display_2:
000C F8 613 .db #0xF8
000D 40 614 .db #0x40
000E 50 615 .db #0x50
000F C6 616 .db #0xC6
0010 617 Fkeypad_display$display_3$0$0 == .
0010 618 _display_3:
0010 79 619 .db #0x79
0011 C0 620 .db #0xC0
0012 49 621 .db #0x49
0013 C0 622 .db #0xC0
623 .area XINIT (CODE)
624 .area CABS (ABS,CODE)
|