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

📄 lcd_driver.ls1

📁 128x64点阵液晶屏驱动
💻 LS1
📖 第 1 页 / 共 5 页
字号:
                     215     ;                       SET_LCD_SID(0);
                     216                             ; SOURCE LINE # 13
000B C2A6            217             CLR     P2_6
000D                 218     ?C0005:
                     219     ;               //Delay(1);
                     220     ;               SET_LCD_SCLK(1);
                     221                             ; SOURCE LINE # 15
000D D2A7            222             SETB    P2_7
                     223     ;               //Delay(2);
                     224     ;               SET_LCD_SCLK(0);
                     225                             ; SOURCE LINE # 17
000F C2A7            226             CLR     P2_7
                     227     ;               //Delay(1);
                     228     ;               dat <<= 1;
                     229                             ; SOURCE LINE # 19
0011 EF              230             MOV     A,R7
0012 25E0            231             ADD     A,ACC
0014 FF              232             MOV     R7,A
                     233     ;       }
                     234                             ; SOURCE LINE # 20
0015 0D              235             INC     R5
0016 BD0001          236             CJNE    R5,#00H,?C0044
0019 0C              237             INC     R4
001A                 238     ?C0044:
001A ED              239             MOV     A,R5
001B 6408            240             XRL     A,#08H
001D 4C              241             ORL     A,R4
001E 70E3            242             JNZ     ?C0001
                     243     ; }
                     244                             ; SOURCE LINE # 21
0020                 245     ?C0006:
0020 22              246             RET     
                     247     ; END OF _lcd_send_byte
                     248     
                     249     ; 
                     250     ; void lcd_send_word(int dat)
                     251     
----                 252             RSEG  ?PR?_lcd_send_word?LCD_DRIVER
0000                 253     _lcd_send_word:
                     254             USING   0
                     255                             ; SOURCE LINE # 23
A51 MACRO ASSEMBLER  LCD_DRIVER                                                           05/23/2006 22:06:29 PAGE     5

                     256     ;---- Variable 'dat?142' assigned to Register 'R6/R7' ----
                     257     ; {
                     258                             ; SOURCE LINE # 24
                     259     ;       int i;
                     260     ; 
                     261     ;       for(i = 0; i < 16; i++)
                     262                             ; SOURCE LINE # 27
                     263     ;---- Variable 'i?143' assigned to Register 'R4/R5' ----
0000 E4              264             CLR     A
0001 FD              265             MOV     R5,A
0002 FC              266             MOV     R4,A
0003                 267     ?C0007:
                     268     ;       {
                     269                             ; SOURCE LINE # 28
                     270     ;               if(dat & 0x8000)
                     271                             ; SOURCE LINE # 29
0003 EE              272             MOV     A,R6
0004 30E704          273             JNB     ACC.7,?C0010
                     274     ;                       SET_LCD_SID(1);
                     275                             ; SOURCE LINE # 30
0007 D2A6            276             SETB    P2_6
0009 8002            277             SJMP    ?C0011
000B                 278     ?C0010:
                     279     ;               else
                     280     ;                       SET_LCD_SID(0);
                     281                             ; SOURCE LINE # 32
000B C2A6            282             CLR     P2_6
000D                 283     ?C0011:
                     284     ;               //Delay(1);
                     285     ;               SET_LCD_SCLK(1);
                     286                             ; SOURCE LINE # 34
000D D2A7            287             SETB    P2_7
                     288     ;               //Delay(2);
                     289     ;               SET_LCD_SCLK(0);
                     290                             ; SOURCE LINE # 36
000F C2A7            291             CLR     P2_7
                     292     ;               //Delay(1);
                     293     ;               dat <<= 1;
                     294                             ; SOURCE LINE # 38
0011 EF              295             MOV     A,R7
0012 25E0            296             ADD     A,ACC
0014 FF              297             MOV     R7,A
0015 EE              298             MOV     A,R6
0016 33              299             RLC     A
0017 FE              300             MOV     R6,A
                     301     ;       }
                     302                             ; SOURCE LINE # 39
0018 0D              303             INC     R5
0019 BD0001          304             CJNE    R5,#00H,?C0045
001C 0C              305             INC     R4
001D                 306     ?C0045:
001D ED              307             MOV     A,R5
001E 6410            308             XRL     A,#010H
0020 4C              309             ORL     A,R4
0021 70E0            310             JNZ     ?C0007
                     311     ; }
                     312                             ; SOURCE LINE # 40
0023                 313     ?C0012:
0023 22              314             RET     
                     315     ; END OF _lcd_send_word
                     316     
                     317     ; 
                     318     ; char lcd_read_byte(void)
                     319     
