📄 text4.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 + -