-
Notifications
You must be signed in to change notification settings - Fork 0
/
LCD_test.lst
1158 lines (1158 loc) · 65.7 KB
/
LCD_test.lst
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
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
0000 1 ;--------------------------------------------------------
0000 2 ; File Created by C51
0000 3 ; Version 1.0.0 #1069 (Apr 23 2015) (MSVC)
0000 4 ; This file was generated Wed Feb 28 19:57:48 2018
0000 5 ;--------------------------------------------------------
5 $name LCD_test
6 $optc51 --model-small
0000 8 R_DSEG segment data
0000 9 R_CSEG segment code
0000 10 R_BSEG segment bit
0000 11 R_XSEG segment xdata
0000 12 R_PSEG segment xdata
0000 13 R_ISEG segment idata
0000 14 R_OSEG segment data overlay
0000 15 BIT_BANK segment data overlay
0000 16 R_HOME segment code
0000 17 R_GSINIT segment code
0000 18 R_IXSEG segment xdata
0000 19 R_CONST segment code
0000 20 R_XINIT segment code
0000 21 R_DINIT segment code
0000 22
0000 23 ;--------------------------------------------------------
0000 24 ; Public variables in this module
0000 25 ;--------------------------------------------------------
0000 26 public _main
0000 27 public _getsn
0000 28 public _LCDprint
0000 29 public _LCD_4BIT
0000 30 public _WriteCommand
0000 31 public _WriteData
0000 32 public _LCD_byte
0000 33 public _LCD_pulse
0000 34 public _waitms
0000 35 public _Timer3us
0000 36 public __c51_external_startup
0000 37 public _LCDprint_PARM_3
0000 38 public _getsn_PARM_2
0000 39 public _LCDprint_PARM_2
0000 40 ;--------------------------------------------------------
0000 41 ; Special Function Registers
0000 42 ;--------------------------------------------------------
0000 43 _ACC DATA 0xe0
0000 44 _ADC0ASAH DATA 0xb6
0000 45 _ADC0ASAL DATA 0xb5
0000 46 _ADC0ASCF DATA 0xa1
0000 47 _ADC0ASCT DATA 0xc7
0000 48 _ADC0CF0 DATA 0xbc
0000 49 _ADC0CF1 DATA 0xb9
0000 50 _ADC0CF2 DATA 0xdf
0000 51 _ADC0CN0 DATA 0xe8
0000 52 _ADC0CN1 DATA 0xb2
0000 53 _ADC0CN2 DATA 0xb3
0000 54 _ADC0GTH DATA 0xc4
0000 55 _ADC0GTL DATA 0xc3
0000 56 _ADC0H DATA 0xbe
0000 57 _ADC0L DATA 0xbd
0000 58 _ADC0LTH DATA 0xc6
0000 59 _ADC0LTL DATA 0xc5
0000 60 _ADC0MX DATA 0xbb
0000 61 _B DATA 0xf0
0000 62 _CKCON0 DATA 0x8e
0000 63 _CKCON1 DATA 0xa6
0000 64 _CLEN0 DATA 0xc6
0000 65 _CLIE0 DATA 0xc7
0000 66 _CLIF0 DATA 0xe8
0000 67 _CLKSEL DATA 0xa9
0000 68 _CLOUT0 DATA 0xd1
0000 69 _CLU0CF DATA 0xb1
0000 70 _CLU0FN DATA 0xaf
0000 71 _CLU0MX DATA 0x84
0000 72 _CLU1CF DATA 0xb3
0000 73 _CLU1FN DATA 0xb2
0000 74 _CLU1MX DATA 0x85
0000 75 _CLU2CF DATA 0xb6
0000 76 _CLU2FN DATA 0xb5
0000 77 _CLU2MX DATA 0x91
0000 78 _CLU3CF DATA 0xbf
0000 79 _CLU3FN DATA 0xbe
0000 80 _CLU3MX DATA 0xae
0000 81 _CMP0CN0 DATA 0x9b
0000 82 _CMP0CN1 DATA 0x99
0000 83 _CMP0MD DATA 0x9d
0000 84 _CMP0MX DATA 0x9f
0000 85 _CMP1CN0 DATA 0xbf
0000 86 _CMP1CN1 DATA 0xac
0000 87 _CMP1MD DATA 0xab
0000 88 _CMP1MX DATA 0xaa
0000 89 _CRC0CN0 DATA 0xce
0000 90 _CRC0CN1 DATA 0x86
0000 91 _CRC0CNT DATA 0xd3
0000 92 _CRC0DAT DATA 0xcb
0000 93 _CRC0FLIP DATA 0xcf
0000 94 _CRC0IN DATA 0xca
0000 95 _CRC0ST DATA 0xd2
0000 96 _DAC0CF0 DATA 0x91
0000 97 _DAC0CF1 DATA 0x92
0000 98 _DAC0H DATA 0x85
0000 99 _DAC0L DATA 0x84
0000 100 _DAC1CF0 DATA 0x93
0000 101 _DAC1CF1 DATA 0x94
0000 102 _DAC1H DATA 0x8a
0000 103 _DAC1L DATA 0x89
0000 104 _DAC2CF0 DATA 0x95
0000 105 _DAC2CF1 DATA 0x96
0000 106 _DAC2H DATA 0x8c
0000 107 _DAC2L DATA 0x8b
0000 108 _DAC3CF0 DATA 0x9a
0000 109 _DAC3CF1 DATA 0x9c
0000 110 _DAC3H DATA 0x8e
0000 111 _DAC3L DATA 0x8d
0000 112 _DACGCF0 DATA 0x88
0000 113 _DACGCF1 DATA 0x98
0000 114 _DACGCF2 DATA 0xa2
0000 115 _DERIVID DATA 0xad
0000 116 _DEVICEID DATA 0xb5
0000 117 _DPH DATA 0x83
0000 118 _DPL DATA 0x82
0000 119 _EIE1 DATA 0xe6
0000 120 _EIE2 DATA 0xf3
0000 121 _EIP1 DATA 0xbb
0000 122 _EIP1H DATA 0xee
0000 123 _EIP2 DATA 0xed
0000 124 _EIP2H DATA 0xf6
0000 125 _EMI0CN DATA 0xe7
0000 126 _FLKEY DATA 0xb7
0000 127 _HFO0CAL DATA 0xc7
0000 128 _HFO1CAL DATA 0xd6
0000 129 _HFOCN DATA 0xef
0000 130 _I2C0ADM DATA 0xff
0000 131 _I2C0CN0 DATA 0xba
0000 132 _I2C0DIN DATA 0xbc
0000 133 _I2C0DOUT DATA 0xbb
0000 134 _I2C0FCN0 DATA 0xad
0000 135 _I2C0FCN1 DATA 0xab
0000 136 _I2C0FCT DATA 0xf5
0000 137 _I2C0SLAD DATA 0xbd
0000 138 _I2C0STAT DATA 0xb9
0000 139 _IE DATA 0xa8
0000 140 _IP DATA 0xb8
0000 141 _IPH DATA 0xf2
0000 142 _IT01CF DATA 0xe4
0000 143 _LFO0CN DATA 0xb1
0000 144 _P0 DATA 0x80
0000 145 _P0MASK DATA 0xfe
0000 146 _P0MAT DATA 0xfd
0000 147 _P0MDIN DATA 0xf1
0000 148 _P0MDOUT DATA 0xa4
0000 149 _P0SKIP DATA 0xd4
0000 150 _P1 DATA 0x90
0000 151 _P1MASK DATA 0xee
0000 152 _P1MAT DATA 0xed
0000 153 _P1MDIN DATA 0xf2
0000 154 _P1MDOUT DATA 0xa5
0000 155 _P1SKIP DATA 0xd5
0000 156 _P2 DATA 0xa0
0000 157 _P2MASK DATA 0xfc
0000 158 _P2MAT DATA 0xfb
0000 159 _P2MDIN DATA 0xf3
0000 160 _P2MDOUT DATA 0xa6
0000 161 _P2SKIP DATA 0xcc
0000 162 _P3 DATA 0xb0
0000 163 _P3MDIN DATA 0xf4
0000 164 _P3MDOUT DATA 0x9c
0000 165 _PCA0CENT DATA 0x9e
0000 166 _PCA0CLR DATA 0x9c
0000 167 _PCA0CN0 DATA 0xd8
0000 168 _PCA0CPH0 DATA 0xfc
0000 169 _PCA0CPH1 DATA 0xea
0000 170 _PCA0CPH2 DATA 0xec
0000 171 _PCA0CPH3 DATA 0xf5
0000 172 _PCA0CPH4 DATA 0x85
0000 173 _PCA0CPH5 DATA 0xde
0000 174 _PCA0CPL0 DATA 0xfb
0000 175 _PCA0CPL1 DATA 0xe9
0000 176 _PCA0CPL2 DATA 0xeb
0000 177 _PCA0CPL3 DATA 0xf4
0000 178 _PCA0CPL4 DATA 0x84
0000 179 _PCA0CPL5 DATA 0xdd
0000 180 _PCA0CPM0 DATA 0xda
0000 181 _PCA0CPM1 DATA 0xdb
0000 182 _PCA0CPM2 DATA 0xdc
0000 183 _PCA0CPM3 DATA 0xae
0000 184 _PCA0CPM4 DATA 0xaf
0000 185 _PCA0CPM5 DATA 0xcc
0000 186 _PCA0H DATA 0xfa
0000 187 _PCA0L DATA 0xf9
0000 188 _PCA0MD DATA 0xd9
0000 189 _PCA0POL DATA 0x96
0000 190 _PCA0PWM DATA 0xf7
0000 191 _PCON0 DATA 0x87
0000 192 _PCON1 DATA 0xcd
0000 193 _PFE0CN DATA 0xc1
0000 194 _PRTDRV DATA 0xf6
0000 195 _PSCTL DATA 0x8f
0000 196 _PSTAT0 DATA 0xaa
0000 197 _PSW DATA 0xd0
0000 198 _REF0CN DATA 0xd1
0000 199 _REG0CN DATA 0xc9
0000 200 _REVID DATA 0xb6
0000 201 _RSTSRC DATA 0xef
0000 202 _SBCON1 DATA 0x94
0000 203 _SBRLH1 DATA 0x96
0000 204 _SBRLL1 DATA 0x95
0000 205 _SBUF DATA 0x99
0000 206 _SBUF0 DATA 0x99
0000 207 _SBUF1 DATA 0x92
0000 208 _SCON DATA 0x98
0000 209 _SCON0 DATA 0x98
0000 210 _SCON1 DATA 0xc8
0000 211 _SFRPAGE DATA 0xa7
0000 212 _SFRPGCN DATA 0xbc
0000 213 _SFRSTACK DATA 0xd7
0000 214 _SMB0ADM DATA 0xd6
0000 215 _SMB0ADR DATA 0xd7
0000 216 _SMB0CF DATA 0xc1
0000 217 _SMB0CN0 DATA 0xc0
0000 218 _SMB0DAT DATA 0xc2
0000 219 _SMB0FCN0 DATA 0xc3
0000 220 _SMB0FCN1 DATA 0xc4
0000 221 _SMB0FCT DATA 0xef
0000 222 _SMB0RXLN DATA 0xc5
0000 223 _SMB0TC DATA 0xac
0000 224 _SMOD1 DATA 0x93
0000 225 _SP DATA 0x81
0000 226 _SPI0CFG DATA 0xa1
0000 227 _SPI0CKR DATA 0xa2
0000 228 _SPI0CN0 DATA 0xf8
0000 229 _SPI0DAT DATA 0xa3
0000 230 _SPI0FCN0 DATA 0x9a
0000 231 _SPI0FCN1 DATA 0x9b
0000 232 _SPI0FCT DATA 0xf7
0000 233 _SPI0PCF DATA 0xdf
0000 234 _TCON DATA 0x88
0000 235 _TH0 DATA 0x8c
0000 236 _TH1 DATA 0x8d
0000 237 _TL0 DATA 0x8a
0000 238 _TL1 DATA 0x8b
0000 239 _TMOD DATA 0x89
0000 240 _TMR2CN0 DATA 0xc8
0000 241 _TMR2CN1 DATA 0xfd
0000 242 _TMR2H DATA 0xcf
0000 243 _TMR2L DATA 0xce
0000 244 _TMR2RLH DATA 0xcb
0000 245 _TMR2RLL DATA 0xca
0000 246 _TMR3CN0 DATA 0x91
0000 247 _TMR3CN1 DATA 0xfe
0000 248 _TMR3H DATA 0x95
0000 249 _TMR3L DATA 0x94
0000 250 _TMR3RLH DATA 0x93
0000 251 _TMR3RLL DATA 0x92
0000 252 _TMR4CN0 DATA 0x98
0000 253 _TMR4CN1 DATA 0xff
0000 254 _TMR4H DATA 0xa5
0000 255 _TMR4L DATA 0xa4
0000 256 _TMR4RLH DATA 0xa3
0000 257 _TMR4RLL DATA 0xa2
0000 258 _TMR5CN0 DATA 0xc0
0000 259 _TMR5CN1 DATA 0xf1
0000 260 _TMR5H DATA 0xd5
0000 261 _TMR5L DATA 0xd4
0000 262 _TMR5RLH DATA 0xd3
0000 263 _TMR5RLL DATA 0xd2
0000 264 _UART0PCF DATA 0xd9
0000 265 _UART1FCN0 DATA 0x9d
0000 266 _UART1FCN1 DATA 0xd8
0000 267 _UART1FCT DATA 0xfa
0000 268 _UART1LIN DATA 0x9e
0000 269 _UART1PCF DATA 0xda
0000 270 _VDM0CN DATA 0xff
0000 271 _WDTCN DATA 0x97
0000 272 _XBR0 DATA 0xe1
0000 273 _XBR1 DATA 0xe2
0000 274 _XBR2 DATA 0xe3
0000 275 _XOSC0CN DATA 0x86
0000 276 _DPTR DATA 0x8382
0000 277 _TMR2RL DATA 0xcbca
0000 278 _TMR3RL DATA 0x9392
0000 279 _TMR4RL DATA 0xa3a2
0000 280 _TMR5RL DATA 0xd3d2
0000 281 _TMR0 DATA 0x8c8a
0000 282 _TMR1 DATA 0x8d8b
0000 283 _TMR2 DATA 0xcfce
0000 284 _TMR3 DATA 0x9594
0000 285 _TMR4 DATA 0xa5a4
0000 286 _TMR5 DATA 0xd5d4
0000 287 _SBRL1 DATA 0x9695
0000 288 _PCA0 DATA 0xfaf9
0000 289 _PCA0CP0 DATA 0xfcfb
0000 290 _PCA0CP1 DATA 0xeae9
0000 291 _PCA0CP2 DATA 0xeceb
0000 292 _PCA0CP3 DATA 0xf5f4
0000 293 _PCA0CP4 DATA 0x8584
0000 294 _PCA0CP5 DATA 0xdedd
0000 295 _ADC0ASA DATA 0xb6b5
0000 296 _ADC0GT DATA 0xc4c3
0000 297 _ADC0 DATA 0xbebd
0000 298 _ADC0LT DATA 0xc6c5
0000 299 _DAC0 DATA 0x8584
0000 300 _DAC1 DATA 0x8a89
0000 301 _DAC2 DATA 0x8c8b
0000 302 _DAC3 DATA 0x8e8d
0000 303 ;--------------------------------------------------------
0000 304 ; special function bits
0000 305 ;--------------------------------------------------------
0000 306 _ACC_0 BIT 0xe0
0000 307 _ACC_1 BIT 0xe1
0000 308 _ACC_2 BIT 0xe2
0000 309 _ACC_3 BIT 0xe3
0000 310 _ACC_4 BIT 0xe4
0000 311 _ACC_5 BIT 0xe5
0000 312 _ACC_6 BIT 0xe6
0000 313 _ACC_7 BIT 0xe7
0000 314 _TEMPE BIT 0xe8
0000 315 _ADGN0 BIT 0xe9
0000 316 _ADGN1 BIT 0xea
0000 317 _ADWINT BIT 0xeb
0000 318 _ADBUSY BIT 0xec
0000 319 _ADINT BIT 0xed
0000 320 _IPOEN BIT 0xee
0000 321 _ADEN BIT 0xef
0000 322 _B_0 BIT 0xf0
0000 323 _B_1 BIT 0xf1
0000 324 _B_2 BIT 0xf2
0000 325 _B_3 BIT 0xf3
0000 326 _B_4 BIT 0xf4
0000 327 _B_5 BIT 0xf5
0000 328 _B_6 BIT 0xf6
0000 329 _B_7 BIT 0xf7
0000 330 _C0FIF BIT 0xe8
0000 331 _C0RIF BIT 0xe9
0000 332 _C1FIF BIT 0xea
0000 333 _C1RIF BIT 0xeb
0000 334 _C2FIF BIT 0xec
0000 335 _C2RIF BIT 0xed
0000 336 _C3FIF BIT 0xee
0000 337 _C3RIF BIT 0xef
0000 338 _D1SRC0 BIT 0x88
0000 339 _D1SRC1 BIT 0x89
0000 340 _D1AMEN BIT 0x8a
0000 341 _D01REFSL BIT 0x8b
0000 342 _D3SRC0 BIT 0x8c
0000 343 _D3SRC1 BIT 0x8d
0000 344 _D3AMEN BIT 0x8e
0000 345 _D23REFSL BIT 0x8f
0000 346 _D0UDIS BIT 0x98
0000 347 _D1UDIS BIT 0x99
0000 348 _D2UDIS BIT 0x9a
0000 349 _D3UDIS BIT 0x9b
0000 350 _EX0 BIT 0xa8
0000 351 _ET0 BIT 0xa9
0000 352 _EX1 BIT 0xaa
0000 353 _ET1 BIT 0xab
0000 354 _ES0 BIT 0xac
0000 355 _ET2 BIT 0xad
0000 356 _ESPI0 BIT 0xae
0000 357 _EA BIT 0xaf
0000 358 _PX0 BIT 0xb8
0000 359 _PT0 BIT 0xb9
0000 360 _PX1 BIT 0xba
0000 361 _PT1 BIT 0xbb
0000 362 _PS0 BIT 0xbc
0000 363 _PT2 BIT 0xbd
0000 364 _PSPI0 BIT 0xbe
0000 365 _P0_0 BIT 0x80
0000 366 _P0_1 BIT 0x81
0000 367 _P0_2 BIT 0x82
0000 368 _P0_3 BIT 0x83
0000 369 _P0_4 BIT 0x84
0000 370 _P0_5 BIT 0x85
0000 371 _P0_6 BIT 0x86
0000 372 _P0_7 BIT 0x87
0000 373 _P1_0 BIT 0x90
0000 374 _P1_1 BIT 0x91
0000 375 _P1_2 BIT 0x92
0000 376 _P1_3 BIT 0x93
0000 377 _P1_4 BIT 0x94
0000 378 _P1_5 BIT 0x95
0000 379 _P1_6 BIT 0x96
0000 380 _P1_7 BIT 0x97
0000 381 _P2_0 BIT 0xa0
0000 382 _P2_1 BIT 0xa1
0000 383 _P2_2 BIT 0xa2
0000 384 _P2_3 BIT 0xa3
0000 385 _P2_4 BIT 0xa4
0000 386 _P2_5 BIT 0xa5
0000 387 _P2_6 BIT 0xa6
0000 388 _P3_0 BIT 0xb0
0000 389 _P3_1 BIT 0xb1
0000 390 _P3_2 BIT 0xb2
0000 391 _P3_3 BIT 0xb3
0000 392 _P3_4 BIT 0xb4
0000 393 _P3_7 BIT 0xb7
0000 394 _CCF0 BIT 0xd8
0000 395 _CCF1 BIT 0xd9
0000 396 _CCF2 BIT 0xda
0000 397 _CCF3 BIT 0xdb
0000 398 _CCF4 BIT 0xdc
0000 399 _CCF5 BIT 0xdd
0000 400 _CR BIT 0xde
0000 401 _CF BIT 0xdf
0000 402 _PARITY BIT 0xd0
0000 403 _F1 BIT 0xd1
0000 404 _OV BIT 0xd2
0000 405 _RS0 BIT 0xd3
0000 406 _RS1 BIT 0xd4
0000 407 _F0 BIT 0xd5
0000 408 _AC BIT 0xd6
0000 409 _CY BIT 0xd7
0000 410 _RI BIT 0x98
0000 411 _TI BIT 0x99
0000 412 _RB8 BIT 0x9a
0000 413 _TB8 BIT 0x9b
0000 414 _REN BIT 0x9c
0000 415 _CE BIT 0x9d
0000 416 _SMODE BIT 0x9e
0000 417 _RI1 BIT 0xc8
0000 418 _TI1 BIT 0xc9
0000 419 _RBX1 BIT 0xca
0000 420 _TBX1 BIT 0xcb
0000 421 _REN1 BIT 0xcc
0000 422 _PERR1 BIT 0xcd
0000 423 _OVR1 BIT 0xce
0000 424 _SI BIT 0xc0
0000 425 _ACK BIT 0xc1
0000 426 _ARBLOST BIT 0xc2
0000 427 _ACKRQ BIT 0xc3
0000 428 _STO BIT 0xc4
0000 429 _STA BIT 0xc5
0000 430 _TXMODE BIT 0xc6
0000 431 _MASTER BIT 0xc7
0000 432 _SPIEN BIT 0xf8
0000 433 _TXNF BIT 0xf9
0000 434 _NSSMD0 BIT 0xfa
0000 435 _NSSMD1 BIT 0xfb
0000 436 _RXOVRN BIT 0xfc
0000 437 _MODF BIT 0xfd
0000 438 _WCOL BIT 0xfe
0000 439 _SPIF BIT 0xff
0000 440 _IT0 BIT 0x88
0000 441 _IE0 BIT 0x89
0000 442 _IT1 BIT 0x8a
0000 443 _IE1 BIT 0x8b
0000 444 _TR0 BIT 0x8c
0000 445 _TF0 BIT 0x8d
0000 446 _TR1 BIT 0x8e
0000 447 _TF1 BIT 0x8f
0000 448 _T2XCLK0 BIT 0xc8
0000 449 _T2XCLK1 BIT 0xc9
0000 450 _TR2 BIT 0xca
0000 451 _T2SPLIT BIT 0xcb
0000 452 _TF2CEN BIT 0xcc
0000 453 _TF2LEN BIT 0xcd
0000 454 _TF2L BIT 0xce
0000 455 _TF2H BIT 0xcf
0000 456 _T4XCLK0 BIT 0x98
0000 457 _T4XCLK1 BIT 0x99
0000 458 _TR4 BIT 0x9a
0000 459 _T4SPLIT BIT 0x9b
0000 460 _TF4CEN BIT 0x9c
0000 461 _TF4LEN BIT 0x9d
0000 462 _TF4L BIT 0x9e
0000 463 _TF4H BIT 0x9f
0000 464 _T5XCLK0 BIT 0xc0
0000 465 _T5XCLK1 BIT 0xc1
0000 466 _TR5 BIT 0xc2
0000 467 _T5SPLIT BIT 0xc3
0000 468 _TF5CEN BIT 0xc4
0000 469 _TF5LEN BIT 0xc5
0000 470 _TF5L BIT 0xc6
0000 471 _TF5H BIT 0xc7
0000 472 _RIE BIT 0xd8
0000 473 _RXTO0 BIT 0xd9
0000 474 _RXTO1 BIT 0xda
0000 475 _RFRQ BIT 0xdb
0000 476 _TIE BIT 0xdc
0000 477 _TXHOLD BIT 0xdd
0000 478 _TXNF1 BIT 0xde
0000 479 _TFRQ BIT 0xdf
0000 480 ;--------------------------------------------------------
0000 481 ; overlayable register banks
0000 482 ;--------------------------------------------------------
0000 483 rbank0 segment data overlay
0000 484 ;--------------------------------------------------------
0000 485 ; internal ram data
0000 486 ;--------------------------------------------------------
0000 487 rseg R_DSEG
0000 488 _LCDprint_PARM_2:
0000 489 ds 1
0001 490 _getsn_PARM_2:
0001 491 ds 2
0003 492 _getsn_buff_1_42:
0003 493 ds 3
0006 494 _getsn_sloc0_1_0:
0006 495 ds 2
0008 496 _main_buff_1_48:
0008 497 ds 17
0019 498 ;--------------------------------------------------------
0019 499 ; overlayable items in internal ram
0019 500 ;--------------------------------------------------------
0000 501 rseg R_OSEG
0000 502 ;--------------------------------------------------------
0000 503 ; indirectly addressable internal ram data
0000 504 ;--------------------------------------------------------
0000 505 rseg R_ISEG
0000 506 ;--------------------------------------------------------
0000 507 ; absolute internal ram data
0000 508 ;--------------------------------------------------------
0000 509 DSEG
0000 510 ;--------------------------------------------------------
0000 511 ; bit data
0000 512 ;--------------------------------------------------------
0000 513 rseg R_BSEG
0000 514 _LCDprint_PARM_3:
0000 515 DBIT 1
0001 516 ;--------------------------------------------------------
0001 517 ; paged external ram data
0001 518 ;--------------------------------------------------------
0000 519 rseg R_PSEG
0000 520 ;--------------------------------------------------------
0000 521 ; external ram data
0000 522 ;--------------------------------------------------------
0000 523 rseg R_XSEG
0000 524 ;--------------------------------------------------------
0000 525 ; absolute external ram data
0000 526 ;--------------------------------------------------------
0000 527 XSEG
0000 528 ;--------------------------------------------------------
0000 529 ; external initialized ram data
0000 530 ;--------------------------------------------------------
0000 531 rseg R_IXSEG
0000 532 rseg R_HOME
0000 533 rseg R_GSINIT
0000 534 rseg R_CSEG
0000 535 ;--------------------------------------------------------
0000 536 ; Reset entry point and interrupt vectors
0000 537 ;--------------------------------------------------------
0000 538 CSEG at 0x0000
0000 020100 539 ljmp _crt0
0003 540 ;--------------------------------------------------------
0003 541 ; global & static initialisations
0003 542 ;--------------------------------------------------------
0000 543 rseg R_HOME
0000 544 rseg R_GSINIT
0000 545 rseg R_GSINIT
0000 546 ;--------------------------------------------------------
0000 547 ; data variables initialization
0000 548 ;--------------------------------------------------------
0000 549 rseg R_DINIT
0000 550 ; The linker places a 'ret' at the end of segment R_DINIT.
0000 551 ;--------------------------------------------------------
0000 552 ; code
0000 553 ;--------------------------------------------------------
0000 554 rseg R_CSEG
0000 555 ;------------------------------------------------------------
0000 556 ;Allocation info for local variables in function '_c51_external_startup'
0000 557 ;------------------------------------------------------------
0000 558 ;------------------------------------------------------------
0000 559 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:16: char _c51_external_startup (void)
0000 560 ; -----------------------------------------
0000 561 ; function _c51_external_startup
0000 562 ; -----------------------------------------
0000 563 __c51_external_startup:
0000 564 using 0
0000 565 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:19: SFRPAGE = 0x00;
0000 75A700 566 mov _SFRPAGE,#0x00
0003 567 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:20: WDTCN = 0xDE; //First key
0003 7597DE 568 mov _WDTCN,#0xDE
0006 569 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:21: WDTCN = 0xAD; //Second key
0006 7597AD 570 mov _WDTCN,#0xAD
0009 571 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:28: SFRPAGE = 0x10;
0009 75A710 572 mov _SFRPAGE,#0x10
000C 573 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:29: PFE0CN = 0x20; // SYSCLK < 75 MHz.
000C 75C120 574 mov _PFE0CN,#0x20
000F 575 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:30: SFRPAGE = 0x00;
000F 75A700 576 mov _SFRPAGE,#0x00
0012 577 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:51: CLKSEL = 0x00;
0012 75A900 578 mov _CLKSEL,#0x00
0015 579 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:52: CLKSEL = 0x00;
0015 75A900 580 mov _CLKSEL,#0x00
0018 581 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:53: while ((CLKSEL & 0x80) == 0);
0018 582 L002001?:
0018 E5A9 583 mov a,_CLKSEL
001A 30E720 584 jnb acc.7,L002001?
001D 585 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:54: CLKSEL = 0x03;
001D 75A903 586 mov _CLKSEL,#0x03
0020 587 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:55: CLKSEL = 0x03;
0020 75A903 588 mov _CLKSEL,#0x03
0023 589 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:56: while ((CLKSEL & 0x80) == 0);
0023 590 L002004?:
0023 E5A9 591 mov a,_CLKSEL
0025 30E7A0 592 jnb acc.7,L002004?
0028 593 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:61: P0MDOUT |= 0x10; // Enable UART0 TX as push-pull output
0028 43A410 594 orl _P0MDOUT,#0x10
002B 595 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:62: XBR0 = 0x01; // Enable UART0 on P0.4(TX) and P0.5(RX)
002B 75E101 596 mov _XBR0,#0x01
002E 597 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:63: XBR1 = 0X00;
002E 75E200 598 mov _XBR1,#0x00
0031 599 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:64: XBR2 = 0x40; // Enable crossbar and weak pull-ups
0031 75E340 600 mov _XBR2,#0x40
0034 601 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:70: SCON0 = 0x10;
0034 759810 602 mov _SCON0,#0x10
0037 603 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:71: CKCON0 |= 0b_0000_0000 ; // Timer 1 uses the system clock divided by 12.
0037 858E8E 604 mov _CKCON0,_CKCON0
003A 605 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:72: TH1 = 0x100-((SYSCLK/BAUDRATE)/(2L*12L));
003A 758DE6 606 mov _TH1,#0xE6
003D 607 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:73: TL1 = TH1; // Init Timer1
003D 858D8B 608 mov _TL1,_TH1
0040 609 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:74: TMOD &= ~0xf0; // TMOD: timer 1 in 8-bit auto-reload
0040 53890F 610 anl _TMOD,#0x0F
0043 611 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:75: TMOD |= 0x20;
0043 438920 612 orl _TMOD,#0x20
0046 613 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:76: TR1 = 1; // START Timer1
0046 D28E 614 setb _TR1
0048 615 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:77: TI = 1; // Indicate TX0 ready
0048 D299 616 setb _TI
004A 617 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:79: return 0;
004A 758200 618 mov dpl,#0x00
004D 22 619 ret
004E 620 ;------------------------------------------------------------
004E 621 ;Allocation info for local variables in function 'Timer3us'
004E 622 ;------------------------------------------------------------
004E 623 ;us Allocated to registers r2
004E 624 ;i Allocated to registers r3
004E 625 ;------------------------------------------------------------
004E 626 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:84: void Timer3us(unsigned char us)
004E 627 ; -----------------------------------------
004E 628 ; function Timer3us
004E 629 ; -----------------------------------------
004E 630 _Timer3us:
004E AA82 631 mov r2,dpl
0050 632 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:89: CKCON0|=0b_0100_0000;
0050 438E40 633 orl _CKCON0,#0x40
0053 634 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:91: TMR3RL = (-(SYSCLK)/1000000L); // Set Timer3 to overflow in 1us.
0053 7592B8 635 mov _TMR3RL,#0xB8
0056 7593FF 636 mov (_TMR3RL >> 8),#0xFF
0059 637 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:92: TMR3 = TMR3RL; // Initialize Timer3 for first overflow
0059 859294 638 mov _TMR3,_TMR3RL
005C 859395 639 mov (_TMR3 >> 8),(_TMR3RL >> 8)
005F 640 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:94: TMR3CN0 = 0x04; // Sart Timer3 and clear overflow flag
005F 759104 641 mov _TMR3CN0,#0x04
0062 642 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:95: for (i = 0; i < us; i++) // Count <us> overflows
0062 7B00 643 mov r3,#0x00
0064 644 L003004?:
0064 C3 645 clr c
0065 EB 646 mov a,r3
0066 9A 647 subb a,r2
0067 5001 648 jnc L003007?
0069 649 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:97: while (!(TMR3CN0 & 0x80)); // Wait for overflow
0069 650 L003001?:
0069 E591 651 mov a,_TMR3CN0
006B 30E7A0 652 jnb acc.7,L003001?
006E 653 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:98: TMR3CN0 &= ~(0x80); // Clear overflow indicator
006E 53917F 654 anl _TMR3CN0,#0x7F
0071 655 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:95: for (i = 0; i < us; i++) // Count <us> overflows
0071 0B 656 inc r3
0072 8001 657 sjmp L003004?
0074 658 L003007?:
0074 659 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:100: TMR3CN0 = 0 ; // Stop Timer3 and clear overflow flag
0074 759100 660 mov _TMR3CN0,#0x00
0077 22 661 ret
0078 662 ;------------------------------------------------------------
0078 663 ;Allocation info for local variables in function 'waitms'
0078 664 ;------------------------------------------------------------
0078 665 ;ms Allocated to registers r2 r3
0078 666 ;j Allocated to registers r4 r5
0078 667 ;k Allocated to registers r6
0078 668 ;------------------------------------------------------------
0078 669 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:103: void waitms (unsigned int ms)
0078 670 ; -----------------------------------------
0078 671 ; function waitms
0078 672 ; -----------------------------------------
0078 673 _waitms:
0078 AA82 674 mov r2,dpl
007A AB83 675 mov r3,dph
007C 676 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:107: for(j=0; j<ms; j++)
007C 7C00 677 mov r4,#0x00
007E 7D00 678 mov r5,#0x00
0080 679 L004005?:
0080 C3 680 clr c
0081 EC 681 mov a,r4
0082 9A 682 subb a,r2
0083 ED 683 mov a,r5
0084 9B 684 subb a,r3
0085 5001 685 jnc L004009?
0087 686 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:108: for (k=0; k<4; k++) Timer3us(250);
0087 7E00 687 mov r6,#0x00
0089 688 L004001?:
0089 BE04E0 689 cjne r6,#0x04,L004018?
008C 690 L004018?:
008C 5001 691 jnc L004007?
008E 7582FA 692 mov dpl,#0xFA
0091 C002 693 push ar2
0093 C003 694 push ar3
0095 C004 695 push ar4
0097 C005 696 push ar5
0099 C006 697 push ar6
009B 120100 698 lcall _Timer3us
009E D006 699 pop ar6
00A0 D005 700 pop ar5
00A2 D004 701 pop ar4
00A4 D003 702 pop ar3
00A6 D002 703 pop ar2
00A8 0E 704 inc r6
00A9 8001 705 sjmp L004001?
00AB 706 L004007?:
00AB 707 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:107: for(j=0; j<ms; j++)
00AB 0C 708 inc r4
00AC BC0020 709 cjne r4,#0x00,L004005?
00AF 0D 710 inc r5
00B0 8001 711 sjmp L004005?
00B2 712 L004009?:
00B2 22 713 ret
00B3 714 ;------------------------------------------------------------
00B3 715 ;Allocation info for local variables in function 'LCD_pulse'
00B3 716 ;------------------------------------------------------------
00B3 717 ;------------------------------------------------------------
00B3 718 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:111: void LCD_pulse (void)
00B3 719 ; -----------------------------------------
00B3 720 ; function LCD_pulse
00B3 721 ; -----------------------------------------
00B3 722 _LCD_pulse:
00B3 723 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:113: LCD_E=1;
00B3 D2A5 724 setb _P2_5
00B5 725 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:114: Timer3us(40);
00B5 758228 726 mov dpl,#0x28
00B8 120100 727 lcall _Timer3us
00BB 728 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:115: LCD_E=0;
00BB C2A5 729 clr _P2_5
00BD 22 730 ret
00BE 731 ;------------------------------------------------------------
00BE 732 ;Allocation info for local variables in function 'LCD_byte'
00BE 733 ;------------------------------------------------------------
00BE 734 ;x Allocated to registers r2
00BE 735 ;------------------------------------------------------------
00BE 736 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:118: void LCD_byte (unsigned char x)
00BE 737 ; -----------------------------------------
00BE 738 ; function LCD_byte
00BE 739 ; -----------------------------------------
00BE 740 _LCD_byte:
00BE AA82 741 mov r2,dpl
00C0 742 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:121: ACC=x; //Send high nible
00C0 8AE0 743 mov _ACC,r2
00C2 744 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:122: LCD_D7=ACC_7;
00C2 A2E7 745 mov c,_ACC_7
00C4 92A1 746 mov _P2_1,c
00C6 747 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:123: LCD_D6=ACC_6;
00C6 A2E6 748 mov c,_ACC_6
00C8 92A2 749 mov _P2_2,c
00CA 750 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:124: LCD_D5=ACC_5;
00CA A2E5 751 mov c,_ACC_5
00CC 92A3 752 mov _P2_3,c
00CE 753 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:125: LCD_D4=ACC_4;
00CE A2E4 754 mov c,_ACC_4
00D0 92A4 755 mov _P2_4,c
00D2 756 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:126: LCD_pulse();
00D2 C002 757 push ar2
00D4 120100 758 lcall _LCD_pulse
00D7 759 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:127: Timer3us(40);
00D7 758228 760 mov dpl,#0x28
00DA 120100 761 lcall _Timer3us
00DD D002 762 pop ar2
00DF 763 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:128: ACC=x; //Send low nible
00DF 8AE0 764 mov _ACC,r2
00E1 765 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:129: LCD_D7=ACC_3;
00E1 A2E3 766 mov c,_ACC_3
00E3 92A1 767 mov _P2_1,c
00E5 768 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:130: LCD_D6=ACC_2;
00E5 A2E2 769 mov c,_ACC_2
00E7 92A2 770 mov _P2_2,c
00E9 771 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:131: LCD_D5=ACC_1;
00E9 A2E1 772 mov c,_ACC_1
00EB 92A3 773 mov _P2_3,c
00ED 774 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:132: LCD_D4=ACC_0;
00ED A2E0 775 mov c,_ACC_0
00EF 92A4 776 mov _P2_4,c
00F1 777 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:133: LCD_pulse();
00F1 020100 778 ljmp _LCD_pulse
00F4 779 ;------------------------------------------------------------
00F4 780 ;Allocation info for local variables in function 'WriteData'
00F4 781 ;------------------------------------------------------------
00F4 782 ;x Allocated to registers r2
00F4 783 ;------------------------------------------------------------
00F4 784 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:136: void WriteData (unsigned char x)
00F4 785 ; -----------------------------------------
00F4 786 ; function WriteData
00F4 787 ; -----------------------------------------
00F4 788 _WriteData:
00F4 AA82 789 mov r2,dpl
00F6 790 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:138: LCD_RS=1;
00F6 D2A6 791 setb _P2_6
00F8 792 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:139: LCD_byte(x);
00F8 8A82 793 mov dpl,r2
00FA 120100 794 lcall _LCD_byte
00FD 795 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:140: waitms(2);
00FD 900002 796 mov dptr,#0x0002
0100 020100 797 ljmp _waitms
0103 798 ;------------------------------------------------------------
0103 799 ;Allocation info for local variables in function 'WriteCommand'
0103 800 ;------------------------------------------------------------
0103 801 ;x Allocated to registers r2
0103 802 ;------------------------------------------------------------
0103 803 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:143: void WriteCommand (unsigned char x)
0103 804 ; -----------------------------------------
0103 805 ; function WriteCommand
0103 806 ; -----------------------------------------
0103 807 _WriteCommand:
0103 AA82 808 mov r2,dpl
0105 809 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:145: LCD_RS=0;
0105 C2A6 810 clr _P2_6
0107 811 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:146: LCD_byte(x);
0107 8A82 812 mov dpl,r2
0109 120100 813 lcall _LCD_byte
010C 814 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:147: waitms(5);
010C 900005 815 mov dptr,#0x0005
010F 020100 816 ljmp _waitms
0112 817 ;------------------------------------------------------------
0112 818 ;Allocation info for local variables in function 'LCD_4BIT'
0112 819 ;------------------------------------------------------------
0112 820 ;------------------------------------------------------------
0112 821 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:150: void LCD_4BIT (void)
0112 822 ; -----------------------------------------
0112 823 ; function LCD_4BIT
0112 824 ; -----------------------------------------
0112 825 _LCD_4BIT:
0112 826 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:152: LCD_E=0; // Resting state of LCD's enable is zero
0112 C2A5 827 clr _P2_5
0114 828 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:154: waitms(20);
0114 900014 829 mov dptr,#0x0014
0117 120100 830 lcall _waitms
011A 831 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:156: WriteCommand(0x33);
011A 758233 832 mov dpl,#0x33
011D 120100 833 lcall _WriteCommand
0120 834 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:157: WriteCommand(0x33);
0120 758233 835 mov dpl,#0x33
0123 120100 836 lcall _WriteCommand
0126 837 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:158: WriteCommand(0x32); // Change to 4-bit mode
0126 758232 838 mov dpl,#0x32
0129 120100 839 lcall _WriteCommand
012C 840 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:161: WriteCommand(0x28);
012C 758228 841 mov dpl,#0x28
012F 120100 842 lcall _WriteCommand
0132 843 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:162: WriteCommand(0x0c);
0132 75820C 844 mov dpl,#0x0C
0135 120100 845 lcall _WriteCommand
0138 846 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:163: WriteCommand(0x01); // Clear screen command (takes some time)
0138 758201 847 mov dpl,#0x01
013B 120100 848 lcall _WriteCommand
013E 849 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:164: waitms(20); // Wait for clear screen command to finsih.
013E 900014 850 mov dptr,#0x0014
0141 020100 851 ljmp _waitms
0144 852 ;------------------------------------------------------------
0144 853 ;Allocation info for local variables in function 'LCDprint'
0144 854 ;------------------------------------------------------------
0144 855 ;line Allocated with name '_LCDprint_PARM_2'
0144 856 ;string Allocated to registers r2 r3 r4
0144 857 ;j Allocated to registers r5 r6
0144 858 ;------------------------------------------------------------
0144 859 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:167: void LCDprint(char * string, unsigned char line, bit clear)
0144 860 ; -----------------------------------------
0144 861 ; function LCDprint
0144 862 ; -----------------------------------------
0144 863 _LCDprint:
0144 AA82 864 mov r2,dpl
0146 AB83 865 mov r3,dph
0148 ACF0 866 mov r4,b
014A 867 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:171: WriteCommand(line==2?0xc0:0x80);
014A 7402 868 mov a,#0x02
014C B5B0A0 869 cjne a,_LCDprint_PARM_2,L010013?
014F 7DC0 870 mov r5,#0xC0
0151 8001 871 sjmp L010014?
0153 872 L010013?:
0153 7D80 873 mov r5,#0x80
0155 874 L010014?:
0155 8D82 875 mov dpl,r5
0157 C002 876 push ar2
0159 C003 877 push ar3
015B C004 878 push ar4
015D 120100 879 lcall _WriteCommand
0160 880 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:172: waitms(5);
0160 900005 881 mov dptr,#0x0005
0163 120100 882 lcall _waitms
0166 D004 883 pop ar4
0168 D003 884 pop ar3
016A D002 885 pop ar2
016C 886 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:173: for(j=0; string[j]!=0; j++) WriteData(string[j]);// Write the message
016C 7D00 887 mov r5,#0x00
016E 7E00 888 mov r6,#0x00
0170 889 L010003?:
0170 ED 890 mov a,r5
0171 2A 891 add a,r2
0172 FF 892 mov r7,a
0173 EE 893 mov a,r6
0174 3B 894 addc a,r3
0175 F8 895 mov r0,a
0176 8C01 896 mov ar1,r4
0178 8F82 897 mov dpl,r7
017A 8883 898 mov dph,r0
017C 89F0 899 mov b,r1
017E 120100 900 lcall __gptrget
0181 FF 901 mov r7,a
0182 6001 902 jz L010006?
0184 8F82 903 mov dpl,r7
0186 C002 904 push ar2
0188 C003 905 push ar3
018A C004 906 push ar4
018C C005 907 push ar5
018E C006 908 push ar6
0190 120100 909 lcall _WriteData
0193 D006 910 pop ar6
0195 D005 911 pop ar5
0197 D004 912 pop ar4
0199 D003 913 pop ar3
019B D002 914 pop ar2
019D 0D 915 inc r5
019E BD0020 916 cjne r5,#0x00,L010003?
01A1 0E 917 inc r6
01A2 8001 918 sjmp L010003?
01A4 919 L010006?:
01A4 920 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:174: if(clear) for(; j<CHARS_PER_LINE; j++) WriteData(' '); // Clear the rest of the line
01A4 3020E0 921 jnb _LCDprint_PARM_3,L010011?
01A7 8D02 922 mov ar2,r5
01A9 8E03 923 mov ar3,r6
01AB 924 L010007?:
01AB C3 925 clr c
01AC EA 926 mov a,r2
01AD 9410 927 subb a,#0x10
01AF EB 928 mov a,r3
01B0 6480 929 xrl a,#0x80
01B2 9480 930 subb a,#0x80
01B4 5001 931 jnc L010011?
01B6 758220 932 mov dpl,#0x20
01B9 C002 933 push ar2
01BB C003 934 push ar3
01BD 120100 935 lcall _WriteData
01C0 D003 936 pop ar3
01C2 D002 937 pop ar2
01C4 0A 938 inc r2
01C5 BA0020 939 cjne r2,#0x00,L010007?
01C8 0B 940 inc r3
01C9 8001 941 sjmp L010007?
01CB 942 L010011?:
01CB 22 943 ret
01CC 944 ;------------------------------------------------------------
01CC 945 ;Allocation info for local variables in function 'getsn'
01CC 946 ;------------------------------------------------------------
01CC 947 ;len Allocated with name '_getsn_PARM_2'
01CC 948 ;buff Allocated with name '_getsn_buff_1_42'
01CC 949 ;j Allocated with name '_getsn_sloc0_1_0'
01CC 950 ;c Allocated to registers r3
01CC 951 ;sloc0 Allocated with name '_getsn_sloc0_1_0'
01CC 952 ;------------------------------------------------------------
01CC 953 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:177: int getsn (char * buff, int len)
01CC 954 ; -----------------------------------------
01CC 955 ; function getsn
01CC 956 ; -----------------------------------------
01CC 957 _getsn:
01CC 858210 958 mov _getsn_buff_1_42,dpl
01CF 858311 959 mov (_getsn_buff_1_42 + 1),dph
01D2 85F012 960 mov (_getsn_buff_1_42 + 2),b
01D5 961 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:182: for(j=0; j<(len-1); j++)
01D5 E4 962 clr a
01D6 F560 963 mov _getsn_sloc0_1_0,a
01D8 F561 964 mov (_getsn_sloc0_1_0 + 1),a
01DA E560 965 mov a,_getsn_PARM_2
01DC 24FF 966 add a,#0xff
01DE FF 967 mov r7,a
01DF E561 968 mov a,(_getsn_PARM_2 + 1)
01E1 34FF 969 addc a,#0xff
01E3 F8 970 mov r0,a
01E4 7900 971 mov r1,#0x00
01E6 7A00 972 mov r2,#0x00
01E8 973 L011005?:
01E8 C3 974 clr c
01E9 E9 975 mov a,r1
01EA 9F 976 subb a,r7
01EB EA 977 mov a,r2
01EC 6480 978 xrl a,#0x80
01EE 88F0 979 mov b,r0
01F0 63F080 980 xrl b,#0x80
01F3 95F0 981 subb a,b
01F5 5001 982 jnc L011008?
01F7 983 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:184: c=getchar();
01F7 C002 984 push ar2
01F9 C007 985 push ar7
01FB C000 986 push ar0
01FD C001 987 push ar1
01FF 120100 988 lcall _getchar
0202 AB82 989 mov r3,dpl
0204 D001 990 pop ar1
0206 D000 991 pop ar0
0208 D007 992 pop ar7
020A D002 993 pop ar2
020C 994 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:185: if ( (c=='\n') || (c=='\r') )
020C BB0A20 995 cjne r3,#0x0A,L011015?
020F 8001 996 sjmp L011001?
0211 997 L011015?:
0211 BB0DA0 998 cjne r3,#0x0D,L011002?
0214 999 L011001?:
0214 1000 ; C:\Users\carso\Documents\1. School\0. Spring 2018\Elec 292\lab4\LCD_test.c:187: buff[j]=0;