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

📄 text4.lst

📁 LCD1602的C语言显示编程
💻 LST
字号:
A51 MACRO ASSEMBLER  TEXT4                                                                01/01/2008 18:43:08 PAGE     1


MACRO ASSEMBLER A51 V7.02a
OBJECT MODULE PLACED IN Text4.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE Text4.a SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;A15=E的选通信号,A9=R/W,A8=RS
  0020                 2     COM      EQU      20H     ;指令寄存器                         
  0021                 3     DAT      EQU      21H     ;数据寄存器             
  8000                 4     CW_Add   EQU      8000H   ;指令口写地址           
  8200                 5     CR_Add   EQU      8200H   ;指令口读地址           
  8100                 6     DW_Add   EQU      8100H   ;数据口写地址            
  8300                 7     DR_Add   EQU      8300H   ;数据口读地址
                       8         
                       9     ;初始化演示程序
0000 758160           10      MAIN:  MOV        SP,#60H
0003 53B0C7           11             ANL        P3,#0C7H
0006 12006D           12             LCALL      INT
0009 120093           13             LCALL      WRIT
                      14     ;读BF和AC值
000C C083             15     PRO:     PUSH        DPH 
000E C082             16              PUSH        DPL
0010 C0E0             17              PUSH        ACC
0012 908200           18              MOV         DPTR,#CR_Add    ;设置指令口读地址
0015 E0               19              MOVX        A,@DPTR         ;读BF和AC值     
0016 F520             20              MOV         COM,A           ;存入COM单元
0018 D0E0             21              POP         ACC
001A D082             22              POP         DPL
001C D083             23              POP         DPH
001E 22               24              RET
                      25     ;写指令代码子程序
001F C083             26     PR1:      PUSH     DPH
0021 C082             27               PUSH     DPL
0023 C0E0             28               PUSH     ACC
0025 908200           29               MOV      DPTR,#CR_Add   ;设置指令口读地址
0028 E0               30     PR11:     MOVX     A,@DPTR
0029 20E7FC           31               JB       ACC.7,PR11     ;判BF=0?是继续
002C E520             32               MOV      A,COM
002E 908000           33               MOV      DPTR,#CW_Add   ;设置指令口写地址
0031 F0               34               MOVX     @DPTR,A        ;写指令代码
0032 D0E0             35               POP      ACC
0034 D082             36               POP      DPL
0036 D083             37               POP      DPH
0038 22               38               RET
                      39     ;写显示数据子程序
0039 C083             40     PR2:     PUSH     DPH
003B C082             41              PUSH     DPL
003D C0E0             42              PUSH     ACC
003F 908200           43              MOV      DPTR,#CR_Add   ;设置指令口读地址
0042 E0               44     PR21:    MOVX     A,@DPTR
0043 20E7FC           45               JB       ACC.7,PR21     ;判BF=0?是继续
0046 E521             46               MOV      A,DAT
0048 908100           47               MOV      DPTR,#DW_Add   ;设置数据口写地址
004B F0               48               MOVX     @DPTR,A        ;写数据
004C D0E0             49               POP      ACC
004E D082             50               POP      DPL
0050 D083             51               POP      DPH
0052 22               52               RET
                      53     ;读显示数据子程序
0053 C083             54      PR3:    PUSH     DPH
0055 C082             55              PUSH     DPL
0057 C0E0             56              PUSH     ACC
0059 908200           57              MOV      DPTR,#CR_Add   ;设置指令口读地址
005C E0               58      PR31:    MOVX     A,@DPTR
A51 MACRO ASSEMBLER  TEXT4                                                                01/01/2008 18:43:08 PAGE     2

005D 20E7FC           59               JB       ACC.7,PR31     ;判BF=0?是继续
0060 908300           60               MOV      DPTR,#DR_Add   ;设置数据口读地址
0063 E0               61               MOVX     A,@DPTR        ;读数据
0064 F521             62               MOV      DAT,A          ;存入DAT单元
0066 D0E0             63               POP      ACC
0068 D082             64               POP      DPL
006A D083             65               POP      DPH
006C 22               66               RET
                      67     ;直接访问方式下的初始化子程序
006D 7438             68       INT:    MOV     A,#38H          ;此循环必要,不可删除
006F 908000           69               MOV     DPTR,#CW_Add    ;指令口地址设置
0072 7A03             70               MOV     R2,#03H        ;循环量=3 
0074 F0               71      INTU1:   MOVX    @DPTR,A         ;写指令代码
0075 1200B5           72               LCALL   DELAY5MS            ;调延时子程序 
0078 DAFA             73               DJNZ    R2,INTU1
007A 752038           74               MOV     COM,#38H        ;设置工作方式*
007D 12001F           75               LCALL   PR1              ;
0080 752001           76               MOV     COM,#01H        ;清屏
0083 12001F           77               LCALL   PR1
0086 752006           78               MOV     COM,#06H        ;设置输入方式
0089 12001F           79               LCALL   PR1
008C 75200F           80               MOV     COM,#0FH        ;设置显示方式
008F 12001F           81               LCALL   PR1
0092 22               82               RET
                      83     ;画面左滚动输入方式演示程序段
0093 752007           84     WRIT:  MOV      COM,#07H            ; 输入方式设置
0096 12001F           85                LCALL    PR1
0099 752090           86                MOV      COM,#90H           ; 设置DDRAM 地址
009C 12001F           87                LCALL    PR1        
009F 9000C9           88                MOV      DPTR,#TABL        ; 设置字表首地址
00A2 7A0B             89                MOV      R2,#0BH            ; 循环量设置
00A4 7B00             90                MOV      R3,#00H 
00A6 EB               91     L_1:      MOV      A,R3
00A7 93               92                MOVC     A,@A+DPTR          ;取字符代码
00A8 F521             93                MOV      DAT,A            
00AA 120039           94                LCALL    PR2                 ;写数据
00AD 0B               95                INC      R3 
00AE 1200BF           96                LCALL    DELAY20MS               ;演示用延时
00B1 DAF3             97                DJNZ     R2,L_1
00B3 80FE             98                SJMP     $
                      99     ;注:*工作方式参数根据所使用的字符型液晶显示模块的特性而定。
00B5 7E04            100     DELAY5MS:   MOV      R6,#04H         ;延时子程序  
00B7 7F10            101                 MOV      R7,#10H
00B9 00              102     DELAY1:     NOP
00BA DFFD            103                 DJNZ       R7,DELAY1 
00BC DEFB            104                 DJNZ       R6,DELAY1
00BE 22              105                 RET
00BF 7EFF            106     DELAY20MS:  MOV      R6,#0FFH         ;延时子程序  
00C1 7FFF            107                 MOV      R7,#0FFH
00C3 00              108     DELAY2:     NOP
00C4 DFFD            109                 DJNZ       R7,DELAY2
00C6 DEFB            110                 DJNZ       R6,DELAY2
00C8 22              111                 RET
00C9 4C656674        112     TABL:      DB  4CH, 65H, 66H, 74H,20H           ;Left Scroll
00CD 20                      
00CE 5363726F        113                DB  53H, 63H, 72H, 6FH,6CH,6CH         
00D2 6C6C                    
                     114     
                     115     END
A51 MACRO ASSEMBLER  TEXT4                                                                01/01/2008 18:43:08 PAGE     3

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

ACC. . . . . . . .  D ADDR   00E0H   A   
COM. . . . . . . .  N NUMB   0020H   A   
CR_ADD . . . . . .  N NUMB   8200H   A   
CW_ADD . . . . . .  N NUMB   8000H   A   
DAT. . . . . . . .  N NUMB   0021H   A   
DELAY1 . . . . . .  C ADDR   00B9H   A   
DELAY2 . . . . . .  C ADDR   00C3H   A   
DELAY20MS. . . . .  C ADDR   00BFH   A   
DELAY5MS . . . . .  C ADDR   00B5H   A   
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
DR_ADD . . . . . .  N NUMB   8300H   A   
DW_ADD . . . . . .  N NUMB   8100H   A   
INT. . . . . . . .  C ADDR   006DH   A   
INTU1. . . . . . .  C ADDR   0074H   A   
L_1. . . . . . . .  C ADDR   00A6H   A   
MAIN . . . . . . .  C ADDR   0000H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
PR1. . . . . . . .  C ADDR   001FH   A   
PR11 . . . . . . .  C ADDR   0028H   A   
PR2. . . . . . . .  C ADDR   0039H   A   
PR21 . . . . . . .  C ADDR   0042H   A   
PR3. . . . . . . .  C ADDR   0053H   A   
PR31 . . . . . . .  C ADDR   005CH   A   
PRO. . . . . . . .  C ADDR   000CH   A   
SP . . . . . . . .  D ADDR   0081H   A   
TABL . . . . . . .  C ADDR   00C9H   A   
WRIT . . . . . . .  C ADDR   0093H   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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