----                 320             RSEG  ?PR?lcd_read_byte?LCD_DRIVER
0000                 321     lcd_read_byte:
A51 MACRO ASSEMBLER  LCD_DRIVER                                                           05/23/2006 22:06:29 PAGE     6

                     322             USING   0
                     323                             ; SOURCE LINE # 42
                     324     ;---- Variable 'result?246' assigned to Register 'R1' ----
                     325     ; {
                     326                             ; SOURCE LINE # 43
                     327     ;       int i, dat = 0;
                     328                             ; SOURCE LINE # 44
                     329     ;---- Variable 'dat?245' assigned to Register 'R4/R5' ----
0000 E4              330             CLR     A
0001 FD              331             MOV     R5,A
0002 FC              332             MOV     R4,A
                     333     ;       char result;
                     334     ; 
                     335     ;       for(i = 0; i < 16; i++)
                     336                             ; SOURCE LINE # 47
                     337     ;---- Variable 'i?244' assigned to Register 'R2/R3' ----
0003 FB              338             MOV     R3,A
0004 FA              339             MOV     R2,A
0005                 340     ?C0013:
                     341     ;       {
                     342                             ; SOURCE LINE # 48
                     343     ;               SET_LCD_SCLK(1);
                     344                             ; SOURCE LINE # 49
0005 D2A7            345             SETB    P2_7
                     346     ;               //Delay(2);
                     347     ;               GET_LCD_SID(result);
0007 D291            348              SETB P1.1;     result = P2_6;
                     349     ;               dat <<= 1;
                     350                             ; SOURCE LINE # 52
0009 ED              351             MOV     A,R5
000A 25E0            352             ADD     A,ACC
000C FD              353             MOV     R5,A
000D EC              354             MOV     A,R4
000E 33              355             RLC     A
000F FC              356             MOV     R4,A
                     357     ;               dat |= result;
                     358                             ; SOURCE LINE # 53
0010 E9              359             MOV     A,R1
0011 FF              360             MOV     R7,A
0012 33              361             RLC     A
0013 95E0            362             SUBB    A,ACC
0015 FE              363             MOV     R6,A
0016 EF              364             MOV     A,R7
0017 4205            365             ORL     AR5,A
0019 EE              366             MOV     A,R6
001A 4204            367             ORL     AR4,A
                     368     ;               SET_LCD_SCLK(0);
                     369                             ; SOURCE LINE # 54
001C C2A7            370             CLR     P2_7
                     371     ;               //Delay(2);
                     372     ;       }
                     373                             ; SOURCE LINE # 56
001E 0B              374             INC     R3
001F BB0001          375             CJNE    R3,#00H,?C0046
0022 0A              376             INC     R2
0023                 377     ?C0046:
0023 EB              378             MOV     A,R3
0024 6410            379             XRL     A,#010H
0026 4A              380             ORL     A,R2
0027 70DC            381             JNZ     ?C0013
0029                 382     ?C0014:
                     383     ;       result = ((dat & 0xf000) >> 8) + ((dat & 0x00f0) >> 4);
                     384                             ; SOURCE LINE # 57
0029 7E00            385             MOV     R6,#00H
002B ED              386             MOV     A,R5
002C 54F0            387             ANL     A,#0F0H
A51 MACRO ASSEMBLER  LCD_DRIVER                                                           05/23/2006 22:06:29 PAGE     7

002E 7804            388             MOV     R0,#04H
0030                 389     ?C0047:
0030 CE              390             XCH     A,R6
0031 A2E7            391             MOV     C,ACC.7
0033 13              392             RRC     A
0034 CE              393             XCH     A,R6
0035 13              394             RRC     A
0036 D8F8            395             DJNZ    R0,?C0047
0038 FB              396             MOV     R3,A
0039 EC              397             MOV     A,R4
003A 54F0            398             ANL     A,#0F0H
003C 2B              399             ADD     A,R3
                     400     ;       return result;
                     401                             ; SOURCE LINE # 58
003D FF              402             MOV     R7,A
                     403     ; }
                     404                             ; SOURCE LINE # 59
003E                 405     ?C0016:
003E 22              406             RET     
                     407     ; END OF lcd_read_byte
                     408     
                     409     ; 
                     410     ; int lcd_busy_flag(void)
                     411     
----                 412             RSEG  ?PR?lcd_busy_flag?LCD_DRIVER
0000                 413     lcd_busy_flag:
                     414             USING   0
                     415                             ; SOURCE LINE # 61
                     416     ; {
                     417                             ; SOURCE LINE # 62
                     418     ;       char start_byte;
                     419     ; 
                     420     ;       start_byte = SYNC_CHARACTER | START_BYTE_RW;
                     421                             ; SOURCE LINE # 65
                     422     ;---- Variable 'start_byte?347' assigned to Register 'R7' ----
0000 7FFC            423             MOV     R7,#0FCH
                     424     ; 
                     425     ;       lcd_send_byte(start_byte);
                     426                             ; SOURCE LINE # 67
0002 120000   F      427             LCALL   _lcd_send_byte
                     428     ; 
                     429     ;       //SET_LCD_SID(1);
                     430     ; 
                     431     ;       return lcd_read_byte() & 0x80;
                     432                             ; SOURCE LINE # 71
0005 120000   F      433             LCALL   lcd_read_byte
0008 7E00            434             MOV     R6,#00H
000A EF              435             MOV     A,R7
000B 5480            436             ANL     A,#080H
000D FF              437             MOV     R7,A
                     438     ; }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -