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

📄 lcd.lst

📁 单片机开发板源码 适合初学者 第四部分 字符型LCD显示1-2
💻 LST
字号:
A51 MACRO ASSEMBLER  LCD                                                                  09/13/2007 01:36:53 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN LCD.OBJ
ASSEMBLER INVOKED BY: C:\tools\Keil\C51\BIN\A51.EXE LCD.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;实验名称:字符型LCD接口实验
                       2     ;  功能:在LCD上显示
                       3     ;        AT89S51 DEMO
                       4     ;       www.mcuprog.com
                       5     ;  作者:http://www.mcuprog.com
                       6     ;        05-02-01
                       7     ;
                       8     
  00A2                 9     E               BIT     P2.2
  00A1                10     RW              BIT     P2.1
  00A0                11     RS              BIT     P2.0
  0080                12     LCDPORT         EQU     P0
  0030                13     CMD_BYTE        EQU     30H
  0031                14     DAT_BYTE        EQU     31H
                      15     
0000                  16                     ORG     0000H
0000 0150             17                     AJMP    MAIN
0050                  18                     ORG     0050H
0050 758160           19     MAIN:           MOV     SP,#60H
0053 120082           20                     LCALL   INITLCD
0056 1200AD           21                     LCALL   DISPMSG1
0059 1200C5           22                     LCALL   DISPMSG2
005C 80FE             23                     SJMP    $
                      24                     
                      25     ;LCD1602要用到的一些子程序
                      26     ;写命令(入口参数CMD_BYTE)
005E C2A0             27     WRITE_CMD:      CLR     RS
0060 C2A1             28                     CLR     RW
0062 E530             29                     MOV     A,CMD_BYTE
0064 F580             30                     MOV     LCDPORT,A
0066 D2A2             31                     SETB    E
0068 00               32                     NOP
0069 00               33                     NOP
006A C2A2             34                     CLR     E
006C 1200DD           35                     LCALL   DELAY
006F 22               36                     RET
                      37     
                      38     ;写显示数据(入口参数DAT_BYTE)
0070 D2A0             39     WRITE_DAT:      SETB    RS
0072 C2A1             40                     CLR     RW
0074 E531             41                     MOV     A,DAT_BYTE
0076 F580             42                     MOV     LCDPORT,A
0078 D2A2             43                     SETB    E
007A 00               44                     NOP
007B 00               45                     NOP
007C C2A2             46                     CLR     E
007E 1200DD           47                     LCALL   DELAY
0081 22               48                     RET
                      49     
                      50     ;LCD显示初始化
0082 753030           51     INITLCD:        MOV     CMD_BYTE,#30H
0085 12005E           52                     LCALL   WRITE_CMD
0088 753030           53                     MOV     CMD_BYTE,#30H
008B 12005E           54                     LCALL   WRITE_CMD
008E 753030           55                     MOV     CMD_BYTE,#30H
0091 12005E           56                     LCALL   WRITE_CMD
0094 753038           57                     MOV     CMD_BYTE,#38H           ;设定工作方式
0097 12005E           58                     LCALL   WRITE_CMD
A51 MACRO ASSEMBLER  LCD                                                                  09/13/2007 01:36:53 PAGE     2

009A 75300C           59                     MOV     CMD_BYTE,#0CH           ;显示状态设置
009D 12005E           60                     LCALL   WRITE_CMD
00A0 753001           61                     MOV     CMD_BYTE,#01H           ;清屏
00A3 12005E           62                     LCALL   WRITE_CMD
00A6 753006           63                     MOV     CMD_BYTE,#06H           ;输入方式设置
00A9 12005E           64                     LCALL   WRITE_CMD               
00AC 22               65                     RET
                      66     ;在第一行显示表格1的内容
00AD 753080           67     DISPMSG1:       MOV     CMD_BYTE,#80H            
00B0 12005E           68                     LCALL   WRITE_CMD
00B3 7F10             69                     MOV     R7,#10H
00B5 7E00             70                     MOV     R6,#00H
00B7 900200           71                     MOV     DPTR,#TAB1
00BA EE               72     DISPMSG1_1:     MOV     A,R6
00BB 93               73                     MOVC    A,@A+DPTR
00BC F531             74                     MOV     DAT_BYTE,A
00BE 120070           75                     LCALL   WRITE_DAT
00C1 0E               76                     INC     R6
00C2 DFF6             77                     DJNZ    R7,DISPMSG1_1
00C4 22               78                     RET
                      79     
                      80     ;在第二行显示表格1的内容
00C5 7530C0           81     DISPMSG2:       MOV     CMD_BYTE,#0C0H           
00C8 12005E           82                     LCALL   WRITE_CMD
00CB 7F10             83                     MOV     R7,#10H
00CD 7E00             84                     MOV     R6,#00H
00CF 900210           85                     MOV     DPTR,#TAB2
00D2 EE               86     DISPMSG2_1:     MOV     A,R6
00D3 93               87                     MOVC    A,@A+DPTR
00D4 F531             88                     MOV     DAT_BYTE,A
00D6 120070           89                     LCALL   WRITE_DAT
00D9 0E               90                     INC     R6
00DA DFF6             91                     DJNZ    R7,DISPMSG2_1
00DC 22               92                     RET
                      93     
                      94     ;延时子程序
00DD 7DA0             95     DELAY:          MOV     R5,#0A0H
00DF 00               96     DELAY1:         NOP
00E0 DDFD             97                     DJNZ    R5,DELAY1
00E2 22               98                     RET
                      99     
0200                 100                     ORG     0200H
                     101     ;要显示的内容
0200 20204154        102     TAB1:           DB      "  AT89S51 DEMO  "
0204 38395335                
0208 31204445                
020C 4D4F2020                
0210 7777772E        103     TAB2:           DB      "www.mcuprog.com "
0214 6D637570                
0218 726F672E                
021C 636F6D20                
                     104                     END
A51 MACRO ASSEMBLER  LCD                                                                  09/13/2007 01:36:53 PAGE     3

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


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

CMD_BYTE . . . . .  N NUMB   0030H   A   
DAT_BYTE . . . . .  N NUMB   0031H   A   
DELAY. . . . . . .  C ADDR   00DDH   A   
DELAY1 . . . . . .  C ADDR   00DFH   A   
DISPMSG1 . . . . .  C ADDR   00ADH   A   
DISPMSG1_1 . . . .  C ADDR   00BAH   A   
DISPMSG2 . . . . .  C ADDR   00C5H   A   
DISPMSG2_1 . . . .  C ADDR   00D2H   A   
E. . . . . . . . .  B ADDR   00A0H.2 A   
INITLCD. . . . . .  C ADDR   0082H   A   
LCDPORT. . . . . .  D ADDR   0080H   A   
MAIN . . . . . . .  C ADDR   0050H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
RS . . . . . . . .  B ADDR   00A0H.0 A   
RW . . . . . . . .  B ADDR   00A0H.1 A   
SP . . . . . . . .  D ADDR   0081H   A   
TAB1 . . . . . . .  C ADDR   0200H   A   
TAB2 . . . . . . .  C ADDR   0210H   A   
WRITE_CMD. . . . .  C ADDR   005EH   A   
WRITE_DAT. . . . .  C ADDR   0070H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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