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

📄 lcd_test.lst

📁 dp51的实验程序
💻 LST
字号:
A51 MACRO ASSEMBLER  LCD_TEST                                                             09/10/2003 16:49:47 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN Lcd_test.OBJ
ASSEMBLER INVOKED BY: C:\KEIL\C51\BIN\A51.EXE Lcd_test.asm SET(LARGE) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;******************************Copyright (c)******************************
                       2     ;**                     广州周立功单片机发展有限公司
                       3     ;**                           研    究    所
                       4     ;**                               产品一部 
                       5     ;**                        http://www.zlgmcu.com
                       6     ;**-------------------------------文件信息--------------------------------
                       7     ;文件名:LCD_TEST.ASM
                       8     ;功能  :在DP-51+实验板完成LCD点阵字符液晶显示。在第1行显示DP-51+,在第2行
                       9     ;       显示2003年9月10日。
                      10             
                      11     ;说明  :
                      12     ;       1.LCD液晶显示屏数据口地址为F80xH~F80xH之间。
                      13     ;       2.这里只对LCD进行写操作。
                      14     ;最后修改时间:2003年9月10日
                      15     ;***************************************************************************
                      16     
  F800                17     WR_COM  EQU     0F800H          ;写指令地址
  F802                18     RD_STA  EQU     0F802H          ;读状态地址
  F801                19     WR_DAT  EQU     0F801H          ;写数据地址
  F803                20     RD_DAT  EQU     0F803H          ;读数据地址
                      21     
                      22     
4000                  23             ORG     4000H
4000 2100             24             AJMP    MAIN
                      25     
4100                  26             ORG     4100h
4100                  27     MAIN:
4100 758160           28             MOV     SP,#60h         ;设置SP
4103 31CD             29             ACALL   DELAY           ;延时
                      30     
4105 317B             31             ACALL   INIT_LCD        ;初始化液晶模块
                      32     
4107 31AA             33             ACALL   WRITE_CGRAM     ;设置CGRAM
                      34     
4109 7484             35             MOV     A,#84H          ;从第一行第5位开始
410B 318C             36             ACALL   WRITE_COM
                      37     
410D 7E06             38             MOV     R6,#06          ;显示DP-51+
410F 9041EE           39             MOV     DPTR,#TABLE1    ;读取DP-51+数据表地址
4112                  40     DISP1:
4112 E4               41             CLR     A
4113 93               42             MOVC    A,@A+DPTR
4114 319B             43             ACALL   WRITE_DAT
4116 A3               44             INC     DPTR
4117 DEF9             45             DJNZ    R6,DISP1
                      46     
4119 74C2             47             MOV     A,#0C2H         ;第二行第二位开始显示
411B 318C             48             ACALL   WRITE_COM
                      49     
411D 7E0D             50             MOV     R6,#13          ;显示ZLG2003年3月26日
411F 904205           51             MOV     DPTR,#TABLE2    ;读取数据表2地址
4122                  52     DISP2:
4122 E4               53             CLR     A
4123 93               54             MOVC    A,@A+DPTR
4124 319B             55             ACALL   WRITE_DAT
4126 A3               56             INC     DPTR
4127 DEF9             57             DJNZ    R6,DISP2
                      58     
A51 MACRO ASSEMBLER  LCD_TEST                                                             09/10/2003 16:49:47 PAGE     2

                      59     
4129                  60     DISP_LOOP:
4129 7407             61             MOV     A,#07H          ;设置左移模式
412B 318C             62             ACALL   WRITE_COM
412D 748F             63             MOV     A,#8FH          ;从第一行第16位开始
412F 318C             64             ACALL   WRITE_COM
                      65     
4131 7E10             66             MOV     R6,#16          ;左移16个 空格
4133                  67     DISP_LEFT:
4133 7410             68             MOV     A,#10H
4135 319B             69             ACALL   WRITE_DAT
4137 31CD             70             ACALL   DELAY           ;延时
4139 31CD             71             ACALL   DELAY
413B 31CD             72             ACALL   DELAY
413D 31CD             73             ACALL   DELAY
413F 31CD             74             ACALL   DELAY
4141 31CD             75             ACALL   DELAY
4143 31CD             76             ACALL   DELAY
4145 31CD             77             ACALL   DELAY
4147 31CD             78             ACALL   DELAY
4149 31CD             79             ACALL   DELAY
414B 31CD             80             ACALL   DELAY
414D 31CD             81             ACALL   DELAY
414F DEE2             82             DJNZ    R6,DISP_LEFT
                      83     
4151 7405             84             MOV     A,#05H          ;设置右移模式
4153 318C             85             ACALL   WRITE_COM
4155 7480             86             MOV     A,#80H          ;从第一行第1位开始
4157 318C             87             ACALL   WRITE_COM
                      88     
4159 7E10             89             MOV     R6,#16
415B                  90     DISP_RIGHT:
415B 7410             91             MOV     A,#10H
415D 319B             92             ACALL   WRITE_DAT
415F 31CD             93             ACALL   DELAY           ;延时
4161 31CD             94             ACALL   DELAY
4163 31CD             95             ACALL   DELAY
4165 31CD             96             ACALL   DELAY
4167 31CD             97             ACALL   DELAY
4169 31CD             98             ACALL   DELAY
416B 31CD             99             ACALL   DELAY
416D 31CD            100             ACALL   DELAY
416F 31CD            101             ACALL   DELAY
4171 31CD            102             ACALL   DELAY
4173 31CD            103             ACALL   DELAY
4175 31CD            104             ACALL   DELAY
4177 DEE2            105             DJNZ    R6,DISP_RIGHT
                     106             
4179 80AE            107             SJMP    DISP_LOOP       ;循环移动
                     108     
                     109     
                     110             ;初始化液晶模块
417B                 111     INIT_LCD:
417B 7438            112             MOV     A,#38H          ;设置为8位数据总线,16*2,5*7点阵
417D 318C            113             ACALL   WRITE_COM
417F 7401            114             MOV     A,#01H          ;清屏幕
4181 318C            115             ACALL   WRITE_COM
4183 7406            116             MOV     A,#06H          ;光标移动,显示区不移动,读写操作后AC加1
4185 318C            117             ACALL   WRITE_COM
4187 740C            118             MOV     A,#0CH          ;开显示,关光标,不闪烁
4189 318C            119             ACALL   WRITE_COM
418B 22              120             RET
                     121     
                     122             ;写指令子程序
418C                 123     WRITE_COM:
418C C083            124             PUSH    DPH             ;保存DPTR
A51 MACRO ASSEMBLER  LCD_TEST                                                             09/10/2003 16:49:47 PAGE     3

418E C082            125             PUSH    DPL
4190 90F800          126             MOV     DPTR,#WR_COM    ;设置写指令地址
4193 F0              127             MOVX    @DPTR,A         ;输出指令
4194 31CD            128             ACALL   DELAY           ;延时
4196 D082            129             POP     DPL             ;恢复DPTR
4198 D083            130             POP     DPH
419A 22              131             RET
                     132     
                     133     
                     134             ;写数据子程序
419B                 135     WRITE_DAT:
419B C083            136             PUSH    DPH             ;保存DPTR
419D C082            137             PUSH    DPL
419F 90F801          138             MOV     DPTR,#WR_DAT    ;设置写数据地址
41A2 F0              139             MOVX    @DPTR,A         ;输出数据
41A3 31CD            140             ACALL   DELAY           ;延时
41A5 D082            141             POP     DPL             ;恢复DPTR
41A7 D083            142             POP     DPH
41A9 22              143             RET
                     144     
                     145     
                     146             ;设置自定义字符
41AA                 147     WRITE_CGRAM:
41AA C0E0            148             PUSH    ACC             ;保护现场
41AC C082            149             PUSH    DPL
41AE C083            150             PUSH    DPH
41B0 C0D0            151             PUSH    PSW
41B2 7440            152             MOV     A,#40H          ;设置CGRAM开始地址为00H
41B4 318C            153             ACALL   WRITE_COM
41B6 7F18            154             MOV     R7,#24          ;输出3个自定义字符(3×8=24)
41B8 9041D6          155             MOV     DPTR,#CGRAM_TABLE
41BB                 156     WRITE_CGRAM1:
41BB E4              157             CLR     A
41BC 93              158             MOVC    A,@A+DPTR       ;读取表数据
41BD 319B            159             ACALL   WRITE_DAT       ;把数据写到CGRAM中
41BF A3              160             INC     DPTR
41C0 DFF9            161             DJNZ    R7,WRITE_CGRAM1
41C2 31CD            162             ACALL   DELAY           ;延时
41C4 D0D0            163             POP     PSW             ;现场恢复
41C6 D083            164             POP     DPH
41C8 D082            165             POP     DPL
41CA D0E0            166             POP     ACC
41CC 22              167             RET
                     168     
                     169     ;延时子程序
41CD                 170     DELAY:
41CD 7D64            171             MOV     R5,#100
41CF                 172     DELAY1:
41CF 7C64            173             MOV     R4,#100
41D1 DCFE            174             DJNZ    R4,$
41D3 DDFA            175             DJNZ    R5,DELAY1
41D5 22              176             RET
                     177     
                     178     ;定义代码
41D6                 179     CGRAM_TABLE:
41D6 080F120F        180             DB 08H,0FH,12H,0FH,0AH,1FH,02H,02H      ;年
41DA 0A1F0202                
41DE 0F090F09        181             DB 0FH,09H,0FH,09H,0FH,09H,11H,00H      ;月
41E2 0F091100                
41E6 0F09090F        182             DB 0FH,09H,09H,0FH,09H,09H,0FH,00H      ;日
41EA 09090F00                
41EE                 183     TABLE1:
41EE 44502D35        184             DB 44H,50H,2DH,35H,31H,2BH;DP-51+
41F2 312B                    
41F4                 185     TABLE3:
41F4 10101010        186             DB 10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H;空格
A51 MACRO ASSEMBLER  LCD_TEST                                                             09/10/2003 16:49:47 PAGE     4

41F8 10101010                
41FC 10101010                
4200 10101010                
4204 10                      
4205                 187     TABLE2:
4205 5A4C4732        188             DB 5AH,4CH,47H,32H,30H,30H,33H,00H,39H,01H,31H,36H,02H
4209 30303300                
420D 39013136                
4211 02                      
                     189             ;   Z   l   G   2   0   0   3   年  9  月   1   0   日
                     190     
                     191             END
A51 MACRO ASSEMBLER  LCD_TEST                                                             09/10/2003 16:49:47 PAGE     5

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


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

ACC. . . . . . . .  D ADDR   00E0H   A   
CGRAM_TABLE. . . .  C ADDR   41D6H   A   
DELAY. . . . . . .  C ADDR   41CDH   A   
DELAY1 . . . . . .  C ADDR   41CFH   A   
DISP1. . . . . . .  C ADDR   4112H   A   
DISP2. . . . . . .  C ADDR   4122H   A   
DISP_LEFT. . . . .  C ADDR   4133H   A   
DISP_LOOP. . . . .  C ADDR   4129H   A   
DISP_RIGHT . . . .  C ADDR   415BH   A   
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
INIT_LCD . . . . .  C ADDR   417BH   A   
MAIN . . . . . . .  C ADDR   4100H   A   
PSW. . . . . . . .  D ADDR   00D0H   A   
RD_DAT . . . . . .  N NUMB   F803H   A   
RD_STA . . . . . .  N NUMB   F802H   A   
SP . . . . . . . .  D ADDR   0081H   A   
TABLE1 . . . . . .  C ADDR   41EEH   A   
TABLE2 . . . . . .  C ADDR   4205H   A   
TABLE3 . . . . . .  C ADDR   41F4H   A   
WRITE_CGRAM. . . .  C ADDR   41AAH   A   
WRITE_CGRAM1 . . .  C ADDR   41BBH   A   
WRITE_COM. . . . .  C ADDR   418CH   A   
WRITE_DAT. . . . .  C ADDR   419BH   A   
WR_COM . . . . . .  N NUMB   F800H   A   
WR_DAT . . . . . .  N NUMB   F801H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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