📄 12864.lst
字号:
A51 MACRO ASSEMBLER 12864 01/26/2006 01:30:04 PAGE 1
MACRO ASSEMBLER A51 V7.09
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
3
4
5
6
7
8
9
10
11
12
13 ;***************硬件端口定义***********
00A0 14 RS EQU P2.0
00A1 15 RW EQU P2.1
00A2 16 E EQU P2.2
00A3 17 CS1 EQU P2.3
00A4 18 CS2 EQU P2.4
00A5 19 RST EQU P2.5
0020 20 COM EQU 20H ;指令数据寄存器
0021 21 DAT EQU 21H ;显示数据寄存器
22
23 ;**********************************主程序入口地址
0000 24 ORG 0000H
0000 0103 25 AJMP STR
0003 26 ORG 0003H
27
28 ;*********************************中断程序入口地址
0003 29 STR:
0003 0105 30 AJMP L0100
31
0005 C2A5 32 L0100: CLR RST
0007 00 33 NOP
0008 00 34 NOP
0009 D2A5 35 SETB RST
36
37 ;********************************以上是软件复位
000B 758160 38 MOV SP,#60H
000E 75A881 39 MOV IE,#81H ;中断允许
0011 75B801 40 MOV IP,#01H ;优先中断
0014 758800 41 MOV TCON,#00H ;电平中断
0017 75203F 42 MOV COM,#3FH ;显示开
001A 1200F2 43 LCALL S02A9 ;左半屏写指令子程序
001D 120102 44 LCALL S02C1 ;右半屏写指令子程序
45 ;----------------------------------------------------------------------
0020 7520C0 46 MOV COM,#0C0H ;第一行
0023 1200F2 47 LCALL S02A9 ;左半屏写指令子程序
0026 120102 48 LCALL S02C1 ;右半屏写指令子程序
49 ;----------------------------------------------------------------------
0029 7520B8 50 MOV COM,#0B8H ;第一页
002C 1200F2 51 LCALL S02A9 ;左半屏写指令子程序
002F 120102 52 LCALL S02C1 ;右半屏写指令子程序
53 ;----------------------------------------------------------------------
0032 752040 54 MOV COM,#40H ;第一列
0035 1200F2 55 LCALL S02A9 ;左半屏写指令子程序
0038 120102 56 LCALL S02C1 ;右半屏写指令子程序
57 ;********************************************************以上是软件初始化
003B 75F0AA 58 MOV B,#0AAH
A51 MACRO ASSEMBLER 12864 01/26/2006 01:30:04 PAGE 2
003E 12009F 59 LCALL XIHX ;显示横线1
0041 12014A 60 LCALL DELAY
61 ; MOV B,#55H
62 ; LCALL XIHX
63 ; LCALL DELAY ;显示横线2
0044 75F0FF 64 MOV B,#0FFH
0047 752900 65 MOV 29H,#00H
004A 1200C4 66 LCALL XISX
004D 12014A 67 LCALL DELAY ;显示竖线1
68 ; MOV B,#00H
69 ; MOV 29H,#0FFH
70 ; LCALL XISX
71 ; LCALL DELAY ;显示竖线2
72
0050 900157 73 MOV DPTR,#TAB1
0053 120061 74 LCALL LEFT
0056 900357 75 MOV DPTR,#TAB2
0059 120080 76 LCALL RIGHT
005C 12014A 77 LCALL DELAY ;显示第一幅图片
78
005F 0105 79 AJMP L0100
80 ;=======================================================以上是主程序
0061 79B8 81 LEFT: MOV R1,#0B8H
0063 8920 82 _AB: MOV COM,R1 ;第一页
0065 1200F2 83 LCALL S02A9 ;左半屏写指令子程序
0068 752040 84 MOV COM,#40H ;第一列
006B 1200F2 85 LCALL S02A9 ;左半屏写指令子程序
006E 7840 86 MOV R0, #64
0070 7400 87 S027B: MOV A,#00H
0072 93 88 MOVC A,@A+DPTR
0073 F521 89 MOV DAT,A
0075 1200FA 90 LCALL S02B1 ;左半屏写数据子程序
0078 A3 91 INC DPTR
0079 D8F5 92 DJNZ R0,S027B
007B 09 93 INC R1
007C B9C0E4 94 CJNE R1, #0C0H,_AB
007F 22 95 RET
96 ;======================================================以上是左半屏写数据子程序
0080 79B8 97 RIGHT: MOV R1,#0B8H
0082 8920 98 ABC: MOV COM,R1 ;第一页
0084 120102 99 LCALL S02C1 ;右半屏写指令子程序
0087 752040 100 MOV COM,#40H ;第一列
008A 120102 101 LCALL S02C1 ;右半屏写指令子程序
008D 7840 102 MOV R0, #64
008F 7400 103 S027D: MOV A,#00H
0091 93 104 MOVC A,@A+DPTR
0092 F521 105 MOV DAT,A
0094 12010A 106 LCALL S02B9 ;右半屏写数据子程序
0097 A3 107 INC DPTR
0098 D8F5 108 DJNZ R0,S027D
009A 09 109 INC R1
009B B9C0E4 110 CJNE R1, #0C0H,ABC
009E 22 111 RET
112
113 ;*******************************************************以上是右半屏写数据子程序
114
009F 79B8 115 XIHX: MOV R1,#0B8H
00A1 8920 116 BA: MOV COM,R1 ;第一页
00A3 1200F2 117 LCALL S02A9 ;左半屏写指令子程序
00A6 120102 118 LCALL S02C1 ;右半屏写指令子程序
00A9 752040 119 MOV COM,#40H ;第一列
00AC 1200F2 120 LCALL S02A9 ;左半屏写指令子程序
00AF 120102 121 LCALL S02C1 ;右半屏写指令子程序
00B2 7840 122 MOV R0, #64
00B4 85F021 123 W027B: MOV DAT,B
00B7 1200FA 124 LCALL S02B1 ;左半屏写数据子程序
A51 MACRO ASSEMBLER 12864 01/26/2006 01:30:04 PAGE 3
00BA 12010A 125 LCALL S02B9 ;右半屏写数据子程序
00BD D8F5 126 DJNZ R0,W027B
00BF 09 127 INC R1
00C0 B9C0DE 128 CJNE R1, #0C0H,BA
00C3 22 129 RET
130 ;---------------------------------------------------------
00C4 79B8 131 XISX: MOV R1,#0B8H
00C6 8920 132 CA: MOV COM,R1 ;第一页
00C8 1200F2 133 LCALL S02A9 ;左半屏写指令子程序
00CB 120102 134 LCALL S02C1 ;右半屏写指令子程序
00CE 752040 135 MOV COM,#40H ;第一列
00D1 1200F2 136 LCALL S02A9 ;左半屏写指令子程序
00D4 120102 137 LCALL S02C1 ;右半屏写指令子程序
00D7 7820 138 MOV R0, #32
00D9 85F021 139 X027B: MOV DAT,B
00DC 1200FA 140 LCALL S02B1 ;左半屏写数据子程序
00DF 12010A 141 LCALL S02B9 ;右半屏写数据子程序
00E2 852921 142 MOV DAT,29H
00E5 1200FA 143 LCALL S02B1 ;左半屏写数据子程序
00E8 12010A 144 LCALL S02B9 ;右半屏写数据子程序
00EB D8EC 145 DJNZ R0,X027B
00ED 09 146 INC R1
00EE B9C0D5 147 CJNE R1, #0C0H,CA
00F1 22 148 RET
149 ;****************************************************以上是显示线条程序
00F2 D2A3 150 S02A9: SETB CS1
00F4 120112 151 LCALL S02C9
00F7 C2A3 152 CLR CS1 ;左半屏写指令子程序
00F9 22 153 RET
154
00FA D2A3 155 S02B1: SETB CS1 ;左半屏写数据子程序
00FC 12012D 156 LCALL S02E0
00FF C2A3 157 CLR CS1
0101 22 158 RET
159
0102 D2A4 160 S02C1: SETB CS2 ;右半屏写指令子程序
0104 120112 161 LCALL S02C9
0107 C2A4 162 CLR CS2
0109 22 163 RET
164
010A D2A4 165 S02B9: SETB CS2 ;右半屏写数据子程序
010C 12012D 166 LCALL S02E0
010F C2A4 167 CLR CS2
0111 22 168 RET
169 ;****************************************************
170
0112 C2A0 171 S02C9: CLR RS
0114 D2A1 172 SETB RW
0116 7580FF 173 S02C9A: MOV P0,#0FFH
0119 D2A2 174 SETB E
011B E580 175 MOV A, P0
011D C2A2 176 CLR E
011F 20E7F4 177 JB ACC.7,S02C9A
0122 C2A1 178 CLR RW
0124 852080 179 MOV P0,COM
0127 D2A2 180 SETB E
0129 00 181 NOP
012A C2A2 182 CLR E
012C 22 183 RET
184 ;*************************************************以上是写指令子程序
012D C2A0 185 S02E0: CLR RS
012F D2A1 186 SETB RW
0131 7580FF 187 S02E0A: MOV P0,#0FFH
0134 D2A2 188 SETB E
0136 E580 189 MOV A, P0
0138 C2A2 190 CLR E
A51 MACRO ASSEMBLER 12864 01/26/2006 01:30:04 PAGE 4
013A 20E7F4 191 JB ACC.7,S02E0A
013D D2A0 192 SETB RS
013F C2A1 193 CLR RW
0141 852180 194 MOV P0,DAT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -