📄 lcd12864.lst
字号:
A51 MACRO ASSEMBLER LCD12864 07/21/2006 09:18:34 PAGE 1
MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN LCD12864.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE LCD12864.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1
2 ;* 控制器:KS0107 *
3 ;* LCD型号:TS12864A-2或兼容型号 *
4 ;* MCU:AT89S5* ,晶体频率:11.0592MHz *
5 ;* 取模方式:纵向字节倒序 *
6 ;* CS1和CS2为高电平有效 *
*
7
8
9 ;***************硬件端口定义***********
00A0 10 RS EQU P2.0
00A1 11 RW EQU P2.1
00A2 12 E EQU P2.2
00A3 13 CS1 EQU P2.3
00A4 14 CS2 EQU P2.4
00A5 15 RST EQU P2.5
0020 16 COM EQU 20H ;指令数据寄存器
0021 17 DAT EQU 21H ;显示数据寄存器
18
19 ;**********************************主程序入口地址
0000 20 ORG 0000H
0000 0103 21 AJMP STR
0003 22 ORG 0003H
23
24 ;*********************************中断程序入口地址
0003 25 STR:
0003 0105 26 AJMP L0100
27
0005 C2A5 28 L0100: CLR RST
0007 00 29 NOP
0008 00 30 NOP
0009 D2A5 31 SETB RST
32
33 ;********************************以上是软件复位
000B C2A6 34 CLR P2.6
000D 758160 35 MOV SP,#60H
0010 75A881 36 MOV IE,#81H ;中断允许
0013 75B801 37 MOV IP,#01H ;优先中断
0016 758800 38 MOV TCON,#00H ;电平中断
0019 75203F 39 MOV COM,#3FH ;显示开
001C 120112 40 LCALL S02A9 ;左半屏写指令子程序
001F 120122 41 LCALL S02C1 ;右半屏写指令子程序
42 ;----------------------------------------------------------------------
0022 7520C0 43 MOV COM,#0C0H ;第一行
0025 120112 44 LCALL S02A9 ;左半屏写指令子程序
0028 120122 45 LCALL S02C1 ;右半屏写指令子程序
46 ;----------------------------------------------------------------------
002B 7520B8 47 MOV COM,#0B8H ;第一页
002E 120112 48 LCALL S02A9 ;左半屏写指令子程序
0031 120122 49 LCALL S02C1 ;右半屏写指令子程序
50 ;----------------------------------------------------------------------
0034 752040 51 MOV COM,#40H ;第一列
0037 120112 52 LCALL S02A9 ;左半屏写指令子程序
003A 120122 53 LCALL S02C1 ;右半屏写指令子程序
54 ;********************************************************以上是软件初始化
003D 75F0AA 55 MOV B,#0AAH
0040 1200BF 56 LCALL XIHX ;显示横线1
0043 12016A 57 LCALL DELAY
A51 MACRO ASSEMBLER LCD12864 07/21/2006 09:18:34 PAGE 2
58 ; MOV B,#55H
59 ; LCALL XIHX
60 ; LCALL DELAY ;显示横线2
0046 75F0FF 61 MOV B,#0FFH
0049 752900 62 MOV 29H,#00H
004C 1200E4 63 LCALL XISX
004F 12016A 64 LCALL DELAY ;显示竖线1
65 ; MOV B,#00H
66 ; MOV 29H,#0FFH
67 ; LCALL XISX
68 ; LCALL DELAY ;显示竖线2
69
0052 900177 70 MOV DPTR,#TAB1
0055 120081 71 LCALL LEFT
0058 900377 72 MOV DPTR,#TAB2
005B 1200A0 73 LCALL RIGHT
005E 12016A 74 LCALL DELAY ;显示第一幅图片
75
0061 900577 76 MOV DPTR,#TAB3
0064 120081 77 LCALL LEFT
0067 900777 78 MOV DPTR,#TAB4
006A 1200A0 79 LCALL RIGHT
006D 12016A 80 LCALL DELAY ;显示第二幅图片
81
0070 900977 82 MOV DPTR,#TAB5
0073 120081 83 LCALL LEFT
0076 900B77 84 MOV DPTR,#TAB6
0079 1200A0 85 LCALL RIGHT
007C 12016A 86 LCALL DELAY ;显示第三幅图片
87
88
89
90
007F 0105 91 AJMP L0100
92 ;=======================================================以上是主程序
0081 79B8 93 LEFT: MOV R1,#0B8H
0083 8920 94 _AB: MOV COM,R1 ;第一页
0085 120112 95 LCALL S02A9 ;左半屏写指令子程序
0088 752040 96 MOV COM,#40H ;第一列
008B 120112 97 LCALL S02A9 ;左半屏写指令子程序
008E 7840 98 MOV R0, #64
0090 7400 99 S027B: MOV A,#00H
0092 93 100 MOVC A,@A+DPTR
0093 F521 101 MOV DAT,A
0095 12011A 102 LCALL S02B1 ;左半屏写数据子程序
0098 A3 103 INC DPTR
0099 D8F5 104 DJNZ R0,S027B
009B 09 105 INC R1
009C B9C0E4 106 CJNE R1, #0C0H,_AB
009F 22 107 RET
108 ;======================================================以上是左半屏写数据子程序
00A0 79B8 109 RIGHT: MOV R1,#0B8H
00A2 8920 110 ABC: MOV COM,R1 ;第一页
00A4 120122 111 LCALL S02C1 ;右半屏写指令子程序
00A7 752040 112 MOV COM,#40H ;第一列
00AA 120122 113 LCALL S02C1 ;右半屏写指令子程序
00AD 7840 114 MOV R0, #64
00AF 7400 115 S027D: MOV A,#00H
00B1 93 116 MOVC A,@A+DPTR
00B2 F521 117 MOV DAT,A
00B4 12012A 118 LCALL S02B9 ;右半屏写数据子程序
00B7 A3 119 INC DPTR
00B8 D8F5 120 DJNZ R0,S027D
00BA 09 121 INC R1
00BB B9C0E4 122 CJNE R1, #0C0H,ABC
00BE 22 123 RET
A51 MACRO ASSEMBLER LCD12864 07/21/2006 09:18:34 PAGE 3
124
125 ;*******************************************************以上是右半屏写数据子程序
126
00BF 79B8 127 XIHX: MOV R1,#0B8H
00C1 8920 128 BA: MOV COM,R1 ;第一页
00C3 120112 129 LCALL S02A9 ;左半屏写指令子程序
00C6 120122 130 LCALL S02C1 ;右半屏写指令子程序
00C9 752040 131 MOV COM,#40H ;第一列
00CC 120112 132 LCALL S02A9 ;左半屏写指令子程序
00CF 120122 133 LCALL S02C1 ;右半屏写指令子程序
00D2 7840 134 MOV R0, #64
00D4 85F021 135 W027B: MOV DAT,B
00D7 12011A 136 LCALL S02B1 ;左半屏写数据子程序
00DA 12012A 137 LCALL S02B9 ;右半屏写数据子程序
00DD D8F5 138 DJNZ R0,W027B
00DF 09 139 INC R1
00E0 B9C0DE 140 CJNE R1, #0C0H,BA
00E3 22 141 RET
142 ;---------------------------------------------------------
00E4 79B8 143 XISX: MOV R1,#0B8H
00E6 8920 144 CA: MOV COM,R1 ;第一页
00E8 120112 145 LCALL S02A9 ;左半屏写指令子程序
00EB 120122 146 LCALL S02C1 ;右半屏写指令子程序
00EE 752040 147 MOV COM,#40H ;第一列
00F1 120112 148 LCALL S02A9 ;左半屏写指令子程序
00F4 120122 149 LCALL S02C1 ;右半屏写指令子程序
00F7 7820 150 MOV R0, #32
00F9 85F021 151 X027B: MOV DAT,B
00FC 12011A 152 LCALL S02B1 ;左半屏写数据子程序
00FF 12012A 153 LCALL S02B9 ;右半屏写数据子程序
0102 852921 154 MOV DAT,29H
0105 12011A 155 LCALL S02B1 ;左半屏写数据子程序
0108 12012A 156 LCALL S02B9 ;右半屏写数据子程序
010B D8EC 157 DJNZ R0,X027B
010D 09 158 INC R1
010E B9C0D5 159 CJNE R1, #0C0H,CA
0111 22 160 RET
161 ;****************************************************以上是显示线条程序
0112 D2A3 162 S02A9: SETB CS1
0114 120132 163 LCALL S02C9
0117 C2A3 164 CLR CS1 ;左半屏写指令子程序
0119 22 165 RET
166
011A D2A3 167 S02B1: SETB CS1 ;左半屏写数据子程序
011C 12014D 168 LCALL S02E0
011F C2A3 169 CLR CS1
0121 22 170 RET
171
0122 D2A4 172 S02C1: SETB CS2 ;右半屏写指令子程序
0124 120132 173 LCALL S02C9
0127 C2A4 174 CLR CS2
0129 22 175 RET
176
012A D2A4 177 S02B9: SETB CS2 ;右半屏写数据子程序
012C 12014D 178 LCALL S02E0
012F C2A4 179 CLR CS2
0131 22 180 RET
181 ;****************************************************
182
0132 C2A0 183 S02C9: CLR RS
0134 D2A1 184 SETB RW
0136 7580FF 185 S02C9A: MOV P0,#0FFH
0139 D2A2 186 SETB E
013B E580 187 MOV A, P0
013D C2A2 188 CLR E
013F 20E7F4 189 JB ACC.7,S02C9A
A51 MACRO ASSEMBLER LCD12864 07/21/2006 09:18:34 PAGE 4
0142 C2A1 190 CLR RW
0144 852080 191 MOV P0,COM
0147 D2A2 192 SETB E
0149 00 193 NOP
014A C2A2 194 CLR E
014C 22 195 RET
196 ;*************************************************以上是写指令子程序
014D C2A0 197 S02E0: CLR RS
014F D2A1 198 SETB RW
0151 7580FF 199 S02E0A: MOV P0,#0FFH
0154 D2A2 200 SETB E
0156 E580 201 MOV A, P0
0158 C2A2 202 CLR E
015A 20E7F4 203 JB ACC.7,S02E0A
015D D2A0 204 SETB RS
015F C2A1 205 CLR RW
0161 852180 206 MOV P0,DAT
0164 D2A2 207 SETB E
0166 00 208 NOP
0167 C2A2 209 CLR E
0169 22 210 RET
211
212 ;************************************************以上是写数据子程序
213
016A 7D0B 214 DELAY: MOV R5,#0BH ;延时
016C 7FFF 215 D1: MOV R7,#0FFH
016E 7EFF 216 D2: MOV R6,#0FFH
0170 DEFE 217 D3: DJNZ R6,$
0172 DFFA 218 DJNZ R7,D2
0174 DDF6 219 DJNZ R5,D1
0176 22 220 RET
221 ;****************************************************************
0177 222 TAB1:
223 ;-- 调入菲戈幅图像左半屏:纵向取模下高位,数据排列:从左到右从上到下
224 ;-- 宽度x高度=64x64
0177 00000040 225 DB 000h,000h,000h,040h,080h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,010h
017B 80000000
017F 00000000
0183 00000010
0187 60800000 226 DB 060h,080h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FCh,000h,000h
018B 00000000
018F 00000000
0193 00FC0000
0197 00000000 227 DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,0C0h,030h,008h,000h,000h,000h,000h
019B 00000000
019F 00C03008
01A3 00000000
01A7 00000000 228 DB 000h,000h,000h,000h,000h,080h,040h,000h,000h,000h,000h,000h,000h,000h,000h,000h
01AB 00804000
01AF 00000000
01B3 00000000
01B7 00000000 229 DB 000h,000h,000h,000h,000h,001h,002h,004h,008h,010h,020h,040h,080h,000h,000h,000h
01BB 00010204
01BF 08102040
01C3 80000000
01C7 00010618 230 DB 000h,001h,006h,018h,060h,080h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h
01CB 60800000
01CF 00000000
01D3 00FF0000
01D7 00000000 231 DB 000h,000h,000h,000h,000h,0C0h,030h,00Ch,003h,000h,000h,000h,000h,080h,040h,020h
01DB 00C0300C
01DF 03000000
01E3 00804020
01E7 10080402 232 DB 010h,008h,004h,002h,001h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
01EB 01000000
01EF 00000000
A51 MACRO ASSEMBLER LCD12864 07/21/2006 09:18:34 PAGE 5
01F3 00000000
01F7 02020404 233 DB 002h,002h,004h,004h,008h,008h,010h,010h,020h,020h,040h,040h,080h,081h,002h,004h
01FB 08081010
01FF 20204040
0203 80810204
0207 08102040 234 DB 008h,010h,020h,040h,080h,001h,006h,018h,020h,000h,000h,000h,080h,09Fh,080h,000h
020B 80010618
020F 20000000
0213 809F8000
0217 0040300C 235 DB 000h,040h,030h,00Ch,003h,080h,040h,020h,010h,008h,004h,002h,001h,000h,000h,080h
021B 03804020
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -