📄 ex36a_lcm.lst
字号:
A51 MACRO ASSEMBLER EX36A_LCM 12/06/2003 09:36:28 PAGE 1
MACRO ASSEMBLER A51 V7.01
OBJECT MODULE PLACED IN EX36A_LCM.OBJ
ASSEMBLER INVOKED BY: C:\PROGRAM FILES\KEIL701\C51\BIN\A51.EXE EX36A_LCM.asm SET(LARGE) DEBUG EP
LOC OBJ LINE SOURCE
1 ;********************************Copyright (c)********************************
2 ;** 广州周立功单片机发展有限公司
3 ;** 研 究 所
4 ;** http://www.zlgmcu.com
5 ;*********************************文件信息************************************
6 ;文件名:
7 ; EX36A_LCD.asm
8 ;目的 :
9 ; 1.学习使用DP-51+实验的仿真调试程序的方法;
10 ; 2.学习LCM图形液晶显示器的驱动方法和程序设计方法;
11 ; 3.在DP-51h实验仪完成LCM点阵图形液晶显示,在液晶屏上显示"周立功单片机"。
12 ;硬件设置:
13 ; 左半屏的写命令操作地址为F804H,写数据操作地址为F805H,读状态字操作地址为F806H;
14 ; 而右半屏的写命令操作地址为F800H,写数据操作地址为F801H,读状态字操作地址为F802H.
15 ;最后修改时间:
16 ; 2003年9月10日
17 ;******************************************************************************
F800 18 LCMCS2_COM EQU 0F800H
F801 19 LCMCS2_DAT EQU 0F801H
20
F804 21 LCMCS1_COM EQU 0F804H
F805 22 LCMCS1_DAT EQU 0F805H
23
4000 24 ORG 4000H
4000 2100 25 AJMP MAIN
26
4100 27 ORG 4100H
4100 28 MAIN:
4100 758160 29 MOV SP,#60H
4103 743F 30 MOV A,#3FH ;命令字送A,开显示.
4105 3157 31 ACALL WR_COM_CS1 ;写命令字
4107 317D 32 ACALL WR_COM_CS2
33
34 ;以下程序实现在左半屏显示"周立功"
35
4109 7450 36 MOV A,#50H ;命令字送A,从10H列开始显示.
410B 3157 37 ACALL WR_COM_CS1 ;写命令字
38
410D 74B8 39 MOV A,#0B8H ;命令字送A,从00页开始显示.
410F 3157 40 ACALL WR_COM_CS1
41
4111 7800 42 MOV R0,#00H ;开始取汉字"周立功"的字模
4113 9041A8 43 MOV DPTR,#ZLG ;字模首地址送数据指针寄存器
44
4116 E8 45 LOOP1: MOV A,R0
4117 93 46 MOVC A,@A+DPTR ;从字模表中查取该段字模
4118 316A 47 ACALL WR_DAT_CS1 ;写数据到DDRAM
411A 08 48 INC R0 ;指向下一位数据
411B B830F8 49 CJNE R0,#30H,LOOP1 ;上半部分显示完了吗?
50
411E 7450 51 MOV A,#50H ;命令字送A,从10H列开始显示.
4120 3157 52 ACALL WR_COM_CS1 ;写命令字
53
4122 74B9 54 MOV A,#0B9H ;命令字送A,从01页开始显示.
4124 3157 55 ACALL WR_COM_CS1 ;写命令字
56
4126 E8 57 LOOP2: MOV A,R0
4127 93 58 MOVC A,@A+DPTR
A51 MACRO ASSEMBLER EX36A_LCM 12/06/2003 09:36:28 PAGE 2
4128 316A 59 ACALL WR_DAT_CS1 ;从字模表中查取该段字模
412A 08 60 INC R0 ;指向下一位数据
412B B860F8 61 CJNE R0,#60H,LOOP2 ;下半部分显示完了吗?
62
63 ;以下程序实现在右半屏显示"单片机"
64
412E 7440 65 MOV A,#40H ;命令字送A,从00H列开始显示.
4130 317D 66 ACALL WR_COM_CS2 ;写命令字
67
4132 74B8 68 MOV A,#0B8H ;命令字送A,从00页开始显示.
4134 317D 69 ACALL WR_COM_CS2 ;写命令字
70
4136 7800 71 MOV R0,#00H ;开始取汉字"单片机"的字模
4138 904208 72 MOV DPTR,#MCU ;字模首地址送数据指针寄存器
73
413B E8 74 LOOP3: MOV A,R0
413C 93 75 MOVC A,@A+DPTR ;从字模表中查取该段字模
413D 3190 76 ACALL WR_DAT_CS2 ;写数据到DDRAM
413F 08 77 INC R0
4140 B830F8 78 CJNE R0,#30H,LOOP3 ;上半部分显示完了吗?
79
4143 7440 80 MOV A,#40H ;命令字送A,从00H列开始显示.
4145 317D 81 ACALL WR_COM_CS2 ;写命令字
82
4147 74B9 83 MOV A,#0B9H ;命令字送A,从00页开始显示.
4149 317D 84 ACALL WR_COM_CS2 ;写命令字
85
414B E8 86 LOOP4: MOV A,R0
414C 93 87 MOVC A,@A+DPTR ;从字模表中查取该段字模
414D 3190 88 ACALL WR_DAT_CS2 ;写数据到DDRAM
414F 08 89 INC R0
4150 B860F8 90 CJNE R0,#60H,LOOP4 ;下半部分显示完了吗?
4153 7800 91 MOV R0,#00H
4155 2155 92 AJMP $
93
94
95 ;**************************************
96 ;子程序名:WR_COM_CS1
97 ;写左半屏命令字子程序,命令字存放在A中.
98 ;**************************************
4157 99 WR_COM_CS1:
4157 C0E0 100 PUSH ACC
4159 C083 101 PUSH DPH
415B C082 102 PUSH DPL
415D 90F804 103 MOV DPTR,#LCMCS1_COM
4160 F0 104 MOVX @DPTR,A
4161 31A3 105 ACALL DELAY5US
4163 D082 106 POP DPL
4165 D083 107 POP DPH
4167 D0E0 108 POP ACC
4169 22 109 RET
110
111 ;**************************************
112 ;子程序名:WR_DAT_CS1
113 ;写左半屏数据子程序,数据存放在A中.
114 ;**************************************
416A 115 WR_DAT_CS1:
416A C0E0 116 PUSH ACC
416C C083 117 PUSH DPH
416E C082 118 PUSH DPL
4170 90F805 119 MOV DPTR,#LCMCS1_DAT
4173 F0 120 MOVX @DPTR,A
4174 31A3 121 ACALL DELAY5US
4176 D082 122 POP DPL
4178 D083 123 POP DPH
417A D0E0 124 POP ACC
A51 MACRO ASSEMBLER EX36A_LCM 12/06/2003 09:36:28 PAGE 3
417C 22 125 RET
126
127 ;**************************************
128 ;子程序名:WR_COM_CS2
129 ;写右半屏命令字子程序,命令字存放在A中.
130 ;**************************************
417D 131 WR_COM_CS2:
417D C0E0 132 PUSH ACC
417F C083 133 PUSH DPH
4181 C082 134 PUSH DPL
4183 90F800 135 MOV DPTR,#LCMCS2_COM
4186 F0 136 MOVX @DPTR,A
4187 31A3 137 ACALL DELAY5US
4189 D082 138 POP DPL
418B D083 139 POP DPH
418D D0E0 140 POP ACC
418F 22 141 RET
142
143 ;**************************************
144 ;子程序名:WR_DAT_CS2
145 ;写左半屏数据子程序,数据存放在A中.
146 ;**************************************
4190 147 WR_DAT_CS2:
4190 C0E0 148 PUSH ACC
4192 C083 149 PUSH DPH
4194 C082 150 PUSH DPL
4196 90F801 151 MOV DPTR,#LCMCS2_DAT
4199 F0 152 MOVX @DPTR,A
419A 31A3 153 ACALL DELAY5US
419C D082 154 POP DPL
419E D083 155 POP DPH
41A0 D0E0 156 POP ACC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -