?? 12864_me300b.lst
字號:
A51 MACRO ASSEMBLER 12864_ME300B 03/16/2005 11:25:59 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN 12864_ME300B.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 12864_ME300B.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;控制器:KS0107
2 ;LCD型號:12864
3 ;模塊接口:1-VSS,2-VDD,3-V0,4-RS,5-R/W,6-E,7-14---DB0-DB7,15-CS1,16-CS2,17-/RST,1
8-VEE
4 ;取模方式:縱向字節倒序
5 ;CS1和CS2為高電平有效
6 ;********************************************************
00A0 7 RS EQU P2.0
00A1 8 RW EQU P2.1
00A2 9 E EQU P2.2
00A3 10 CS1 EQU P2.3
00A4 11 CS2 EQU P2.4
00A5 12 RST EQU P2.5
0020 13 COM EQU 20H ;指令數據寄存器
0021 14 DAT EQU 21H ;顯示數據寄存器
15
16 ;******************************************************** 以上是硬件定義
0000 17 ORG 0000H
0000 0106 18 AJMP STR
19 ;*********************************主程序入口地址
0003 20 ORG 0003H
0003 020F05 21 LJMP L0006
22 ;*********************************中斷程序入口地址
0006 30B402 23 STR: JNB P3.4,ST7920A
0009 010E 24 AJMP L0100
000B 25 ST7920A:
000B 020D7E 26 LJMP ST7920
000E C2A5 27 L0100: CLR RST
0010 00 28 NOP
0011 00 29 NOP
0012 D2A5 30 SETB RST
31
32 ;********************************************************以上是軟件復位
0014 758160 33 MOV SP,#60H
0017 75A881 34 MOV IE,#81H ;中斷允許
001A 75B801 35 MOV IP,#01H ;優先中斷
001D 758800 36 MOV TCON,#00H ;電平中斷
0020 75203F 37 MOV COM,#3FH ;顯示開
0023 120119 38 LCALL S02A9 ;左半屏寫指令子程序
0026 120129 39 LCALL S02C1 ;右半屏寫指令子程序
40 ;----------------------------------------------------------------------
0029 7520C0 41 MOV COM,#0C0H ;第一行
002C 120119 42 LCALL S02A9 ;左半屏寫指令子程序
002F 120129 43 LCALL S02C1 ;右半屏寫指令子程序
44 ;----------------------------------------------------------------------
0032 7520B8 45 MOV COM,#0B8H ;第一頁
0035 120119 46 LCALL S02A9 ;左半屏寫指令子程序
0038 120129 47 LCALL S02C1 ;右半屏寫指令子程序
48 ;----------------------------------------------------------------------
003B 752040 49 MOV COM,#40H ;第一列
003E 120119 50 LCALL S02A9 ;左半屏寫指令子程序
0041 120129 51 LCALL S02C1 ;右半屏寫指令子程序
52 ;********************************************************以上是軟件初始化
0044 75F0AA 53 MOV B,#0AAH
0047 1200C6 54 LCALL XIHX ;顯示橫線1
004A 120171 55 LCALL S0240
56 ; MOV B,#55H
57 ; LCALL XIHX
A51 MACRO ASSEMBLER 12864_ME300B 03/16/2005 11:25:59 PAGE 2
58 ; LCALL S0240 ;顯示橫線2
004D 75F0FF 59 MOV B,#0FFH
0050 752900 60 MOV 29H,#00H
0053 1200EB 61 LCALL XISX
0056 120171 62 LCALL S0240 ;顯示豎線1
63 ; MOV B,#00H
64 ; MOV 29H,#0FFH
65 ; LCALL XISX
66 ; LCALL S0240 ;顯示豎線2
67
0059 90017E 68 MOV DPTR,#TAB1
005C 120088 69 LCALL LEFT
005F 90037E 70 MOV DPTR,#TAB2
0062 1200A7 71 LCALL RIGHT
0065 120171 72 LCALL S0240 ;顯示第一幅圖片
0068 90057E 73 MOV DPTR,#TAB3
006B 120088 74 LCALL LEFT
006E 90077E 75 MOV DPTR,#TAB4
0071 1200A7 76 LCALL RIGHT
0074 120171 77 LCALL S0240 ;顯示第二幅圖片
78
0077 90097E 79 MOV DPTR,#TAB5
007A 120088 80 LCALL LEFT
007D 900B7E 81 MOV DPTR,#TAB6
0080 1200A7 82 LCALL RIGHT
0083 120171 83 LCALL S0240 ;顯示第三幅圖片
84
0086 010E 85 AJMP L0100
86 ;=======================================================以上是主程序
0088 79B8 87 LEFT: MOV R1,#0B8H
008A 8920 88 _AB: MOV COM,R1 ;第一頁
008C 120119 89 LCALL S02A9 ;左半屏寫指令子程序
008F 752040 90 MOV COM,#40H ;第一列
0092 120119 91 LCALL S02A9 ;左半屏寫指令子程序
0095 7840 92 MOV R0, #64
0097 7400 93 S027B: MOV A,#00H
0099 93 94 MOVC A,@A+DPTR
009A F521 95 MOV DAT,A
009C 120121 96 LCALL S02B1 ;左半屏寫數據子程序
009F A3 97 INC DPTR
00A0 D8F5 98 DJNZ R0,S027B
00A2 09 99 INC R1
00A3 B9C0E4 100 CJNE R1, #0C0H,_AB
00A6 22 101 RET
102 ;======================================================以上是左半屏寫數據子程序
00A7 79B8 103 RIGHT: MOV R1,#0B8H
00A9 8920 104 ABC: MOV COM,R1 ;第一頁
00AB 120129 105 LCALL S02C1 ;右半屏寫指令子程序
00AE 752040 106 MOV COM,#40H ;第一列
00B1 120129 107 LCALL S02C1 ;右半屏寫指令子程序
00B4 7840 108 MOV R0, #64
00B6 7400 109 S027D: MOV A,#00H
00B8 93 110 MOVC A,@A+DPTR
00B9 F521 111 MOV DAT,A
00BB 120131 112 LCALL S02B9 ;右半屏寫數據子程序
00BE A3 113 INC DPTR
00BF D8F5 114 DJNZ R0,S027D
00C1 09 115 INC R1
00C2 B9C0E4 116 CJNE R1, #0C0H,ABC
00C5 22 117 RET
118
119 ;*******************************************************以上是右半屏寫數據子程序
120
00C6 79B8 121 XIHX: MOV R1,#0B8H
00C8 8920 122 BA: MOV COM,R1 ;第一頁
00CA 120119 123 LCALL S02A9 ;左半屏寫指令子程序
A51 MACRO ASSEMBLER 12864_ME300B 03/16/2005 11:25:59 PAGE 3
00CD 120129 124 LCALL S02C1 ;右半屏寫指令子程序
00D0 752040 125 MOV COM,#40H ;第一列
00D3 120119 126 LCALL S02A9 ;左半屏寫指令子程序
00D6 120129 127 LCALL S02C1 ;右半屏寫指令子程序
00D9 7840 128 MOV R0, #64
00DB 85F021 129 W027B: MOV DAT,B
00DE 120121 130 LCALL S02B1 ;左半屏寫數據子程序
00E1 120131 131 LCALL S02B9 ;右半屏寫數據子程序
00E4 D8F5 132 DJNZ R0,W027B
00E6 09 133 INC R1
00E7 B9C0DE 134 CJNE R1, #0C0H,BA
00EA 22 135 RET
136 ;---------------------------------------------------------
00EB 79B8 137 XISX: MOV R1,#0B8H
00ED 8920 138 CA: MOV COM,R1 ;第一頁
00EF 120119 139 LCALL S02A9 ;左半屏寫指令子程序
00F2 120129 140 LCALL S02C1 ;右半屏寫指令子程序
00F5 752040 141 MOV COM,#40H ;第一列
00F8 120119 142 LCALL S02A9 ;左半屏寫指令子程序
00FB 120129 143 LCALL S02C1 ;右半屏寫指令子程序
00FE 7820 144 MOV R0, #32
0100 85F021 145 X027B: MOV DAT,B
0103 120121 146 LCALL S02B1 ;左半屏寫數據子程序
0106 120131 147 LCALL S02B9 ;右半屏寫數據子程序
0109 852921 148 MOV DAT,29H
010C 120121 149 LCALL S02B1 ;左半屏寫數據子程序
010F 120131 150 LCALL S02B9 ;右半屏寫數據子程序
0112 D8EC 151 DJNZ R0,X027B
0114 09 152 INC R1
0115 B9C0D5 153 CJNE R1, #0C0H,CA
0118 22 154 RET
155 ;****************************************************以上是顯示線條程序
0119 D2A3 156 S02A9: SETB CS1
011B 120139 157 LCALL S02C9
011E C2A3 158 CLR CS1 ;左半屏寫指令子程序
0120 22 159 RET
160
0121 D2A3 161 S02B1: SETB CS1 ;左半屏寫數據子程序
0123 120154 162 LCALL S02E0
0126 C2A3 163 CLR CS1
0128 22 164 RET
165
0129 D2A4 166 S02C1: SETB CS2 ;右半屏寫指令子程序
012B 120139 167 LCALL S02C9
012E C2A4 168 CLR CS2
0130 22 169 RET
170
0131 D2A4 171 S02B9: SETB CS2 ;右半屏寫數據子程序
0133 120154 172 LCALL S02E0
0136 C2A4 173 CLR CS2
0138 22 174 RET
175 ;****************************************************
176
0139 C2A0 177 S02C9: CLR RS
013B D2A1 178 SETB RW
013D 7580FF 179 S02C9A: MOV P0,#0FFH
0140 D2A2 180 SETB E
0142 E580 181 MOV A, P0
0144 C2A2 182 CLR E
0146 20E7F4 183 JB ACC.7,S02C9A
0149 C2A1 184 CLR RW
014B 852080 185 MOV P0,COM
014E D2A2 186 SETB E
0150 00 187 NOP
0151 C2A2 188 CLR E
0153 22 189 RET
A51 MACRO ASSEMBLER 12864_ME300B 03/16/2005 11:25:59 PAGE 4
190 ;*************************************************以上是寫指令子程序
0154 C2A0 191 S02E0: CLR RS
0156 D2A1 192 SETB RW
0158 7580FF 193 S02E0A: MOV P0,#0FFH
015B D2A2 194 SETB E
015D E580 195 MOV A, P0
015F C2A2 196 CLR E
0161 20E7F4 197 JB ACC.7,S02E0A
0164 D2A0 198 SETB RS
0166 C2A1 199 CLR RW
0168 852180 200 MOV P0,DAT
016B D2A2 201 SETB E
016D 00 202 NOP
016E C2A2 203 CLR E
0170 22 204 RET
205
206 ;************************************************以上是寫數據子程序
207
0171 7D0B 208 S0240: MOV R5,#0BH ;延時
0173 7FFF 209 L0242: MOV R7,#0FFH
0175 7EFF 210 L0244: MOV R6,#0FFH
0177 DEFE 211 L0246: DJNZ R6,$
0179 DFFA 212 DJNZ R7,L0244
017B DDF6 213 DJNZ R5,L0242
017D 22 214 RET
215 ;****************************************************************
017E 216 TAB1:
217 ;-- 調入了一幅圖像:
218 ;-- 寬度x高度=64x64
017E 00000000 219 db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 80h, 20h, 0Ah
0182 00000000
0186 00000000
018A 0080200A
018E 4A3C40BE 220 db 4Ah, 3Ch, 40h,0BEh, 00h, 54h, 00h, 24h, 42h,0A8h, 00h,0EEh, 00h, 42h, 06h,
48h
0192 00540024
0196 42A800EE
019A 00420648
019E 12441244 221 db 12h, 44h, 12h, 44h,0A8h, 02h, 20h, 04h, 22h,0C0h, 82h,0E4h,0C0h,0E0h,0C0h,
0C0h
01A2 A8022004
01A6 22C082E4
01AA C0E0C0C0
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -