📄 lcd.lst
字号:
314 0060 3420 retlw 32
315 0061 3477 retlw 119 ;'w'
316 0062 3465 retlw 101 ;'e'
317 0063 346C retlw 108 ;'l'
318 0064 3463 retlw 99 ;'c'
319 0065 346F retlw 111 ;'o'
320 0066 346D retlw 109 ;'m'
321 0067 3465 retlw 101 ;'e'
322 0068 3421 retlw 33
323 0069 3421 retlw 33
324 006A 3400 retlw 0
325 006B u29
326 006B 3457 retlw 87 ;'W'
327 006C 3468 retlw 104 ;'h'
328 006D 3461 retlw 97 ;'a'
329 006E 3474 retlw 116 ;'t'
330 006F 3420 retlw 32
331 0070 3461 retlw 97 ;'a'
332 0071 3420 retlw 32
333 0072 3466 retlw 102 ;'f'
334 0073 3475 retlw 117 ;'u'
335 0074 3463 retlw 99 ;'c'
336 0075 346B retlw 107 ;'k'
337 0076 3420 retlw 32
338 0077 3421 retlw 33
339 0078 3421 retlw 33
340 0079 3400 retlw 0
341
342 psect const1
343 00A6 0782 addwf 2
344 00A7 _string
345 00A7 3457 retlw 87
346 00A8 3445 retlw 69
347 00A9 344C retlw 76
348 00AA 3443 retlw 67
349 00AB 344F retlw 79
350 00AC 344D retlw 77
351 00AD 3445 retlw 69
352 00AE 3420 retlw 32
353 00AF 3459 retlw 89
354 00B0 344F retlw 79
355 00B1 3455 retlw 85
356
357 psect text9
358 016F _SetCGRAM
359 ; _i assigned to ?a_SetCGRAM+0
360 0000 _SetCGRAM$i set ?a_SetCGRAM
361 ;lcd.c: 135: unsigned char i;
362 016F 3040 movlw 64
363 0170 120A 158A 25AD fcall _WRCommand
+ 120A 118A
364 ;lcd.c: 137: for(i=0;i<len;i++)
365 0175 01A0 clrf ?a_SetCGRAM
366 0176 2988 goto l40
367 0177 l37
368 ;lcd.c: 138: WRData(str[i]);
369 0177 0820 movf ?a_SetCGRAM,w
370 0178 0720 addwf ?_SetCGRAM,w
371 0179 00C4 movwf code_ptr
372 017A 0821 movf ?_SetCGRAM+1,w
373 017B 00C5 movwf code_ptr+1
374 017C 0844 movf code_ptr,w
375 017D 1803 btfsc 3,0
376 017E 0AC5 incf code_ptr+1
377 017F 120A 118A 202A fcall string_table
378 0182 120A 158A 25B7 fcall _WRData
+ 120A 118A
379 0187 0AA0 incf ?a_SetCGRAM
380 0188 l40
381 0188 0822 movf ?_SetCGRAM+2,w
382 0189 0220 subwf ?a_SetCGRAM,w
383 018A 1803 btfsc 3,0
384 018B 0008 return
385 018C 2977 goto l37
386
387 psect text10
388 01D7 _CursorScroll
389 ; _direction assigned to ?a_CursorScroll+0
390 0000 _CursorScroll$direction set ?a_CursorScroll
391 ; _pointer assigned to ?a_CursorScroll+1
392 0000 _CursorScroll$pointer set ?a_CursorScroll+1
393 ; _i assigned to ?a_CursorScroll+2
394 0000 _CursorScroll$i set ?a_CursorScroll+2
395 ;_direction stored from w
396 01D7 0183 clrf 3 ;select bank 0
397 01D8 00A0 movwf ?a_CursorScroll
398 ;lcd.c: 143: unsigned char i,pointer=0x80+x+y*6
+ 4;
399 01D9 0821 movf ?_CursorScroll+1,w
400 01DA 00F0 movwf btemp
401 01DB 3006 movlw 6
402 01DC 00F1 movwf btemp+1
403 01DD u245
404 01DD 1003 bcf 3,0
405 01DE 0DF0 rlf btemp
406 01DF 0BF1 decfsz btemp+1
407 01E0 29DD goto u245
408 01E1 0870 movf btemp,w
409 01E2 0720 addwf ?_CursorScroll,w
410 01E3 3E80 addlw -128
411 01E4 00A1 movwf ?a_CursorScroll+1
412 ;lcd.c: 144: WRCommand(pointer);
413 01E5 120A 158A 25AD fcall _WRCommand
+ 120A 118A
414 ;lcd.c: 145: for(i=0;i<len;i++)
415 01EA 01A2 clrf ?a_CursorScroll+2
416 01EB l45
417 01EB 0822 movf ?_CursorScroll+2,w
418 01EC 0222 subwf ?a_CursorScroll+2,w
419 01ED 1803 btfsc 3,0
420 01EE 0008 return
421 ;lcd.c: 146: {
422 ;lcd.c: 147: if(direction==0) WRCommand(0x10);
423 01EF 08A0 movf ?a_CursorScroll
424 01F0 1D03 btfss 3,2
425 01F1 29F4 goto l46
426 01F2 3010 movlw 16
427 01F3 29F5 goto L4
428 ;lcd.c: 148: else WRCommand(0x14);
429 01F4 l46
430 01F4 3014 movlw 20
431 01F5 L4
432 01F5 120A 158A 25AD fcall _WRCommand
433 ;lcd.c: 149: DelayNms(200);
434 01F8 30C8 movlw 200
435 01F9 00A1 movwf ?_DelayNms
436 01FA 01A2 clrf ?_DelayNms+1
437 01FB 120A 158A 27B9 fcall _DelayNms
+ 120A 118A
438 ;lcd.c: 150: }
439 0200 0AA2 incf ?a_CursorScroll+2
440 0201 29EB goto l45
441
442 psect text11
443 ;lcd.c: 153: void ScreenScroll(unsigned char di
+ rection)
444 ;lcd.c: 154: {
445 0D8D _ScreenScroll
446 ; _direction assigned to ?a_ScreenScroll+0
447 0000 _ScreenScroll$direction set ?a_ScreenScroll
448 ;_direction stored from w
449 0D8D 0183 clrf 3 ;select bank 0
450 0D8E 00A0 movwf ?a_ScreenScroll
451 0D8F l50
452 ;lcd.c: 155: while(1)
453 ;lcd.c: 156: {
454 0D8F 08A0 movf ?a_ScreenScroll
455 0D90 1D03 btfss 3,2
456 0D91 2D94 goto l52
457 0D92 3018 movlw 24
458 0D93 2D95 goto L5
459 ;lcd.c: 158: else WRCommand(0x1C);
460 0D94 l52
461 0D94 301C movlw 28
462 0D95 L5
463 0D95 25AD 120A 158A fcall _WRCommand
464 ;lcd.c: 159: DelayNms(600);
465 0D98 3058 movlw 88
466 0D99 00A1 movwf ?_DelayNms
467 0D9A 3002 movlw 2
468 0D9B 00A2 movwf ?_DelayNms+1
469 0D9C 27B9 fcall _DelayNms
470 ;lcd.c: 160: }
471 0D9D 2D8F goto l50
472 ;lcd.c: 31: unsigned char ReadBF()
473 ;lcd.c: 32: {
474 0D9E _ReadBF
475 ; _temp assigned to ?a_ReadBF+0
476 0000 _ReadBF$temp set ?a_ReadBF
477 ;lcd.c: 33: unsigned char temp;
478 0D9E 30FF movlw -1
479 0D9F 1683 bsf 3,5
480 0DA0 1303 bcf 3,6 ;carry unused
481 0DA1 0087 movwf 7 ;volatile
482 0DA2 l13
483 ;lcd.c: 35: while(1)
484 ;lcd.c: 36: {
485 0DA2 1283 bcf 3,5
486 0DA3 1288 bcf 8,5
487 ;lcd.c: 38: RD6=1;
488 0DA4 1708 bsf 8,6
489 ;lcd.c: 39: RD7=1;
490 0DA5 1788 bsf 8,7
491 ;lcd.c: 40: temp=PORTC;
492 0DA6 0807 movf 7,w ;volatile
493 0DA7 00AA movwf ?a_ReadBF
494 ;lcd.c: 41: RD7=0;
495 0DA8 1388 bcf 8,7
496 ;lcd.c: 42: if(RC7==0) break;
497 0DA9 1B87 btfsc 7,7
498 0DAA 2DA2 goto l13
499 ;lcd.c: 44: return temp;
500 0DAB 082A movf ?a_ReadBF,w
501 ;lcd.c: 45: }
502 0DAC 0008 return
503 ;lcd.c: 47: void WRCommand(unsigned char comman
+ d)
504 ;lcd.c: 48: {
505 0DAD _WRCommand
506 ; _command assigned to ?a_WRCommand+0
507 0000 _WRCommand$command set ?a_WRCommand
508 ;_command stored from w
509 0DAD 0183 clrf 3 ;select bank 0
510 0DAE 00A9 movwf ?a_WRCommand
511 ;lcd.c: 49: ReadBF();
512 0DAF 259E fcall _ReadBF
513 ;lcd.c: 50: TRISC=0;
514 0DB0 1683 bsf 3,5
515 0DB1 0187 clrf 7 ;volatile
516 ;lcd.c: 51: RD6=0;
517 0DB2 1283 bcf 3,5
518 0DB3 1308 bcf 8,6
519 ;lcd.c: 52: PORTC=command;
520 0DB4 0829 movf ?a_WRCommand,w
521 0DB5 0087 movwf 7 ;volatile
522 ;lcd.c: 53: Toggle();
523 0DB6 2FCA ljmp _Toggle
524 ;lcd.c: 56: void WRData(unsigned char data)
525 ;lcd.c: 57: {
526 0DB7 _WRData
527 ; _data assigned to ?a_WRData+0
528 0000 _WRData$data set ?a_WRData
529 ;_data stored from w
530 0DB7 0183 clrf 3 ;select bank 0
531 0DB8 00A9 movwf ?a_WRData
532 ;lcd.c: 58: ReadBF();
533 0DB9 259E fcall _ReadBF
534 ;lcd.c: 59: TRISC=0;
535 0DBA 1683 bsf 3,5
536 0DBB 0187 clrf 7 ;volatile
537 ;lcd.c: 60: RD5=1;
538 0DBC 1283 bcf 3,5
539 0DBD 1688 bsf 8,5
540 ;lcd.c: 61: RD6=0;
541 0DBE 1308 bcf 8,6
542 ;lcd.c: 62: PORTC=data;
543 0DBF 0829 movf ?a_WRData,w
544 0DC0 0087 movwf 7 ;volatile
545 ;lcd.c: 63: Toggle();
546 0DC1 2FCA ljmp _Toggle
547 ;lcd.c: 66: unsigned char RDData()
548 ;lcd.c: 67: {
549 0DC2 _RDData
550 ; _data assigned to ?a_RDData+0
551 0000 _RDData$data set ?a_RDData
552 ;lcd.c: 68: unsigned char data;
553 0DC2 259E fcall _ReadBF
554 ;lcd.c: 70: RD5=1;
555 0DC3 1688 bsf 8,5
556 ;lcd.c: 71: RD6=1;
557 0DC4 1708 bsf 8,6
558 ;lcd.c: 72: RD7=1;
559 0DC5 1788 bsf 8,7
560 ;lcd.c: 73: data=PORTC;
561 0DC6 0807 movf 7,w ;volatile
562 0DC7 00A0 movwf ?a_RDData
563 ;lcd.c: 74: RD7=0;
564 0DC8 1388 bcf 8,7
565 ;lcd.c: 76: }
566 0DC9 0008 return
567 0DCA _DisplayChar
568 ; _pointer assigned to ?a_DisplayChar+0
569 0000 _DisplayChar$pointer set ?a_DisplayChar
570 ; _temp assigned to ?a_DisplayChar+1
571 0000 _DisplayChar$temp set ?a_DisplayChar+1
572 ; _i assigned to ?a_DisplayChar+2
573 0000 _DisplayChar$i set ?a_DisplayChar+2
574 ; _len assigned to ?a_DisplayChar+3
575 0000 _DisplayChar$len set ?a_DisplayChar+3
576 ;lcd.c: 110: unsigned char i,pointer=0x80+x+y*6
+ 4,temp;
577 0DCA 0183 clrf 3 ;select bank 0
578 0DCB 0823 movf ?_DisplayChar+3,w
579 0DCC 00F0 movwf btemp
580 0DCD 3006 movlw 6
581 0DCE 00F1 movwf btemp+1
582 0DCF u45
583 0DCF 1003 bcf 3,0
584 0DD0 0DF0 rlf btemp
585 0DD1 0BF1 decfsz btemp+1
586 0DD2 2DCF goto u45
587 0DD3 0870 movf btemp,w
588 0DD4 0722 addwf ?_DisplayChar+2,w
589 0DD5 3E80 addlw -128
590 0DD6 00A4 movwf ?a_DisplayChar
591 ;lcd.c: 111: unsigned int len=strlen(str);
592 0DD7 0820 movf ?_DisplayChar,w
593 0DD8 00A9 movwf ?_strlen
594 0DD9 0821 movf ?_DisplayChar+1,w
595 0DDA 00AA movwf ?_strlen+1
596 0DDB 120A 118A 218D fcall _strlen
+ 120A 158A
597 0DE0 0870 movf btemp,w
598 0DE1 00A7 movwf ?a_DisplayChar+3
599 0DE2 0871 movf btemp+1,w
600 0DE3 00A8 movwf ?a_DisplayChar+4
601 ;lcd.c: 112: WRCommand(pointer);
602 0DE4 0824 movf ?a_DisplayChar,w
603 0DE5 25AD 120A 158A fcall _WRCommand
604 ;lcd.c: 113: for(i=0;i<len;i++)
605 0DE8 01A6 clrf ?a_DisplayChar+2
606 0DE9 l24
607 0DE9 0826 movf ?a_DisplayChar+2,w
608 0DEA 00F0 movwf btemp
609 0DEB 01F1 clrf btemp+1
610 0DEC 0828 movf ?a_DisplayChar+4,w
611 0DED 0271 subwf btemp+1,w
612 0DEE 1D03 btfss 3,2
613 0DEF 2DF2 goto u225
614 0DF0 0827 movf ?a_DisplayChar+3,w
615 0DF1 0270 subwf btemp,w
616 0DF2 u225
617 0DF2 1803 btfsc 3,0
618 0DF3 0008 return
619 ;lcd.c: 114: {
620 ;lcd.c: 115: if(str[i]<='Z' && str[i]>='A')
621 0DF4 0826 movf ?a_DisplayChar+2,w
622 0DF5 0720 addwf ?_DisplayChar,w
623 0DF6 00C4 movwf code_ptr
624 0DF7 0821 movf ?_DisplayChar+1,w
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -