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

📄 lcd_driver.ls1

📁 128x64点阵液晶屏驱动
💻 LS1
📖 第 1 页 / 共 5 页
字号:
                     439                             ; SOURCE LINE # 72
000E                 440     ?C0017:
000E 22              441             RET     
                     442     ; END OF lcd_busy_flag
                     443     
                     444     ; 
                     445     ; void lcd_write_instruction(char ins, char mode)
                     446     
----                 447             RSEG  ?PR?_lcd_write_instruction?LCD_DRIVER
0000                 448     L?0051:
                     449             USING   0
0000 AF82            450             MOV     R7,DPL
0002 EF              451             MOV     A,R7
0003                 452     L?0052:
0003 4480            453             ORL     A,#080H
A51 MACRO ASSEMBLER  LCD_DRIVER                                                           05/23/2006 22:06:29 PAGE     8

0005 FF              454             MOV     R7,A
0006 7D01            455             MOV     R5,#01H
0008                 456     _lcd_write_instruction:
                     457             USING   0
                     458                             ; SOURCE LINE # 74
0008 8F00     F      459             MOV     ins?448,R7
                     460     ;---- Variable 'mode?449' assigned to Register 'R5' ----
                     461     ; {
                     462                             ; SOURCE LINE # 75
                     463     ;       char start_byte;
                     464     ;       int command;
                     465     ;       
                     466     ;       if(mode)
                     467                             ; SOURCE LINE # 79
000A ED              468             MOV     A,R5
000B 6007            469             JZ      ?C0018
000D                 470     ?C0019:
                     471     ;               while(lcd_busy_flag())
                     472                             ; SOURCE LINE # 80
000D 120000   F      473             LCALL   lcd_busy_flag
0010 EF              474             MOV     A,R7
0011 4E              475             ORL     A,R6
0012 70F9            476             JNZ     ?C0019
                     477     ;               {
                     478                             ; SOURCE LINE # 81
                     479     ;                       ;
                     480     ;               }
                     481                             ; SOURCE LINE # 83
0014                 482     ?C0018:
                     483     ; 
                     484     ;       start_byte = SYNC_CHARACTER;
                     485                             ; SOURCE LINE # 85
                     486     ;---- Variable 'start_byte?450' assigned to Register 'R7' ----
0014 7FF8            487             MOV     R7,#0F8H
                     488     ;       lcd_send_byte(start_byte);
                     489                             ; SOURCE LINE # 86
0016 120000   F      490             LCALL   _lcd_send_byte
                     491     ; 
                     492     ;       command = ins & 0xf0;
                     493                             ; SOURCE LINE # 88
0019 E500     F      494             MOV     A,ins?448
001B 54F0            495             ANL     A,#0F0H
001D FF              496             MOV     R7,A
001E 33              497             RLC     A
001F 95E0            498             SUBB    A,ACC
                     499     ;---- Variable 'command?451' assigned to Register 'R4/R5' ----
0021 AD07            500             MOV     R5,AR7
                     501     ;       command <<= 8;
                     502                             ; SOURCE LINE # 89
0023 ED              503             MOV     A,R5
0024 FC              504             MOV     R4,A
                     505     ;       command &= 0xff00;
                     506                             ; SOURCE LINE # 90
                     507     ;       command |= (ins & 0x0f) << 4;
                     508                             ; SOURCE LINE # 91
0025 E500     F      509             MOV     A,ins?448
0027 540F            510             ANL     A,#0FH
0029 FF              511             MOV     R7,A
002A 33              512             RLC     A
002B 95E0            513             SUBB    A,ACC
002D FE              514             MOV     R6,A
002E EF              515             MOV     A,R7
002F C4              516             SWAP    A
0030 F8              517             MOV     R0,A
0031 540F            518             ANL     A,#0FH
0033 C8              519             XCH     A,R0
A51 MACRO ASSEMBLER  LCD_DRIVER                                                           05/23/2006 22:06:29 PAGE     9

0034 68              520             XRL     A,R0
0035 FF              521             MOV     R7,A
0036 EE              522             MOV     A,R6
0037 C4              523             SWAP    A
0038 54F0            524             ANL     A,#0F0H
003A 48              525             ORL     A,R0
003B FE              526             MOV     R6,A
003C EF              527             MOV     A,R7
003D FD              528             MOV     R5,A
003E EE              529             MOV     A,R6
003F 4204            530             ORL     AR4,A
                     531     ; 
                     532     ;       lcd_send_word(command);
                     533                             ; SOURCE LINE # 93
0041 AF05            534             MOV     R7,AR5
0043 AE04            535             MOV     R6,AR4
0045 020000   F      536             LJMP    _lcd_send_word
                     537     ; END OF _lcd_write_instruction
                     538     
                     539     ; }
                     540     ; 
                     541     ; void lcd_write_data(char dat)
                     542     
----                 543             RSEG  ?PR?_lcd_write_data?LCD_DRIVER
0000                 544     L?0053:
                     545             USING   0
0000 E4              546             CLR     A
0001 FF              547             MOV     R7,A
0002 120000   F      548             LCALL   _lcd_write_data
0005 E4              549             CLR     A
0006 FF              550             MOV     R7,A
0007                 551     _lcd_write_data:
                     552             USING   0
                     553                             ; SOURCE LINE # 96
                     554     ;---- Variable 'dat?552' assigned to Register 'R3' ----
0007 AB07            555             MOV     R3,AR7
                     556     ; {
                     557                             ; SOURCE LINE # 97
                     558     ;       char start_byte;
                     559     ;       int command;
                     560     ; 
                     561     ;       start_byte = SYNC_CHARACTER | START_BYTE_RS;
                     562                             ; SOURCE LINE # 101
                     563     ;---- Variable 'start_byte?553' assigned to Register 'R7' ----
0009 7FFA            564             MOV     R7,#0FAH
                     565     ;       lcd_send_byte(start_byte);
                     566                             ; SOURCE LINE # 102
000B 120000   F      567             LCALL   _lcd_send_byte
                     568     ; 
                     569     ;       command = dat & 0xf0;
                     570                             ; SOURCE LINE # 104
000E EB              571             MOV     A,R3
000F 54F0            572             ANL     A,#0F0H
0011 FF              573             MOV     R7,A
0012 33              574             RLC     A
0013 95E0            575             SUBB    A,ACC
                     576     ;---- Variable 'command?554' assigned to Register 'R4/R5' ----
0015 AD07            577             MOV     R5,AR7
                     578     ;       command <<= 8;
                     579                             ; SOURCE LINE # 105
0017 ED              580             MOV     A,R5
0018 FC              581             MOV     R4,A
                     582     ;       command &= 0xff00;
                     583                             ; SOURCE LINE # 106
                     584     ;       command |= (dat & 0x0f) << 4;
                     585                             ; SOURCE LINE # 107
A51 MACRO ASSEMBLER  LCD_DRIVER                                                           05/23/2006 22:06:29 PAGE    10

0019 EB              586             MOV     A,R3
001A 540F            587             ANL     A,#0FH
001C FF              588             MOV     R7,A
001D 33              589             RLC     A
001E 95E0            590             SUBB    A,ACC
0020 FE              591             MOV     R6,A
0021 EF              592             MOV     A,R7
0022 C4              593             SWAP    A
0023 F8              594             MOV     R0,A
0024 540F            595             ANL     A,#0FH
0026 C8              596             XCH     A,R0
0027 68              597             XRL     A,R0
0028 FF              598             MOV     R7,A
0029 EE              599             MOV     A,R6
002A C4              600             SWAP    A
002B 54F0            601             ANL     A,#0F0H
002D 48              602             ORL     A,R0
002E FE              603             MOV     R6,A
002F EF              604             MOV     A,R7
0030 FD              605             MOV     R5,A
0031 EE              606             MOV     A,R6
0032 4204            607             ORL     AR4,A
                     608     ; 
                     609     ;       lcd_send_word(command);
                     610                             ; SOURCE LINE # 109
0034 AF05            611             MOV     R7,AR5
0036 AE04            612             MOV     R6,AR4
0038 020000   F      613             LJMP    _lcd_send_word
                     614     ; END OF _lcd_write_data
                     615     
                     616     ; }
                     617     ; 
                     618     ; void lcd_init(void)
                     619     
----                 620             RSEG  ?PR?lcd_init?LCD_DRIVER
0000                 621     lcd_init:
                     622             USING   0
                     623                             ; SOURCE LINE # 112
                     624     ; {
                     625                             ; SOURCE LINE # 113
                     626     ;       SET_LCD_SCLK(0);
                     627                             ; SOURCE LINE # 114
0000 C2A7            628             CLR     P2_7
                     629     ;       SET_LCD_CS(1);
                     630                             ; SOURCE LINE # 115
0002 D2A5            631             SETB    P2_5
                     632     ;       SET_LCD_RESET(0);
                     633                             ; SOURCE LINE # 116
0004 C280            634             CLR     P0_0
                     635     ;       Delay(200);
                     636                             ; SOURCE LINE # 117
0006 7FC8            637             MOV     R7,#0C8H
0008 7E00            638             MOV     R6,#00H
000A 120000   F      639             LCALL   _Delay
                     640     ;       SET_LCD_RESET(1);
                     641                             ; SOURCE LINE # 118
000D D280            642             SETB    P0_0
                     643     ;       Delay(200);
                     644                             ; SOURCE LINE # 119
000F 7FC8            645             MOV     R7,#0C8H
0011 7E00            646             MOV     R6,#00H
0013 120000   F      647             LCALL   _Delay
                     648     ; 
                     649     ;       lcd_write_instruction(0x38, 0);
                     650                             ; SOURCE LINE # 121
0016 E4              651             CLR     A
A51 MACRO ASSEMBLER  LCD_DRIVER                                                           05/23/2006 22:06:29 PAGE    11

0017 FD              652             MOV     R5,A
0018 7F38            653             MOV     R7,#038H
001A 120000   F      654             LCALL   _lcd_write_instruction
                     655     ;       Delay(200);
                     656                             ; SOURCE LINE # 122
001D 7FC8            657             MOV     R7,#0C8H
001F 7E00            658             MOV     R6,#00H
0021 120000   F      659             LCALL   _Delay
                     660     ;       lcd_write_instruction(0x38, 0);

⌨️ 快捷键说明

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