📄 12864.lst
字号:
A51 MACRO ASSEMBLER 12864 12/18/2008 07:54:28 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN 12864.OBJ
ASSEMBLER INVOKED BY: F:\Hardware Develop\Develop Tools\Keil uVision v2.0\KEIL\C51\BIN\A51.EXE 12864.asm SET(SMALL) DEBU
G EP
LOC OBJ LINE SOURCE
1 ;*********************************************
2 ;* LCD12864 *
3 ;* 孙高朝 17/11/2008 *
4 ;*********************************************
00A7 5 RS EQU P2.7
00A6 6 RW EQU P2.6
00A5 7 EN EQU P2.5
00A4 8 PSB EQU P2.4
00A2 9 RST EQU P2.2
0030 10 COUNT EQU 30H
0031 11 STORE EQU 31H
0032 12 LCD_X EQU 32H
0033 13 LCD_Y EQU 33H
0034 14 COUNT1 EQU 34H
0035 15 COUNT2 EQU 35H
0036 16 COUNT3 EQU 36H
0000 17 ORG 00H
0000 2100 18 AJMP MAIN
0100 19 ORG 0100H
20
0100 21 MAIN:
22
0100 3112 23 ACALL INI
0102 5134 24 ACALL DELAY2
0104 3170 25 ACALL LOGO
0106 1201E2 26 LCALL CLEAR
0109 3135 27 ACALL HANZI
010B 5134 28 ACALL DELAY2
010D 1201E2 29 LCALL CLEAR
0110 2100 30 AJMP MAIN
31
32
33 ;************************************
34 ;* lcd初始化 *
35 ;************************************
0112 36 INI:
0112 C2A2 37 CLR RST
0114 120234 38 LCALL DELAY2
0117 D2A4 39 SETB PSB
0119 D2A2 40 SETB RST
011B 7434 41 MOV A,#34H ;扩展指令集
011D 1201E8 42 LCALL WR_COMM
0120 7430 43 MOV A,#30H ;基本指令集
0122 1201E8 44 LCALL WR_COMM
0125 7401 45 MOV A,#01H ;清屏
0127 1201E8 46 LCALL WR_COMM
012A 7406 47 MOV A,#06H ;指定在资料写入或读取时,光标的移动方向
012C 1201E8 48 LCALL WR_COMM
012F 740C 49 MOV A,#0CH ;开显示,关光标,不闪烁
0131 1201E8 50 LCALL WR_COMM
0134 22 51 RET
52 ;*****************显示汉字************
0135 53 HANZI:
0135 54 HANZI1:
0135 900241 55 MOV DPTR,#TABLE1 ;取表
0138 753010 56 MOV COUNT,#10H ;16字节 8个汉字
013B 7480 57 MOV A,#80H ;DDRAM第一行地址
A51 MACRO ASSEMBLER 12864 12/18/2008 07:54:28 PAGE 2
013D 1201E8 58 LCALL WR_COMM
0140 31D5 59 ACALL QUSHU
60
0142 61 HANZI2:
0142 900251 62 MOV DPTR,#TABLE2
0145 753010 63 MOV COUNT,#10H
0148 7490 64 MOV A,#90H
014A 1201E8 65 LCALL WR_COMM
014D 31D5 66 ACALL QUSHU
014F 67 HANZI3:
014F 900261 68 MOV DPTR,#TABLE3
0152 753010 69 MOV COUNT,#10H
0155 7488 70 MOV A,#88H
0157 1201E8 71 LCALL WR_COMM
015A 31D5 72 ACALL QUSHU
73
015C 74 HANZI4:
015C 900271 75 MOV DPTR,#TABLE4
015F 753010 76 MOV COUNT,#16
0162 7498 77 MOV A,#98H
0164 1201E8 78 LCALL WR_COMM
0167 31D5 79 ACALL QUSHU
0169 120234 80 LCALL DELAY2
016C 1201C0 81 LCALL SHANGSHUO
016F 22 82 RET
83 ;*****************开机图形显示***********
0170 84 LOGO:
0170 900281 85 MOV DPTR,#TUTAB1
0173 12017A 86 LCALL CHULI
0176 120228 87 LCALL DELAY1
0179 22 88 RET
89 ;****************图形显示处理*********
017A 90 CHULI:
017A 753602 91 MOV COUNT3,#02H ;重新定义GDRAM内存分布
017D 753280 92 MOV LCD_X,#80H
0180 753380 93 C3: MOV LCD_Y,#80H
0183 753520 94 MOV COUNT2,#20H
0186 753410 95 C2: MOV COUNT1,#10H
0189 1201AB 96 LCALL QISHI
018C 97 C1:
018C E4 98 CLR A
018D 93 99 MOVC A,@A+DPTR
018E 1201F7 100 LCALL WR_DATA
0191 A3 101 INC DPTR
0192 D534F7 102 DJNZ COUNT1,C1
0195 0533 103 INC LCD_Y
0197 D535EC 104 DJNZ COUNT2,C2
019A 753288 105 MOV LCD_X,#88H
019D D536E0 106 DJNZ COUNT3,C3
107
01A0 7436 108 MOV A,#36H ;开扩展指令集,开图形显示G=1
01A2 1201E8 109 LCALL WR_COMM
01A5 7430 110 MOV A,#30H
01A7 1201E8 111 LCALL WR_COMM
01AA 22 112 RET
113 ;*************定义坐标起始点******
01AB 114 QISHI:
01AB 7434 115 MOV A,#34H ;扩展指令集,关图形显示G=0
01AD 1201E8 116 LCALL WR_COMM
01B0 E532 117 MOV A,LCD_X
01B2 1201E8 118 LCALL WR_COMM
01B5 E533 119 MOV A,LCD_Y
01B7 1201E8 120 LCALL WR_COMM
01BA 7430 121 MOV A,#30H
01BC 1201E8 122 LCALL WR_COMM
01BF 22 123 RET
A51 MACRO ASSEMBLER 12864 12/18/2008 07:54:28 PAGE 3
124 ;*****************字体闪烁************
01C0 125 SHANGSHUO:
01C0 7B03 126 MOV R3,#3
01C2 7408 127 S1: MOV A,#08H ;关显示
01C4 1201E8 128 LCALL WR_COMM
01C7 120228 129 LCALL DELAY1
01CA 740C 130 MOV A,#0CH
01CC 1201E8 131 LCALL WR_COMM ;开显示
01CF 120228 132 LCALL DELAY1
01D2 DBEE 133 DJNZ R3,S1 ;循环闪烁
01D4 22 134 RET
135 ;*****************读取数据************
01D5 136 QUSHU:
01D5 E4 137 CLR A
01D6 93 138 MOVC A,@A+DPTR ;查表取数据
01D7 1201F7 139 LCALL WR_DATA ;送显示
01DA A3 140 INC DPTR
01DB 120234 141 LCALL DELAY2 ;延时1ms,
01DE D530F4 142 DJNZ COUNT,QUSHU
01E1 22 143 RET
144 ;************清屏程序*****************
01E2 145 CLEAR:
01E2 7401 146 MOV A,#01H
01E4 1201E8 147 LCALL WR_COMM
01E7 22 148 RET
149 ;*************************************
150 ;* 写命令子程序 *
151 ;* RS=0,RW=0,EN=1 *
152 ;*************************************
01E8 153 WR_COMM:
01E8 5117 154 ACALL CHK_BUSY
01EA C2A7 155 CLR RS
01EC C2A6 156 CLR RW
01EE F580 157 MOV P0,A
01F0 D2A5 158 SETB EN
01F2 00 159 NOP
01F3 00 160 NOP
01F4 C2A5 161 CLR EN
01F6 22 162 RET
163
164 ;*************************************
165 ;* 写数据 子程序 *
166 ;* RS=1,RW=0,EN=1 *
167 ;*************************************
01F7 168 WR_DATA:
01F7 5117 169 ACALL CHK_BUSY
01F9 D2A7 170 SETB RS
01FB C2A6 171 CLR RW
01FD F580 172 MOV P0,A
01FF D2A5 173 SETB EN
0201 00 174 NOP
0202 00 175 NOP
0203 C2A5 176 CLR EN
0205 22 177 RET
178 ;================================================
179 ;读数据子程序
180 ;RS=1,RW=1,E=H,D0-D7=数据
181 ;================================================
0206 182 RD_DATA:
0206 120217 183 LCALL CHK_BUSY ;读数据子程序
0209 D2A7 184 SETB RS
020B D2A6 185 SETB RW
020D D2A5 186 SETB EN
020F 00 187 NOP
0210 E580 188 MOV A,P0
0212 C2A5 189 CLR EN
A51 MACRO ASSEMBLER 12864 12/18/2008 07:54:28 PAGE 4
0214 F531 190 MOV STORE,A
0216 22 191 RET
192
193 ;*************************************
194 ;* 循环测忙子程序 *
195 ;* RS=0,RW=1,EN=1 *
196 ;*************************************
0217 197 CHK_BUSY:
0217 7580FF 198 MOV P0,#0FFH
021A C2A7 199 CLR RS
021C D2A6 200 SETB RW
021E 00 201 NOP
021F 00 202 NOP
0220 D2A5 203 SETB EN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -