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

📄 1602.lst

📁 AVR开发板范例程序,WS开发板配套_51_汇编源程序
💻 LST
字号:
A51 MACRO ASSEMBLER  1602                                                                 09/18/2005 16:10:52 PAGE     1


MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN 1602.OBJ
ASSEMBLER INVOKED BY: d:\Keil\C51\BIN\A51.EXE 1602.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     
                       2     
  00A5                 3      RS EQU P2.5  ;P3.4脚接RS端
  00A6                 4      R_W EQU P2.6  ;P3.5脚接R_W端
  00A7                 5      E EQU P2.7  ;P3.3脚接E端
  0080                 6      D_BUS EQU P0  ;P0口控制D_BUS输出
                       7     
0000                   8      ORG 0000H   ;从0000H处开始
0000 020030            9      LJMP MAIN   ;跳转到MAIN处
                      10     
0030                  11      ORG 0030H   ;主程序从0030H处开始
                      12     
0030                  13     MAIN: 
0030 758170           14      MOV SP,#70H   ;堆栈指针指向70H
0033 120073           15      LCALL INITIAL   ;调用启动LCM子程序进行初始化
0036 1200BA           16      LCALL CLS   ;调用清除LCM子程序
                      17      
0039 7480             18      MOV A,#80H   ;向A送立即数80H设定显示地址为第一行第一列
003B 12009A           19      LCALL WRITE_COM  ;调用写指令到LCM子程序
                      20      
003E 900051           21      MOV DPTR,#LINE1  ;将第一行字符串的启始地址送如DPTR中
0041 1200C9           22      LCALL DISP   ;调用显示字符串到LCM子程序
                      23      
                      24      
0044 74C0             25      MOV A,#0C0H   ;向A送立即数0C0H设定显示地址为第二行第一列
0046 12009A           26      LCALL WRITE_COM  ;调用写指令到LCM子程序
                      27      
0049 900062           28      MOV DPTR,#LINE2  ;将第二行字符串的启始地址送如DPTR中
004C 1200C9           29      LCALL DISP   ;调用显示字符串到LCM子程序
004F 80FE             30      SJMP $   ;程序动态停机
                      31     
0051 57454C43         32     LINE1: DB "WELCOME TO QLMCU",00H ;第一行字符串
0055 4F4D4520                
0059 544F2051                
005D 4C4D4355                
0061 00                      
0062 20575757         33     LINE2: DB " WWW.QLMCU.COM! ",00H ;第二行字符串
0066 2E514C4D                
006A 43552E43                
006E 4F4D2120                
0072 00                      
                      34     
0073                  35     INITIAL:    ;启动LCM子程序
0073 7438             36      MOV A,#38H
0075 12009A           37      LCALL WRITE_COM
0078 740E             38      MOV A,#0EH
007A 12009A           39      LCALL WRITE_COM
007D 7406             40      MOV A,#06H
007F 12009A           41      LCALL WRITE_COM
0082 22               42      RET
                      43     
                      44     ;-------------------------------------------------------
0083                  45     CHECK_BUSY:    ;查询忙碌信号子程序
0083 C0E0             46      PUSH ACC
0085                  47     BUSY_LOOP:
0085 C2A7             48      CLR E
0087 D2A6             49      SETB R_W
0089 C2A5             50      CLR RS
A51 MACRO ASSEMBLER  1602                                                                 09/18/2005 16:10:52 PAGE     2

008B D2A7             51      SETB E
008D E580             52      MOV A,D_BUS
008F C2A7             53      CLR E
0091 20E7F1           54      JB ACC.7,BUSY_LOOP
0094 D0E0             55      POP ACC
0096 1200C0           56      LCALL DEL
0099 22               57      RET
                      58     ;---------------------------------------------------------
                      59      
009A                  60     WRITE_COM:    ;写指令到LCM子程序 
009A 120083           61      LCALL CHECK_BUSY
009D F580             62       MOV D_BUS,A
009F C2A7             63      CLR E
00A1 C2A5             64      CLR RS
00A3 C2A6             65      CLR R_W
00A5 D2A7             66      SETB E
00A7 C2A7             67      CLR E
00A9 22               68      RET
                      69     ;----------------------------------------------------------
                      70     
00AA                  71     WRITE_DATA:    ;写数据到LCM子程序
00AA 120083           72      LCALL CHECK_BUSY
00AD F580             73       MOV D_BUS,A
00AF C2A7             74      CLR E
00B1 D2A5             75      SETB RS
00B3 C2A6             76      CLR R_W
00B5 D2A7             77      SETB E
00B7 C2A7             78      CLR E
00B9 22               79      RET
                      80     ;-----------------------------------------------------------
                      81     
00BA                  82     CLS:     ;清除LCM子程序
00BA 7401             83      MOV A,#01H
00BC 12009A           84      LCALL WRITE_COM
00BF 22               85      RET
                      86     ;-----------------------------------------------------------
                      87     
00C0                  88     DEL: 
00C0 7E05             89      MOV R6,#5   ;2.7ms延时子程序
00C2 7FF8             90     D1: MOV R7,#248
00C4 DFFE             91      DJNZ R7,$
00C6 DEFA             92      DJNZ R6,D1
00C8 22               93      RET
                      94     
                      95     ;----------------------------------------------------
00C9                  96     DISP: 
00C9 C0E0             97      PUSH ACC   ;将A的内容压栈
                      98     
00CB                  99     DISP_LOOP: 
00CB E4              100      CLR A   ;A清零
00CC 93              101      MOVC A,@A+DPTR  ;查表将字符串内容送入A
00CD 6006            102      JZ END_DISP  ;若查到的内容为0则终止查表
00CF 1200AA          103      LCALL WRITE_DATA  ;调用写数据到LCM子程序
00D2 A3              104      INC DPTR   ;DPTR加1指向下一个对象 
00D3 80F6            105      SJMP DISP_LOOP  ;跳转到DISP_LOOP循环执行
                     106     
00D5                 107     END_DISP:
00D5 D0E0            108      POP ACC   ;弹出压栈内容至A
00D7 22              109      RET
                     110     ;---------------------------------------------------------
                     111      
                     112     
                     113     
                     114     
                     115      END    ;程序结束
                             
A51 MACRO ASSEMBLER  1602                                                                 09/18/2005 16:10:52 PAGE     3

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


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

ACC. . . . . . . .  D ADDR   00E0H   A   
BUSY_LOOP. . . . .  C ADDR   0085H   A   
CHECK_BUSY . . . .  C ADDR   0083H   A   
CLS. . . . . . . .  C ADDR   00BAH   A   
D1 . . . . . . . .  C ADDR   00C2H   A   
DEL. . . . . . . .  C ADDR   00C0H   A   
DISP . . . . . . .  C ADDR   00C9H   A   
DISP_LOOP. . . . .  C ADDR   00CBH   A   
D_BUS. . . . . . .  D ADDR   0080H   A   
E. . . . . . . . .  B ADDR   00A0H.7 A   
END_DISP . . . . .  C ADDR   00D5H   A   
INITIAL. . . . . .  C ADDR   0073H   A   
LINE1. . . . . . .  C ADDR   0051H   A   
LINE2. . . . . . .  C ADDR   0062H   A   
MAIN . . . . . . .  C ADDR   0030H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
RS . . . . . . . .  B ADDR   00A0H.5 A   
R_W. . . . . . . .  B ADDR   00A0H.6 A   
SP . . . . . . . .  D ADDR   0081H   A   
WRITE_COM. . . . .  C ADDR   009AH   A   
WRITE_DATA . . . .  C ADDR   00AAH   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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