📄 lcd_driver.ls1
字号:
661 ; SOURCE LINE # 123
0024 E4 662 CLR A
0025 FD 663 MOV R5,A
0026 7F38 664 MOV R7,#038H
0028 120000 F 665 LCALL _lcd_write_instruction
666 ; Delay(200);
667 ; SOURCE LINE # 124
002B 7FC8 668 MOV R7,#0C8H
002D 7E00 669 MOV R6,#00H
002F 120000 F 670 LCALL _Delay
671 ; lcd_write_instruction(0x38, 0);
672 ; SOURCE LINE # 125
0032 E4 673 CLR A
0033 FD 674 MOV R5,A
0034 7F38 675 MOV R7,#038H
0036 120000 F 676 LCALL _lcd_write_instruction
677 ; Delay(200);
678 ; SOURCE LINE # 126
0039 7FC8 679 MOV R7,#0C8H
003B 7E00 680 MOV R6,#00H
003D 120000 F 681 LCALL _Delay
682 ;
683 ; lcd_write_instruction(0x01, 1);
684 ; SOURCE LINE # 128
0040 7D01 685 MOV R5,#01H
0042 7F01 686 MOV R7,#01H
0044 120000 F 687 LCALL _lcd_write_instruction
688 ; Delay(3000);
689 ; SOURCE LINE # 129
0047 7FB8 690 MOV R7,#0B8H
0049 7E0B 691 MOV R6,#0BH
004B 120000 F 692 LCALL _Delay
693 ; lcd_write_instruction(0x06, 1);
694 ; SOURCE LINE # 130
004E 7D01 695 MOV R5,#01H
0050 7F06 696 MOV R7,#06H
0052 120000 F 697 LCALL _lcd_write_instruction
698 ; Delay(200);
699 ; SOURCE LINE # 131
0055 7FC8 700 MOV R7,#0C8H
0057 7E00 701 MOV R6,#00H
0059 120000 F 702 LCALL _Delay
703 ; lcd_write_instruction(0x0c, 1);
704 ; SOURCE LINE # 132
005C 7D01 705 MOV R5,#01H
005E 7F0C 706 MOV R7,#0CH
0060 120000 F 707 LCALL _lcd_write_instruction
708 ; Delay(200);
709 ; SOURCE LINE # 133
0063 7FC8 710 MOV R7,#0C8H
0065 7E00 711 MOV R6,#00H
0067 020000 F 712 LJMP _Delay
713 ; END OF lcd_init
714
715 ; }
716 ;
717 ; void lcd_char(int x, int y, unsigned short *buf, int height, int width)
A51 MACRO ASSEMBLER LCD_DRIVER 05/23/2006 22:06:29 PAGE 12
718
---- 719 RSEG ?PR?_lcd_char?LCD_DRIVER
0000 720 _lcd_char:
721 USING 0
722 ; SOURCE LINE # 136
0000 8B00 F 723 MOV buf?757,R3
0002 8A00 F 724 MOV buf?757+01H,R2
0004 8900 F 725 MOV buf?757+02H,R1
726 ;---- Variable 'y?756' assigned to Register 'R4/R5' ----
727 ;---- Variable 'x?755' assigned to Register 'R6/R7' ----
728 ; {
729 ; SOURCE LINE # 137
730 ; char row, col, convert_coordinate;
731 ; int i, j;
732 ; //int
733 ;
734 ; if (y < 32)
735 ; SOURCE LINE # 142
0006 C3 736 CLR C
0007 ED 737 MOV A,R5
0008 9420 738 SUBB A,#020H
000A EC 739 MOV A,R4
000B 6480 740 XRL A,#080H
000D 9480 741 SUBB A,#080H
000F 5007 742 JNC ?C0024
743 ; {
744 ; SOURCE LINE # 143
745 ; row = y;
746 ; SOURCE LINE # 144
0011 8D00 F 747 MOV row?760,R5
748 ; convert_coordinate = 0;
749 ; SOURCE LINE # 145
0013 E4 750 CLR A
0014 F500 F 751 MOV convert_coordinate?762,A
752 ; }
753 ; SOURCE LINE # 146
0016 8008 754 SJMP ?C0025
0018 755 ?C0024:
756 ; else
757 ; {
758 ; SOURCE LINE # 148
759 ; row = y - 32;
760 ; SOURCE LINE # 149
0018 ED 761 MOV A,R5
0019 24E0 762 ADD A,#0E0H
001B F500 F 763 MOV row?760,A
764 ; convert_coordinate = 8;
765 ; SOURCE LINE # 150
001D 750008 F 766 MOV convert_coordinate?762,#08H
767 ; }
768 ; SOURCE LINE # 151
0020 769 ?C0025:
770 ; row |= 0x80;
771 ; SOURCE LINE # 152
0020 430080 F 772 ORL row?760,#080H
773 ;
774 ; col = x / 16;
775 ; SOURCE LINE # 154
0023 7C00 776 MOV R4,#00H
0025 7D10 777 MOV R5,#010H
0027 120000 F 778 LCALL ?C?SIDIV
002A 8F00 F 779 MOV col?761,R7
780 ; col += convert_coordinate;
781 ; SOURCE LINE # 155
002C E500 F 782 MOV A,convert_coordinate?762
002E 2500 F 783 ADD A,col?761
A51 MACRO ASSEMBLER LCD_DRIVER 05/23/2006 22:06:29 PAGE 13
0030 F500 F 784 MOV col?761,A
785 ; col |= 0x80;
786 ; SOURCE LINE # 156
0032 430080 F 787 ORL col?761,#080H
788 ;
789 ; lcd_write_instruction(0x3e, 1);
790 ; SOURCE LINE # 158
0035 7D01 791 MOV R5,#01H
0037 7F3E 792 MOV R7,#03EH
0039 120000 F 793 LCALL _lcd_write_instruction
794 ; Delay(50);
795 ; SOURCE LINE # 159
003C 7F32 796 MOV R7,#032H
003E 7E00 797 MOV R6,#00H
0040 120000 F 798 LCALL _Delay
799 ; lcd_write_instruction(row, 1);
800 ; SOURCE LINE # 160
0043 7D01 801 MOV R5,#01H
0045 AF00 F 802 MOV R7,row?760
0047 120000 F 803 LCALL _lcd_write_instruction
804 ; lcd_write_instruction(col, 1);
805 ; SOURCE LINE # 161
004A 7D01 806 MOV R5,#01H
004C AF00 F 807 MOV R7,col?761
004E 120000 F 808 LCALL _lcd_write_instruction
809 ; Delay(50);
810 ; SOURCE LINE # 162
0051 7F32 811 MOV R7,#032H
0053 7E00 812 MOV R6,#00H
0055 120000 F 813 LCALL _Delay
814 ; lcd_write_instruction(0x3a, 1);
815 ; SOURCE LINE # 163
0058 7D01 816 MOV R5,#01H
005A 7F3A 817 MOV R7,#03AH
005C 120000 F 818 LCALL _lcd_write_instruction
819 ; Delay(50);
820 ; SOURCE LINE # 164
005F 7F32 821 MOV R7,#032H
0061 7E00 822 MOV R6,#00H
0063 020000 F 823 LJMP _Delay
824 ; END OF _lcd_char
825
826 ;
827 ; /*for(i = 0; i < height; i++);
828 ; for(j = 0; j < width; j++)
829 ; *buf*/
830 ; }
831 ;
832 ; void lcd_zh(int x, int y, char mat[16][2])
833
---- 834 RSEG ?PR?_lcd_zh?LCD_DRIVER
0000 835 _lcd_zh:
836 USING 0
837 ; SOURCE LINE # 171
0000 8E00 F 838 MOV x?865,R6
0002 8F00 F 839 MOV x?865+01H,R7
0004 8C00 F 840 MOV y?866,R4
0006 8D00 F 841 MOV y?866+01H,R5
0008 8B00 F 842 MOV mat?867,R3
000A 8A00 F 843 MOV mat?867+01H,R2
000C 8900 F 844 MOV mat?867+02H,R1
845 ; {
846 ; SOURCE LINE # 172
847 ; int i, j;
848 ; for(i = 0; i < 16; i++)
849 ; SOURCE LINE # 174
A51 MACRO ASSEMBLER LCD_DRIVER 05/23/2006 22:06:29 PAGE 14
000E E4 850 CLR A
000F F500 F 851 MOV i?868,A
0011 F500 F 852 MOV i?868+01H,A
0013 853 ?C0027:
854 ; {
855 ; SOURCE LINE # 175
856 ; lcd_write_instruction(0x3e, 1);
857 ; SOURCE LINE # 176
0013 7D01 858 MOV R5,#01H
0015 7F3E 859 MOV R7,#03EH
0017 120000 F 860 LCALL _lcd_write_instruction
861 ; //Delay(50);
862 ; lcd_write_instruction(i + 0 | 0x80, 1);
863 ; SOURCE LINE # 178
001A E500 F 864 MOV A,i?868+01H
001C 120000 F 865 LCALL L?0052
866 ; //Delay(50);
867 ; lcd_write_instruction(0 + 8| 0x80, 1);
868 ; SOURCE LINE # 180
001F 7D01 869 MOV R5,#01H
0021 7F88 870 MOV R7,#088H
0023 120000 F 871 LCALL _lcd_write_instruction
872 ; //Delay(50);
873 ; lcd_write_instruction(0x3a, 1);
874 ; SOURCE LINE # 182
0026 7D01 875 MOV R5,#01H
0028 7F3A 876 MOV R7,#03AH
002A 120000 F 877 LCALL _lcd_write_instruction
878 ; //Delay(50);
879 ; lcd_write_data(mat[i][0]);
880 ; SOURCE LINE # 184
002D E500 F 881 MOV A,i?868+01H
002F 25E0 882 ADD A,ACC
0031 FF 883 MOV R7,A
0032 E500 F 884 MOV A,i?868
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -