?? 12864_chs.lst
字號:
A51 MACRO ASSEMBLER 12864_CHS 03/29/2005 16:03:58 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN 12864_chs.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 12864_chs.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;********************************************************************************
2 ;* 標(biāo)題: 偉納電子ME300B單片機(jī)開發(fā)系統(tǒng)演示程序 - 12864LCD(帶漢字庫)演示 *
3 ;* 文件: wl016.asm *
4 ;* 日期: 2005-3-20 *
5 ;* 版本: 1.0 *
6 ;* 作者: gguoqing *
7 ;* 郵箱: gguoqing@willar.com *
8 ;* 網(wǎng)站: http://www.willar.com *
9 ;********************************************************************************
10 ;* 描述: *
11 ;* 12864LCD(帶漢字庫)演示程序 *
12 ;* 控制器ST7920 *
13 ;* LCD型號:TS12864A-3(帶漢字庫)或兼容型號 *
14 ;* MCU:AT89S52 ,晶體頻率:11.0592MHz *
15 ;* *
16 ;********************************************************************************
17 ;* 【版權(quán)】 Copyright(C)偉納電子 www.willar.com All Rights Reserved *
18 ;* 【聲明】 此程序僅用于學(xué)習(xí)與參考,引用請注明版權(quán)和作者信息! *
19 ;********************************************************************************
20
21
22 ;****************TS12864A-3 并口****************
23
00A0 24 RS EQU P2.0
00A1 25 RW EQU P2.1
00A2 26 E EQU P2.2
00A3 27 PSB EQU P2.3
00A5 28 RST EQU P2.5
29 ;-----------------------------------------------
0030 30 LCD_X EQU 30H
0031 31 LCD_Y EQU 31H
0032 32 COUNT EQU 32H
0033 33 COUNT1 EQU 33H
0034 34 COUNT2 EQU 34H
0035 35 COUNT3 EQU 35H
36 ;-----------------------------------------------
0036 37 LCD_DATA EQU 36H
0037 38 LCD_DATA1 EQU 37H
0038 39 LCD_DATA2 EQU 38H
0039 40 STORE EQU 39H
41
42 ;-----------------------------------------------
0000 43 ORG 0000H
0000 020100 44 LJMP MAIN
0100 45 ORG 0100H
46 ;-----------------------------------------------
0100 47 MAIN:
0100 75815F 48 MOV SP,#5FH
0103 C2A5 49 CLR RST ;復(fù)位
0105 12032D 50 LCALL DELAY4
0108 D2A5 51 SETB RST
010A 00 52 NOP
010B D2A3 53 SETB PSB ;通訊方式為8位數(shù)據(jù)并口
54
55 ;********************初始化**********************
010D 7434 56 LGS0: MOV A,#34H ;34H--擴(kuò)充指令操作
010F 1202DE 57 LCALL SEND_I
0112 7430 58 MOV A,#30H ;30H--基本指令操作
A51 MACRO ASSEMBLER 12864_CHS 03/29/2005 16:03:58 PAGE 2
0114 1202DE 59 LCALL SEND_I
0117 7401 60 MOV A,#01H ;清除顯示
0119 1202DE 61 LCALL SEND_I
011C 7406 62 MOV A,#06H ;指定在資料寫入或讀取時,光標(biāo)的移動方向
011E 1202DE 63 LCALL SEND_I ;DDRAM 的地址計(jì)數(shù)器(AC)加1
0121 740C 64 MOV A,#0CH ;開顯示,關(guān)光標(biāo),不閃爍
0123 1202DE 65 LCALL SEND_I
66 ;===============================================
0126 67 TU_PLAY1:
0126 9003C3 68 MOV DPTR,#TU_TAB1 ;顯示圖形
0129 1201F9 69 LCALL PHO_DISP
012C 12030E 70 LCALL DELAY3
71
72 ;===============================================
73 ;顯示漢字和字符
74 ;加入80ms的延時,使你能夠看清楚顯示的過程
75 ;根據(jù)漢字顯示坐標(biāo)寫入 (隔行寫入)
76 ;===============================================
012F 77 HAN_WR1:
012F 1202B1 78 LCALL CLEAR_P
0132 900343 79 MOV DPTR,#TAB1 ;顯示漢字和字符
0135 753240 80 MOV COUNT,#40H ;地址計(jì)數(shù)器設(shè)為最大值 64。
0138 7480 81 MOV A,#80H ;起始地址
013A 1202DE 82 LCALL SEND_I
013D 1202C1 83 LCALL QUSHU
0140 12030E 84 LCALL DELAY3
0143 120288 85 LCALL FLASH
86 ;=================================================
87 ;;顯示漢字和字符
88 ;加入80ms的延時,使你能夠看清楚顯示的過程
89 ;根據(jù)漢字顯示坐標(biāo)分段寫入(順序?qū)懭耄? 90 ;=================================================
0146 91 HAN_WR2:
0146 1202B1 92 LCALL CLEAR_P
0149 93 HAN_WR2A:
0149 900343 94 MOV DPTR,#TAB1A ;顯示漢字和字符
014C 753210 95 MOV COUNT,#10H ;地址計(jì)數(shù)器設(shè)為16。
014F 7480 96 MOV A,#80H ;第一行起始地址
0151 1202DE 97 LCALL SEND_I
0154 1202C1 98 LCALL QUSHU
0157 99 HAN_WR2B:
0157 900363 100 MOV DPTR,#TAB1B ;顯示漢字和字符
015A 753210 101 MOV COUNT,#10H ;地址計(jì)數(shù)器設(shè)為16。
015D 7490 102 MOV A,#90H ;第二行起始地址
015F 1202DE 103 LCALL SEND_I
0162 1202C1 104 LCALL QUSHU
0165 105 HAN_WR2C:
0165 900353 106 MOV DPTR,#TAB1C ;顯示漢字和字符
0168 753210 107 MOV COUNT,#10H ;地址計(jì)數(shù)器設(shè)為16。
016B 7488 108 MOV A,#88H ;第三行起始地址
016D 1202DE 109 LCALL SEND_I
0170 1202C1 110 LCALL QUSHU
0173 111 HAN_WR2D:
0173 900373 112 MOV DPTR,#TAB1D ;顯示漢字和字符
0176 753210 113 MOV COUNT,#10H ;地址計(jì)數(shù)器設(shè)為16。
0179 7498 114 MOV A,#98H ;第四行起始地址
017B 1202DE 115 LCALL SEND_I
017E 1202C1 116 LCALL QUSHU
0181 12030E 117 LCALL DELAY3
0184 120288 118 LCALL FLASH
0187 1202B1 119 LCALL CLEAR_P
018A 8009 120 JMP TU_PLAY2
121 ;----------------------------------------------
122 ;TU_PLAY1:
018C 9003C3 123 MOV DPTR,#TU_TAB1 ;顯示圖形
018F 1201F9 124 LCALL PHO_DISP
A51 MACRO ASSEMBLER 12864_CHS 03/29/2005 16:03:58 PAGE 3
0192 12030E 125 LCALL DELAY3
126 ;LCALL FLASH
127 ;----------------------------------------------
0195 128 TU_PLAY2:
0195 9007C3 129 MOV DPTR,#TU_TAB2 ;顯示圖形
0198 1201F9 130 LCALL PHO_DISP
019B 12030E 131 LCALL DELAY3
132 ;LCALL FLASH
133 ;----------------------------------------------
019E 134 TU_PLAY3:
019E 900BC3 135 MOV DPTR,#TU_TAB3 ;顯示圖形
01A1 1201F9 136 LCALL PHO_DISP
01A4 12030E 137 LCALL DELAY3
138 ;LCALL FLASH
139 ;-----------------------------------------------
140 ;顯示點(diǎn)陣
141 ;-----------------------------------------------
01A7 142 LATPLAY1:
01A7 7401 143 MOV A,#01H ;清屏
01A9 1202DE 144 LCALL SEND_I
01AC 7537CC 145 MOV LCD_DATA1,#0CCH ;顯示點(diǎn)陣
01AF 7538CC 146 MOV LCD_DATA2,#0CCH
01B2 120234 147 LCALL LAT_DISP
01B5 12030E 148 LCALL DELAY3
01B8 1202B1 149 LCALL CLEAR_P
150 ;LJMP TU_PLAY1
151 ;===============================================
152 ;調(diào)字庫半角字符顯示
153 ;===============================================
01BB 154 KU_PLAY1:
01BB 1202B1 155 LCALL CLEAR_P
01BE 753240 156 MOV COUNT,#40H
01C1 7480 157 MOV A,#80H
01C3 1202DE 158 LCALL SEND_I
01C6 7910 159 MOV R1,#10H
01C8 160 LATPLAY11:
01C8 E9 161 MOV A,R1
01C9 1202CE 162 LCALL SEND_D
01CC 09 163 INC R1
01CD D532F8 164 DJNZ COUNT,LATPLAY11
01D0 12030E 165 LCALL DELAY3
01D3 1202B1 166 LCALL CLEAR_P
167 ;LJMP TU_PLAY1
168
169 ;===============================================
170 ;調(diào)字庫漢字顯示
171 ;從 B9F3 “貴”字處開始顯示
172 ;===============================================
01D6 173 KU_PLAY2:
01D6 1202B1 174 LCALL CLEAR_P
01D9 753240 175 MOV COUNT,#40H
01DC 7480 176 MOV A,#80H
01DE 1202DE 177 LCALL SEND_I
01E1 79F3 178 MOV R1,#0F3H
01E3 179 KU_PLAY21:
01E3 74B9 180 MOV A,#0B9H
01E5 1202CE 181 LCALL SEND_D ;寫入第一字節(jié)數(shù)據(jù)(高位)
01E8 E9 182 MOV A,R1
01E9 1202CE 183 LCALL SEND_D ;寫入第二字節(jié)數(shù)據(jù)(低位)
01EC 09 184 INC R1
01ED D532F3 185 DJNZ COUNT,KU_PLAY21
01F0 12030E 186 LCALL DELAY3
01F3 1202B1 187 LCALL CLEAR_P
01F6 020126 188 LJMP TU_PLAY1
189 ;JMP $
190 ;===============================================
A51 MACRO ASSEMBLER 12864_CHS 03/29/2005 16:03:58 PAGE 4
191 ;全屏顯示圖形子程序
192 ;===============================================
01F9 193 PHO_DISP:
01F9 753502 194 MOV COUNT3,#02H
01FC 753080 195 MOV LCD_X,#80H
01FF 196 PHO_DISP1:
01FF 753180 197 MOV LCD_Y,#80H
0202 753420 198 MOV COUNT2,#20H
0205 199 PHO_DISP2:
0205 753310 200 MOV COUNT1,#10H
0208 120273 201 LCALL WR_ZB
020B 202 PHO_DISP3:
020B E4 203 CLR A
020C 93 204 MOVC A,@A+DPTR
020D 1202CE 205 LCALL SEND_D
0210 A3 206 INC DPTR
0211 D533F7 207 DJNZ COUNT1,PHO_DISP3
0214 0531 208 INC LCD_Y
0216 D534EC 209 DJNZ COUNT2,PHO_DISP2
0219 753088 210 MOV LCD_X,#88H
021C D535E0 211 DJNZ COUNT3,PHO_DISP1
212
021F 7436 213 MOV A,#36H
0221 1202DE 214 LCALL SEND_I
0224 7430 215 MOV A,#30H
0226 1202DE 216 LCALL SEND_I
0229 22 217 RET
218 ;----------------------------------------------
022A 219 CLRRAM:
022A 753700 220 MOV LCD_DATA1,#00H ;GDRAM寫0子程序
022D 753800 221 MOV LCD_DATA2,#00H
0230 120234 222 LCALL LAT_DISP
0233 22 223 RET
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -