📄 ex9-9.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-9.ASM
Object File: EX9-9.HEX
List File: EX9-9.LST
Line I Addr Code Source
1: N 0000 ORG 0000H
2: 0000 02 00 30 START: LJMP MAIN
3: N 0030 ORG 0030H
4: 0030 12 00 8B MAIN: LCALL INIT ;主程序开始,调用液晶模块初始化子程序
5: 0033 12 00 B6 LCALL WPAD ;调用自定义汉字字符子程序
6: 0036 7A 81 MOV R2,#81H ;从第1行第2位开始,设置DDRAM地址
7: 0038 12 00 73 LCALL WRTC ;写入
8: 003B 7C 0E MOV R4,#14 ;第1行共14个字符
9: 003D 90 00 4F MOV DPTR,#ZIFU ;指向显示字符代码首地址
10: 0040 12 00 C0 LCALL WP1 ;第1行字符代码写入DDRAM
11: 0043 7A C4 MOV R2,#0C4H ;设置第2行DDRAM地址
12: 0045 12 00 73 LCALL WRTC ;写入
13: 0048 7C 0C MOV R4,#12 ;第2行共12个字符
14: 004A 12 00 C0 LCALL WP1 ;第2行字符代码写入DDRAM
15: 004D 80 FE SJMP $
16: 004F 48 65 6C 6C ZIFU: DB "Hello Everyboy" ;显示字符
0053 6F 20 45 76
0057 65 72 79 62
005B 6F 79
17: 005D 32 30 30 38 DB "2008",00H,"10",01H,"26",02H,20H
0061 00 31 30 01
0065 32 36 02 20
18:
19:
20: ;忙标志判断子程序
21: 0069 75 A0 7F WAIT: MOV P2,#7FH
22: 006C 78 F1 MOV R0,#0F1H ;读忙标志地址
23: 006E E2 MOVX A,@R0
24: 006F 20 E7 F7 JB ACC.7,WAIT
25: 0072 22 RET
26:
27: ;写指令代码子程序
28: 0073 12 00 69 WRTC: LCALL WAIT ;判断BF标志
29: 0076 EA MOV A,R2
30: 0077 78 F0 MOV R0,#0F0H ;写指令地址
31: 0079 F2 MOVX @R0,A
32: 007A 22 RET
33:
34: ;写数据子程序
35: 007B 12 00 69 WRTD: LCALL WAIT ;判断BF标志
36: 007E EA MOV A,R2
37: 007F 78 F2 MOV R0,#0F2H ;写数据地址
38: 0081 EA MOV A,R2
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
39: 0082 F2 MOVX @R0,A
40: 0083 22 RET
41:
42: ;读数据子程序
43: 0084 12 00 69 RDD: LCALL WAIT ;判断BF标志
44: 0087 78 F3 MOV R0,#0F3H ;读数据地址
45: 0089 E2 MOVX A,@R0
46: 008A 22 RET
47:
48: ;初始化子程序
49: 008B 12 00 E2 INIT: LCALL TIM1 ;延时15ms
50: 008E 7A 38 MOV R2,#38H ;功能设置命令,设定8位字长,2行,5*7点阵
51: 0090 12 00 73 LCALL WRTC ;写入
52: 0093 12 00 F2 LCALL TIM3 ;延时100us
53: 0096 7A 38 MOV R2,#38H
54: 0098 12 00 73 LCALL WRTC ;写入
55: 009B 12 00 F2 LCALL TIM3 ;延时100us
56: 009E 7A 38 MOV R2,#38H
57: 00A0 12 00 73 LCALL WRTC ;写入
58: 00A3 12 00 F2 LCALL TIM3 ;延时100us
59: 00A6 7A 01 MOV R2,#01H ;清屏命令
60: 00A8 12 00 73 LCALL WRTC ;写入
61: 00AB 7A 06 MOV R2,#06H ;输入方式命令
62: 00AD 12 00 73 LCALL WRTC ;写入
63: 00B0 7A 0E MOV R2,#0EH ;开显示、光标不闪命令
64: 00B2 12 00 73 LCALL WRTC ;写入
65: 00B5 22 RET
66:
67: ;自定义汉字字符子程序
68: 00B6 7A 40 WPAD: MOV R2,#40H ;设置CGRAM首地址为0
69: 00B8 12 00 73 LCALL WRTC ;写入CGRAM首地址
70: 00BB 7C 18 MOV R4,#24 ;3个汉字共24字节子模数据
71: 00BD 90 00 CA MOV DPTR,#ZIMO ;指向字模首地址
72: 00C0 E4 WP1: CLR A
73: 00C1 93 MOVC A,@A+DPTR
74: 00C2 FA MOV R2,A
75: 00C3 12 00 7B LCALL WRTD ;写入1字节字模数据
76: 00C6 A3 INC DPTR
77: 00C7 DC F7 DJNZ R4,WP1
78: 00C9 22 RET
79: 00CA 08 0F 12 0F ZIMO: DB 08H,0FH,12H,0FH,0AH,1FH,02H,00H;“年”
00CE 0A 1F 02 00
80: 00D2 0F 09 0F 09 DB 0FH,09H,0FH,09H,0FH,09H,11H,00H;“月”
00D6 0F 09 11 00
81: 00DA 0F 09 09 0F DB 0FH,09H,09H,0FH,09H,09H,0FH,00H;“日”
00DE 09 09 0F 00
82:
83: ;延时15ms子程序
84: 00E2 7D 03 TIM1: MOV R5,#03H
85: 00E4 12 00 EA TT1: LCALL TIM2
86: 00E7 DD FB DJNZ R5,TT1
87: 00E9 22 RET
88: ;延时5ms子程序
89: 00EA 7C 32 TIM2: MOV R4,#50
90: 00EC 12 00 F2 TT2: LCALL TIM3
91: 00EF DC FB DJNZ R4,TT2
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 3
Line I Addr Code Source
92: 00F1 22 RET
93: ;延时100us子程序
94: 00F2 7B 32 TIM3: MOV R3,#50
95: 00F4 DB FE TT3: DJNZ R3,TT3
96: 00F6 22 RET
97:
98: END
99:
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
CY BIT D7
DPH DATA 83
DPL DATA 82
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
INIT CODE 008B 49
INT0 BIT B2
INT1 BIT B3
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
MAIN CODE 0030 4
OV BIT D2
P BIT D0
P0 DATA 80
P1 DATA 90
P2 DATA A0
P3 DATA B0
PCON DATA 87
PS BIT BC
PSW DATA D0
PT0 BIT B9
PT1 BIT BB
PX0 BIT B8
PX1 BIT BA
RB8 BIT 9A
RD BIT B7
RDD CODE 0084 43
REN BIT 9C
RESET CODE 0000
RI BIT 98
RS0 BIT D3
RS1 BIT D4
RXD BIT B0
SBUF DATA 99
SCON DATA 98
SINT CODE 0023
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 5
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
START CODE 0000 2
T0 BIT B4
T1 BIT B5
TB8 BIT 9B
TCON DATA 88
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIM1 CODE 00E2 84
TIM2 CODE 00EA 89
TIM3 CODE 00F2 94
TIMER0 CODE 000B
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
TR0 BIT 8C
TR1 BIT 8E
TT1 CODE 00E4 85
TT2 CODE 00EC 90
TT3 CODE 00F4 95
TXD BIT B1
WAIT CODE 0069 21
WP1 CODE 00C0 72
WPAD CODE 00B6 68
WR BIT B6
WRTC CODE 0073 28
WRTD CODE 007B 35
ZIFU CODE 004F 16
ZIMO CODE 00CA 79
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -