?? 1602.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 ;跳轉(zhuǎn)到MAIN處
10
0030 11 ORG 0030H ;主程序從0030H處開始
12
0030 13 MAIN:
0030 758170 14 MOV SP,#70H ;堆棧指針指向70H
0033 120073 15 LCALL INITIAL ;調(diào)用啟動LCM子程序進行初始化
0036 1200BA 16 LCALL CLS ;調(diào)用清除LCM子程序
17
0039 7480 18 MOV A,#80H ;向A送立即數(shù)80H設(shè)定顯示地址為第一行第一列
003B 12009A 19 LCALL WRITE_COM ;調(diào)用寫指令到LCM子程序
20
003E 900051 21 MOV DPTR,#LINE1 ;將第一行字符串的啟始地址送如DPTR中
0041 1200C9 22 LCALL DISP ;調(diào)用顯示字符串到LCM子程序
23
24
0044 74C0 25 MOV A,#0C0H ;向A送立即數(shù)0C0H設(shè)定顯示地址為第二行第一列
0046 12009A 26 LCALL WRITE_COM ;調(diào)用寫指令到LCM子程序
27
0049 900062 28 MOV DPTR,#LINE2 ;將第二行字符串的啟始地址送如DPTR中
004C 1200C9 29 LCALL DISP ;調(diào)用顯示字符串到LCM子程序
004F 80FE 30 SJMP $ ;程序動態(tài)停機
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: ;寫數(shù)據(jù)到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的內(nèi)容壓棧
98
00CB 99 DISP_LOOP:
00CB E4 100 CLR A ;A清零
00CC 93 101 MOVC A,@A+DPTR ;查表將字符串內(nèi)容送入A
00CD 6006 102 JZ END_DISP ;若查到的內(nèi)容為0則終止查表
00CF 1200AA 103 LCALL WRITE_DATA ;調(diào)用寫數(shù)據(jù)到LCM子程序
00D2 A3 104 INC DPTR ;DPTR加1指向下一個對象
00D3 80F6 105 SJMP DISP_LOOP ;跳轉(zhuǎn)到DISP_LOOP循環(huán)執(zhí)行
106
00D5 107 END_DISP:
00D5 D0E0 108 POP ACC ;彈出壓棧內(nèi)容至A
00D7 22 109 RET
110 ;---------------------------------------------------------
111
112
113
114
115 END ;程序結(jié)束
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)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -