📄 ex9-10.lst
字号:
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 1
MCS-51 Family Cross Assembler A S E M - 5 1 V 1.2
=====================================================
Source File: EX9-10.ASM
Object File: EX9-10.HEX
List File: EX9-10.LST
Line I Addr Code Source
1: N 0050 COM EQU 50H ; LCD指令寄存器
2: N 0051 DAT EQU 51H ; LCD数据寄存器
3:
4: B 00A1 RS EQU P2.1 ; LCD寄存器选择信号
5: B 00A2 RW EQU P2.2 ; LCD读/写选择信号
6: B 00A3 E EQU P2.3 ; LCD使能信号
7:
8: N 0000 ORG 0000H
9: 0000 02 00 30 LJMP MAIN ;主程序入口
10: N 0030 ORG 0030H ;主程序
11: 0030 MAIN:
12: 0030 75 81 60 MOV SP,#60H ;主程序
13: 0033 12 00 6B LCALL INT ;调LCD间接控制方式下的初始化子程序
14: 0036 75 50 01 MOV COM,#01H ;LCd清0命令
15: 0039 12 00 BD LCALL PR1 ;调写指令代码子程序
16: 003C 75 50 06 MOV COM,#06H ;输入方式命令,光标右移
17: 003F 12 00 BD LCALL PR1 ;调写指令代码子程序
18: 0042 75 50 80 MOV COM,#080H ;设置DDRAM地址
19: 0045 12 00 BD LCALL PR1 ;调写指令代码子程序
20: 0048 90 00 5B MOV DPTR,#TAB ;DPTR指向显示字符表首地址
21: 004B 7A 10 MOV R2,#10H ;共显示16字符
22: 004D 7B 00 MOV R3,#00H
23: 004F EB WRIN: MOV A,R3
24: 0050 93 MOVC A,@A+DPTR ;取出显示字符
25: 0051 F5 51 MOV DAT,A
26: 0053 12 00 DF LCALL PR2 ;调写显示数据子程序
27: 0056 0B INC R3
28: 0057 DA F6 DJNZ R2,WRIN
29: 0059 80 FE SJMP $
30: 005B 48 65 6C 6C TAB: DB "Hello Everybody!";
005F 6F 20 45 76
0063 65 72 79 62
0067 6F 64 79 21
31:
32:
33: ;LCD 间接控制方式下的初始化子程序
34: 006B 12 00 9D INT: LCALL DELAY ; 调延时子程序
35: 006E 75 80 38 MOV P0,#38H ; 工作方式设置指令代码
36: 0071 C2 A1 CLR RS ; RS=0
37: 0073 C2 A2 CLR RW ; R/W=0
38: 0075 7A 03 MOV R2,#03 ; 循环量=3
39: 0077 D2 A3 INTT1: SETB E ; E=1
40: 0079 C2 A3 CLR E ; E=0
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
41: 007B DA FA DJNZ R2,INTT1
42: 007D 75 80 38 MOV P0,#38H ; 设置工作方式*
43: 0080 D2 A3 SETB E ; E=1
44: 0082 C2 A3 CLR E ; E=0
45: 0084 75 50 38 MOV COM,#38H ; 设置工作方式
46: 0087 12 00 BD LCALL PR1
47: 008A 75 50 01 MOV COM,#01H ; 清屏
48: 008D 12 00 BD LCALL PR1
49: 0090 75 50 06 MOV COM,#06H ; 设置输入方式
50: 0093 12 00 BD LCALL PR1
51: 0096 75 50 0E MOV COM,#0EH ; 设置显示方式
52: 0099 12 00 BD LCALL PR1
53: 009C 22 RET
54:
55: 009D 7E 0F DELAY: MOV R6,#0FH ; 延时子程序
56: 009F 7F 10 DELAY2: MOV R7,#10H
57: 00A1 00 DELAY1: NOP
58: 00A2 DF FD DJNZ R7,DELAY1
59: 00A4 DE F9 DJNZ R6,DELAY2
60: 00A6 22 RET
61:
62: ;LCD 间接控制方式的驱动子程序如下
63:
64: ;1 读BF和AC值
65: 00A7 C0 E0 PR0: PUSH ACC
66: 00A9 75 80 FF MOV P0,#0FFH ; P0置位, 准备读
67: 00AC C2 A1 CLR RS ; RS=0
68: 00AE D2 A2 SETB RW ; R/W=1
69: 00B0 D2 A3 SETB E ; E=1
70: 00B2 12 00 9D LCALL DELAY
71: 00B5 85 80 50 MOV COM,P0 ; 读BF和AC6-4值
72: 00B8 C2 A3 CLR E ; E=0
73: 00BA D0 E0 POP ACC
74: 00BC 22 RET
75:
76: ;2 写指令代码子程序
77: 00BD C0 E0 PR1: PUSH ACC
78: 00BF C2 A1 CLR RS ; RS=0
79: 00C1 D2 A2 SETB RW ; R/W=1
80: 00C3 75 80 FF PR11: MOV P0,#0FFH; P0置位, 准备读
81: 00C6 D2 A3 SETB E ; E=1
82: 00C8 12 00 9D LCALL DELAY
83: 00CB 00 NOP
84: 00CC E5 80 MOV A,P0
85: 00CE C2 A3 CLR E
86: 00D0 20 E7 F0 JB ACC.7,PR11;BF=1?
87: 00D3 C2 A2 CLR RW ; R/W=0
88: 00D5 85 50 80 MOV P0,COM
89: 00D8 D2 A3 SETB E ; E=1
90: 00DA C2 A3 CLR E ; E=0; E=0
91: 00DC D0 E0 POP ACC
92: 00DE 22 RET
93:
94: ;3 写显示数据子程序
95: 00DF C0 E0 PR2: PUSH ACC
96: 00E1 C2 A1 CLR RS ; RS=0
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 3
Line I Addr Code Source
97: 00E3 D2 A2 SETB RW ; R/W=1
98: 00E5 75 80 FF PR21: MOV P0,#0FFH
99: 00E8 D2 A3 SETB E ; E=1
100: 00EA 12 00 9D LCALL DELAY
101: 00ED E5 80 MOV A,P0 ; 读BF和AC6-4值
102: 00EF C2 A3 CLR E ; E=0
103: 00F1 20 E7 F1 JB ACC.7,PR21
104: 00F4 D2 A1 SETB RS
105: 00F6 C2 A2 CLR RW
106: 00F8 85 51 80 MOV P0,DAT; 写入数据高4位
107: 00FB D2 A3 SETB E ; RS=1
108: 00FD C2 A3 CLR E ; R/W=0
109: 00FF D0 E0 POP ACC
110: 0101 22 RET
111:
112: ;4 读显示数据子程序
113: 0102 C0 E0 PR3: PUSH ACC
114: 0104 C2 A1 CLR RS ; RS=0
115: 0106 D2 A2 SETB RW ; R/W=1
116: 0108 75 80 FF PR31: MOV P0,#0FFH ; P0置位, 准备读
117: 010B D2 A3 SETB E ; E=1
118: 010D 12 00 9D LCALL DELAY
119: 0110 E5 80 MOV A,P0 ; 读BF和AC6-4值
120: 0112 C2 A3 CLR E ; E=0
121: 0114 20 E7 F1 JB ACC.7,PR31
122: 0117 D2 A1 SETB RS ; E=1
123: 0119 D2 A2 SETB RW ; R/W=1
124: 011B 75 80 FF MOV P0,#0FFH ; 读数据
125: 011E D2 A3 SETB E ; E=1
126: 0120 85 80 51 MOV DAT,P0
127: 0123 C2 A3 CLR E ; E=0
128: 0125 D0 E0 POP ACC
129: 0127 22 RET
130: END
register banks used: ---
no errors
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
L I S T O F S Y M B O L S
=============================
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
AC BIT D6
ACC DATA E0
B DATA F0
COM NUMBER 0050 1
CY BIT D7
DAT NUMBER 0051 2
DELAY CODE 009D 55
DELAY1 CODE 00A1 57
DELAY2 CODE 009F 56
DPH DATA 83
DPL DATA 82
E NUMBER 00A3 6
EA BIT AF
ES BIT AC
ET0 BIT A9
ET1 BIT AB
EX0 BIT A8
EX1 BIT AA
EXTI0 CODE 0003
EXTI1 CODE 0013
F0 BIT D5
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT CODE 006B 34
INT0 BIT B2
INT1 BIT B3
INTT1 CODE 0077 39
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
MAIN CODE 0030 11
OV BIT D2
P BIT D0
P0 DATA 80
P1 DATA 90
P2 DATA A0
P3 DATA B0
PCON DATA 87
PR0 CODE 00A7 65
PR1 CODE 00BD 77
PR11 CODE 00C3 80
PR2 CODE 00DF 95
PR21 CODE 00E5 98
PR3 CODE 0102 113
PR31 CODE 0108 116
PS BIT BC
PSW DATA D0
PT0 BIT B9
PT1 BIT BB
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 5
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
PX0 BIT B8
PX1 BIT BA
RB8 BIT 9A
RD BIT B7
REN BIT 9C
RESET CODE 0000
RI BIT 98
RS NUMBER 00A1 4
RS0 BIT D3
RS1 BIT D4
RW NUMBER 00A2 5
RXD BIT B0
SBUF DATA 99
SCON DATA 98
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
T0 BIT B4
T1 BIT B5
TAB CODE 005B 30
TB8 BIT 9B
TCON DATA 88
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIMER0 CODE 000B
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
TR0 BIT 8C
TR1 BIT 8E
TXD BIT B1
WR BIT B6
WRIN CODE 004F 23
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -