📄 12864zk.lst
字号:
A51 MACRO ASSEMBLER 12864ZK 08/02/2009 18:45:31 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN 12864ZK.OBJ
ASSEMBLER INVOKED BY: C:\Program Files\Keil\C51\BIN\A51.EXE 12864ZK.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;/********************************************************************************
2 ;* 标题: xl系列单片机实验仪演示程序 12864带字库演示 *
3 ;* 文件: 12864zk.asm *
4 ;* 日期: 2006-1-5 *
5 ;* 版本: 3.0 (试验通过版)可用xl600-xl1000单片机综合试验仪试验 *
6 ;* 邮箱: sxj1974@163.com *
7 ;* 网站: http://www.51c51.com www.8951.com
8 ;********************************************************************************
9 ;* 描述: *
10 ;* 12864标准字库液晶演示 数据p0,控制p2 *
11 ;* *
12 ;* *
13 ;********************************************************************************
14 ;* 【版权】 Copyright(C)深圳市学林电子有限公司 www.51c51.com *
15 ;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! *
16 ;* 【技术支持】请访问http://www.51c51.com/bbs/index.asp 官方论坛 *
17 ;********************************************************************************/
18
19
00A6 20 RS EQU P2.6
00A5 21 RW EQU P2.5
00A7 22 E EQU P2.7
00B2 23 PSB EQU P3.2
00B7 24 RST EQU P3.7
25 ;-----------------------------------------------
0030 26 LCD_X EQU 30H
0031 27 LCD_Y EQU 31H
0032 28 COUNT EQU 32H
0033 29 COUNT1 EQU 33H
0034 30 COUNT2 EQU 34H
0035 31 COUNT3 EQU 35H
32 ;-----------------------------------------------
0036 33 LCD_DATA EQU 36H
0037 34 LCD_DATA1 EQU 37H
0038 35 LCD_DATA2 EQU 38H
0039 36 STORE EQU 39H
37
38 ;-----------------------------------------------
0000 39 ORG 0000H
0000 020100 40 LJMP MAIN
0100 41 ORG 0100H
42 ;-----------------------------------------------
0100 43 MAIN:
0100 75815F 44 MOV SP,#5FH
0103 C2B7 45 CLR RST ;复位
0105 1202DB 46 LCALL DELAY4
0108 D2B7 47 SETB RST
010A 00 48 NOP
010B D2B2 49 SETB PSB ;通讯方式为8位数据并口
50
51 ;********************初始化**********************
010D 7434 52 LGS0: MOV A,#34H ;34H--扩充指令操作
010F 12028C 53 LCALL SEND_I
0112 7430 54 MOV A,#30H ;30H--基本指令操作
0114 12028C 55 LCALL SEND_I
0117 7401 56 MOV A,#01H ;清除显示
0119 12028C 57 LCALL SEND_I
011C 7406 58 MOV A,#06H ;指定在资料写入或读取时,光标的移动方向
A51 MACRO ASSEMBLER 12864ZK 08/02/2009 18:45:31 PAGE 2
011E 12028C 59 LCALL SEND_I ;DDRAM 的地址计数器(AC)加1
0121 740C 60 MOV A,#0CH ;开显示,关光标,不闪烁
0123 12028C 61 LCALL SEND_I
62 ;===============================================
0126 63 TU_PLAY1:
0126 900331 64 MOV DPTR,#TU_TAB1 ;显示图形
0129 1201A7 65 LCALL PHO_DISP
012C 1202BC 66 LCALL DELAY3
67
68 ;=================================================
69 ;;显示汉字和字符
70 ;加入80ms的延时,使你能够看清楚显示的过程
71 ;根据汉字显示坐标分段写入(顺序写入)
72 ;=================================================
012F 73 HAN_WR2:
012F 12025F 74 LCALL CLEAR_P
0132 75 HAN_WR2A:
0132 9002F1 76 MOV DPTR,#TAB1A ;显示汉字和字符
0135 753210 77 MOV COUNT,#10H ;地址计数器设为16。
0138 7480 78 MOV A,#80H ;第一行起始地址
013A 12028C 79 LCALL SEND_I
013D 12026F 80 LCALL QUSHU
0140 81 HAN_WR2B:
0140 900311 82 MOV DPTR,#TAB1B ;显示汉字和字符
0143 753210 83 MOV COUNT,#10H ;地址计数器设为16。
0146 7490 84 MOV A,#90H ;第二行起始地址
0148 12028C 85 LCALL SEND_I
014B 12026F 86 LCALL QUSHU
014E 87 HAN_WR2C:
014E 900301 88 MOV DPTR,#TAB1C ;显示汉字和字符
0151 753210 89 MOV COUNT,#10H ;地址计数器设为16。
0154 7488 90 MOV A,#88H ;第三行起始地址
0156 12028C 91 LCALL SEND_I
0159 12026F 92 LCALL QUSHU
015C 93 HAN_WR2D:
015C 900321 94 MOV DPTR,#TAB1D ;显示汉字和字符
015F 753210 95 MOV COUNT,#10H ;地址计数器设为16。
0162 7498 96 MOV A,#98H ;第四行起始地址
0164 12028C 97 LCALL SEND_I
0167 12026F 98 LCALL QUSHU
016A 1202BC 99 LCALL DELAY3
016D 120236 100 LCALL FLASH
0170 12025F 101 LCALL CLEAR_P
0173 8009 102 JMP TU_PLAY2
103 ;----------------------------------------------
104 ;TU_PLAY1:
0175 900331 105 MOV DPTR,#TU_TAB1 ;显示图形
0178 1201A7 106 LCALL PHO_DISP
017B 1202BC 107 LCALL DELAY3
108
109 ;----------------------------------------------
017E 110 TU_PLAY2:
017E 900731 111 MOV DPTR,#TU_TAB2 ;显示图形
0181 1201A7 112 LCALL PHO_DISP
0184 1202BC 113 LCALL DELAY3
114
115 ;----------------------------------------------
0187 116 TU_PLAY3:
0187 900B31 117 MOV DPTR,#TU_TAB4 ;显示图形
018A 1201A7 118 LCALL PHO_DISP
018D 1202BC 119 LCALL DELAY3
120
121 ;-----------------------------------------------
122 ;显示点阵
123 ;-----------------------------------------------
0190 124 LATPLAY1:
A51 MACRO ASSEMBLER 12864ZK 08/02/2009 18:45:31 PAGE 3
0190 7401 125 MOV A,#01H ;清屏
0192 12028C 126 LCALL SEND_I
0195 7537CC 127 MOV LCD_DATA1,#0CCH ;显示点阵
0198 7538CC 128 MOV LCD_DATA2,#0CCH
019B 1201E2 129 LCALL LAT_DISP
019E 1202BC 130 LCALL DELAY3
01A1 12025F 131 LCALL CLEAR_P
132
01A4 133 KU_PLAY2:
134
01A4 020126 135 LJMP TU_PLAY1
136
137 ;===============================================
138 ;全屏显示图形子程序
139 ;===============================================
01A7 140 PHO_DISP:
01A7 753502 141 MOV COUNT3,#02H
01AA 753080 142 MOV LCD_X,#80H
01AD 143 PHO_DISP1:
01AD 753180 144 MOV LCD_Y,#80H
01B0 753420 145 MOV COUNT2,#20H
01B3 146 PHO_DISP2:
01B3 753310 147 MOV COUNT1,#10H
01B6 120221 148 LCALL WR_ZB
01B9 149 PHO_DISP3:
01B9 E4 150 CLR A
01BA 93 151 MOVC A,@A+DPTR
01BB 12027C 152 LCALL SEND_D
01BE A3 153 INC DPTR
01BF D533F7 154 DJNZ COUNT1,PHO_DISP3
01C2 0531 155 INC LCD_Y
01C4 D534EC 156 DJNZ COUNT2,PHO_DISP2
01C7 753088 157 MOV LCD_X,#88H
01CA D535E0 158 DJNZ COUNT3,PHO_DISP1
159
01CD 7436 160 MOV A,#36H
01CF 12028C 161 LCALL SEND_I
01D2 7430 162 MOV A,#30H
01D4 12028C 163 LCALL SEND_I
01D7 22 164 RET
165 ;----------------------------------------------
01D8 166 CLRRAM:
01D8 753700 167 MOV LCD_DATA1,#00H ;GDRAM写0子程序
01DB 753800 168 MOV LCD_DATA2,#00H
01DE 1201E2 169 LCALL LAT_DISP
01E1 22 170 RET
171 ;==============================================
172 ;显示点阵子程序
173 ;==============================================
01E2 174 LAT_DISP:
01E2 753502 175 MOV COUNT3,#02H
01E5 753080 176 MOV LCD_X,#80H
01E8 177 LAT_DISP1:
01E8 753180 178 MOV LCD_Y,#80H
01EB C2D5 179 CLR F0
01ED 753420 180 MOV COUNT2,#20H
01F0 181 LAT_DISP2:
01F0 753310 182 MOV COUNT1,#10H
01F3 120221 183 LCALL WR_ZB
01F6 184 LAT_DISP3:
01F6 20D505 185 JB F0,LAT_DISP32
01F9 853736 186 MOV LCD_DATA,LCD_DATA1
01FC 4101 187 AJMP LAT_DISP31
01FE 188 LAT_DISP32:
01FE 853836 189 MOV LCD_DATA,LCD_DATA2
0201 190 LAT_DISP31:
A51 MACRO ASSEMBLER 12864ZK 08/02/2009 18:45:31 PAGE 4
0201 E536 191 MOV A,LCD_DATA
0203 12027C 192 LCALL SEND_D
0206 D533F8 193 DJNZ COUNT1,LAT_DISP31
0209 0531 194 INC LCD_Y
020B B2D5 195 CPL F0
020D D534E0 196 DJNZ COUNT2,LAT_DISP2
0210 753088 197 MOV LCD_X,#88H
0213 D535D2 198 DJNZ COUNT3,LAT_DISP1
199
0216 7436 200 MOV A,#36H
0218 12028C 201 LCALL SEND_I
021B 7430 202 MOV A,#30H
021D 12028C 203 LCALL SEND_I
0220 22 204 RET
205 ;---------------------------------------------
0221 206 WR_ZB:
0221 7434 207 MOV A,#34H
0223 12028C 208 LCALL SEND_I
0226 E531 209 MOV A,LCD_Y
0228 12028C 210 LCALL SEND_I
022B E530 211 MOV A,LCD_X
022D 12028C 212 LCALL SEND_I
0230 7430 213 MOV A,#30H
0232 12028C 214 LCALL SEND_I
0235 22 215 RET
216
217 ;===============================================
0236 218 FLASH:
0236 7408 219 MOV A,#08H ;关闭显示
0238 12028C 220 LCALL SEND_I
023B 1202E4 221 LCALL DELAY5
023E 740C 222 MOV A,#0CH ;开显示,关光标,不闪烁
0240 12028C 223 LCALL SEND_I
0243 1202E4 224 LCALL DELAY5
0246 7408 225 MOV A,#08H ;关闭显示
0248 12028C 226 LCALL SEND_I
024B 1202E4 227 LCALL DELAY5
024E 740C 228 MOV A,#0CH ;开显示,关光标,不闪烁
0250 12028C 229 LCALL SEND_I
0253 1202E4 230 LCALL DELAY5
0256 7408 231 MOV A,#08H ;关闭显示
0258 12028C 232 LCALL SEND_I
025B 1202E4 233 LCALL DELAY5
025E 22 234 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -