?? 12864.lst
字號:
A51 MACRO ASSEMBLER 12864 03/29/2005 16:02:36 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN 12864.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 12864.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;********************************************************************************
2 ;* 標題: 偉納電子ME300B單片機開發系統演示程序 - 12864LCD(不帶字庫)演示 *
3 ;* 文件: wl015.asm *
4 ;* 日期: 2005-3-20 *
5 ;* 版本: 1.0 *
6 ;* 作者: sauwa *
7 ;* 郵箱: sauwa@willar.com *
8 ;* 網站: http://www.willar.com *
9 ;********************************************************************************
10 ;* 描述: *
11 ;* 12864LCD(不帶字庫)演示程序 *
12 ;* *
13 ;* 控制器:KS0107 *
14 ;* LCD型號:TS12864A-2或兼容型號 *
15 ;* MCU:AT89S52 ,晶體頻率:11.0592MHz *
16 ;* 取模方式:縱向字節倒序 *
17 ;* CS1和CS2為高電平有效 *
*
18 ;* *
19 ;********************************************************************************
20 ;* 【版權】 Copyright(C)偉納電子 www.willar.com All Rights Reserved *
21 ;* 【聲明】 此程序僅用于學習與參考,引用請注明版權和作者信息! *
22 ;********************************************************************************
23
24
25 ;***************硬件端口定義***********
00A0 26 RS EQU P2.0
00A1 27 RW EQU P2.1
00A2 28 E EQU P2.2
00A3 29 CS1 EQU P2.3
00A4 30 CS2 EQU P2.4
00A5 31 RST EQU P2.5
0020 32 COM EQU 20H ;指令數據寄存器
0021 33 DAT EQU 21H ;顯示數據寄存器
34
35 ;**********************************主程序入口地址
0000 36 ORG 0000H
0000 0103 37 AJMP STR
0003 38 ORG 0003H
39
40 ;*********************************中斷程序入口地址
0003 41 STR:
0003 0105 42 AJMP L0100
43
0005 C2A5 44 L0100: CLR RST
0007 00 45 NOP
0008 00 46 NOP
0009 D2A5 47 SETB RST
48
49 ;********************************以上是軟件復位
000B 758160 50 MOV SP,#60H
000E 75A881 51 MOV IE,#81H ;中斷允許
0011 75B801 52 MOV IP,#01H ;優先中斷
0014 758800 53 MOV TCON,#00H ;電平中斷
0017 75203F 54 MOV COM,#3FH ;顯示開
001A 120110 55 LCALL S02A9 ;左半屏寫指令子程序
001D 120120 56 LCALL S02C1 ;右半屏寫指令子程序
57 ;----------------------------------------------------------------------
A51 MACRO ASSEMBLER 12864 03/29/2005 16:02:36 PAGE 2
0020 7520C0 58 MOV COM,#0C0H ;第一行
0023 120110 59 LCALL S02A9 ;左半屏寫指令子程序
0026 120120 60 LCALL S02C1 ;右半屏寫指令子程序
61 ;----------------------------------------------------------------------
0029 7520B8 62 MOV COM,#0B8H ;第一頁
002C 120110 63 LCALL S02A9 ;左半屏寫指令子程序
002F 120120 64 LCALL S02C1 ;右半屏寫指令子程序
65 ;----------------------------------------------------------------------
0032 752040 66 MOV COM,#40H ;第一列
0035 120110 67 LCALL S02A9 ;左半屏寫指令子程序
0038 120120 68 LCALL S02C1 ;右半屏寫指令子程序
69 ;********************************************************以上是軟件初始化
003B 75F0AA 70 MOV B,#0AAH
003E 1200BD 71 LCALL XIHX ;顯示橫線1
0041 120168 72 LCALL DELAY
73 ; MOV B,#55H
74 ; LCALL XIHX
75 ; LCALL DELAY ;顯示橫線2
0044 75F0FF 76 MOV B,#0FFH
0047 752900 77 MOV 29H,#00H
004A 1200E2 78 LCALL XISX
004D 120168 79 LCALL DELAY ;顯示豎線1
80 ; MOV B,#00H
81 ; MOV 29H,#0FFH
82 ; LCALL XISX
83 ; LCALL DELAY ;顯示豎線2
84
0050 900175 85 MOV DPTR,#TAB1
0053 12007F 86 LCALL LEFT
0056 900375 87 MOV DPTR,#TAB2
0059 12009E 88 LCALL RIGHT
005C 120168 89 LCALL DELAY ;顯示第一幅圖片
90
005F 900575 91 MOV DPTR,#TAB3
0062 12007F 92 LCALL LEFT
0065 900775 93 MOV DPTR,#TAB4
0068 12009E 94 LCALL RIGHT
006B 120168 95 LCALL DELAY ;顯示第二幅圖片
96
006E 900975 97 MOV DPTR,#TAB5
0071 12007F 98 LCALL LEFT
0074 900B75 99 MOV DPTR,#TAB6
0077 12009E 100 LCALL RIGHT
007A 120168 101 LCALL DELAY ;顯示第三幅圖片
007D 0105 102 AJMP L0100
103 ;=======================================================以上是主程序
007F 79B8 104 LEFT: MOV R1,#0B8H
0081 8920 105 _AB: MOV COM,R1 ;第一頁
0083 120110 106 LCALL S02A9 ;左半屏寫指令子程序
0086 752040 107 MOV COM,#40H ;第一列
0089 120110 108 LCALL S02A9 ;左半屏寫指令子程序
008C 7840 109 MOV R0, #64
008E 7400 110 S027B: MOV A,#00H
0090 93 111 MOVC A,@A+DPTR
0091 F521 112 MOV DAT,A
0093 120118 113 LCALL S02B1 ;左半屏寫數據子程序
0096 A3 114 INC DPTR
0097 D8F5 115 DJNZ R0,S027B
0099 09 116 INC R1
009A B9C0E4 117 CJNE R1, #0C0H,_AB
009D 22 118 RET
119 ;======================================================以上是左半屏寫數據子程序
009E 79B8 120 RIGHT: MOV R1,#0B8H
00A0 8920 121 ABC: MOV COM,R1 ;第一頁
00A2 120120 122 LCALL S02C1 ;右半屏寫指令子程序
00A5 752040 123 MOV COM,#40H ;第一列
A51 MACRO ASSEMBLER 12864 03/29/2005 16:02:36 PAGE 3
00A8 120120 124 LCALL S02C1 ;右半屏寫指令子程序
00AB 7840 125 MOV R0, #64
00AD 7400 126 S027D: MOV A,#00H
00AF 93 127 MOVC A,@A+DPTR
00B0 F521 128 MOV DAT,A
00B2 120128 129 LCALL S02B9 ;右半屏寫數據子程序
00B5 A3 130 INC DPTR
00B6 D8F5 131 DJNZ R0,S027D
00B8 09 132 INC R1
00B9 B9C0E4 133 CJNE R1, #0C0H,ABC
00BC 22 134 RET
135
136 ;*******************************************************以上是右半屏寫數據子程序
137
00BD 79B8 138 XIHX: MOV R1,#0B8H
00BF 8920 139 BA: MOV COM,R1 ;第一頁
00C1 120110 140 LCALL S02A9 ;左半屏寫指令子程序
00C4 120120 141 LCALL S02C1 ;右半屏寫指令子程序
00C7 752040 142 MOV COM,#40H ;第一列
00CA 120110 143 LCALL S02A9 ;左半屏寫指令子程序
00CD 120120 144 LCALL S02C1 ;右半屏寫指令子程序
00D0 7840 145 MOV R0, #64
00D2 85F021 146 W027B: MOV DAT,B
00D5 120118 147 LCALL S02B1 ;左半屏寫數據子程序
00D8 120128 148 LCALL S02B9 ;右半屏寫數據子程序
00DB D8F5 149 DJNZ R0,W027B
00DD 09 150 INC R1
00DE B9C0DE 151 CJNE R1, #0C0H,BA
00E1 22 152 RET
153 ;---------------------------------------------------------
00E2 79B8 154 XISX: MOV R1,#0B8H
00E4 8920 155 CA: MOV COM,R1 ;第一頁
00E6 120110 156 LCALL S02A9 ;左半屏寫指令子程序
00E9 120120 157 LCALL S02C1 ;右半屏寫指令子程序
00EC 752040 158 MOV COM,#40H ;第一列
00EF 120110 159 LCALL S02A9 ;左半屏寫指令子程序
00F2 120120 160 LCALL S02C1 ;右半屏寫指令子程序
00F5 7820 161 MOV R0, #32
00F7 85F021 162 X027B: MOV DAT,B
00FA 120118 163 LCALL S02B1 ;左半屏寫數據子程序
00FD 120128 164 LCALL S02B9 ;右半屏寫數據子程序
0100 852921 165 MOV DAT,29H
0103 120118 166 LCALL S02B1 ;左半屏寫數據子程序
0106 120128 167 LCALL S02B9 ;右半屏寫數據子程序
0109 D8EC 168 DJNZ R0,X027B
010B 09 169 INC R1
010C B9C0D5 170 CJNE R1, #0C0H,CA
010F 22 171 RET
172 ;****************************************************以上是顯示線條程序
0110 D2A3 173 S02A9: SETB CS1
0112 120130 174 LCALL S02C9
0115 C2A3 175 CLR CS1 ;左半屏寫指令子程序
0117 22 176 RET
177
0118 D2A3 178 S02B1: SETB CS1 ;左半屏寫數據子程序
011A 12014B 179 LCALL S02E0
011D C2A3 180 CLR CS1
011F 22 181 RET
182
0120 D2A4 183 S02C1: SETB CS2 ;右半屏寫指令子程序
0122 120130 184 LCALL S02C9
0125 C2A4 185 CLR CS2
0127 22 186 RET
187
0128 D2A4 188 S02B9: SETB CS2 ;右半屏寫數據子程序
012A 12014B 189 LCALL S02E0
A51 MACRO ASSEMBLER 12864 03/29/2005 16:02:36 PAGE 4
012D C2A4 190 CLR CS2
012F 22 191 RET
192 ;****************************************************
193
0130 C2A0 194 S02C9: CLR RS
0132 D2A1 195 SETB RW
0134 7580FF 196 S02C9A: MOV P0,#0FFH
0137 D2A2 197 SETB E
0139 E580 198 MOV A, P0
013B C2A2 199 CLR E
013D 20E7F4 200 JB ACC.7,S02C9A
0140 C2A1 201 CLR RW
0142 852080 202 MOV P0,COM
0145 D2A2 203 SETB E
0147 00 204 NOP
0148 C2A2 205 CLR E
014A 22 206 RET
207 ;*************************************************以上是寫指令子程序
014B C2A0 208 S02E0: CLR RS
014D D2A1 209 SETB RW
014F 7580FF 210 S02E0A: MOV P0,#0FFH
0152 D2A2 211 SETB E
0154 E580 212 MOV A, P0
0156 C2A2 213 CLR E
0158 20E7F4 214 JB ACC.7,S02E0A
015B D2A0 215 SETB RS
015D C2A1 216 CLR RW
015F 852180 217 MOV P0,DAT
0162 D2A2 218 SETB E
0164 00 219 NOP
0165 C2A2 220 CLR E
0167 22 221 RET
222
223 ;************************************************以上是寫數據子程序
224
0168 7D0B 225 DELAY: MOV R5,#0BH ;延時
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -