⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd_driver.ls1

📁 128x64点阵液晶屏驱动
💻 LS1
📖 第 1 页 / 共 5 页
字号:
                     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 + -