?? main.lst
字號:
A51 MACRO ASSEMBLER MAIN 03/11/2009 11:45:06 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN main.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE main.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1
2
3
4
5
6
7
8
9
10
11
0000 12 ORG 0000H
0000 758150 13 MOV SP, #50H
0003 020006 14 LJMP MAIN
15
0006 16 MAIN:
0006 1200A2 17 LCALL Lcd12864Init
18
0009 19 Mloop:
20
0009 9000D2 21 MOV DPTR, #bird1
000C 12005C 22 LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
23
000F 120053 24 LCALL DELAY_50MS
0012 9004D2 25 MOV DPTR, #bird2
0015 12005C 26 LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
27
0018 120053 28 LCALL DELAY_50MS
001B 9008D2 29 MOV DPTR, #bird3
001E 12005C 30 LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
0021 120053 31 LCALL DELAY_50MS
0024 900CD2 32 MOV DPTR, #bird4
0027 12005C 33 LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
002A 120053 34 LCALL DELAY_50MS
002D 9010D2 35 MOV DPTR, #bird5
0030 12005C 36 LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
0033 120053 37 LCALL DELAY_50MS
0036 9014D2 38 MOV DPTR, #bird6
0039 12005C 39 LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
003C 120053 40 LCALL DELAY_50MS
003F 9018D2 41 MOV DPTR, #bird7
0042 12005C 42 LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
0045 120053 43 LCALL DELAY_50MS
0048 901CD2 44 MOV DPTR, #bird8
004B 12005C 45 LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
46 ; sjmp $
004E 120053 47 LCALL DELAY_50MS
0051 80B6 48 SJMP Mloop
49
50
51
52
0053 53 DELAY_50MS: ;延時(shí)50ms
0053 7DFF 54 DL2: MOV R5, #0FFH
0055 00 55 DL1: NOP ;內(nèi)循環(huán)
0056 00 56 NOP
0057 DDFC 57 DJNZ R5, DL1
0059 DCF8 58 DJNZ R4, DL2
A51 MACRO ASSEMBLER MAIN 03/11/2009 11:45:06 PAGE 2
59
005B 22 60 RET
61
62 ;--------------------------------------------------------------------------
63 ;-----------------------------LCD12864-ASM---------------------------------
64 ;--------------------------------------------------------------------------
65
66
67
68
69
70 ;------------------------lcd12864相關(guān)定義-----------------------------------
00A0 71 E BIT P2.0
00A1 72 RW BIT P2.1
00A2 73 RS BIT P2.2
00A3 74 CS1 BIT P2.3
00A4 75 CS2 BIT P2.4
0080 76 DBPort EQU P0
77 ;-----------------------------------------------;命令
003E 78 DISP_OFF EQU 3eH ;關(guān)顯示
003F 79 DISP_ON EQU 3FH ;開顯示
0040 80 DISP_X EQU 40H ;起始行
00B8 81 DISP_PAGE EQU 0B8H ;起始頁
00C0 82 DISP_Y EQU 0C0H ;起始列
83 ;-----------------------------------------------;內(nèi)存使用
84
85
86
87 ;********************************************************送一幅128x64點(diǎn)陣圖到lcd顯示(CODE)
005C 88 Lcd12864DrawImage:
005C 7D00 89 MOV R5, #0 ;循環(huán)計(jì)數(shù)清零for(j=0;;)
005E 90 IMGL1:
91 ;--------------------------------------------------------------------------
005E D2A3 92 SETB CS1
0060 C2A4 93 CLR CS2
94 ;--------------------------------------------------------------------------
0062 C3 95 CLR C
0063 ED 96 MOV A, R5
0064 24B8 97 ADD A, #DISP_PAGE
0066 FF 98 MOV R7, A
0067 1200B1 99 LCALL Lcd12864WriteCmd ;Lcd12864WriteCmd(DISP_PAGE+j(R5));
100 ;--------------------------------------------------------------------------
006A 7F40 101 MOV R7, #DISP_X
006C 1200B1 102 LCALL Lcd12864WriteCmd ;Lcd12864WriteCmd(DISP_X);
103 ;--------------------------------------------------------------------------
006F 7C00 104 MOV R4, #0 ;循環(huán)計(jì)數(shù)清零for(i=0;;)
105 ;--------------------------------------------------------------------------
0071 E4 106 IMGL21: CLR A
0072 93 107 MOVC A, @A+DPTR
0073 FF 108 MOV R7, A
0074 1200BF 109 LCALL Lcd12864WriteData ;Lcd12864WriteData(*DPTR);
0077 A3 110 INC DPTR ;DPTR++
111 ;--------------------------------------------------------------------------
0078 0C 112 INC R4
0079 EC 113 MOV A, R4 ;
007A B440F4 114 CJNE A, #64, IMGL21 ;if(++R4 != 64) goto IMGL21;
115 ;--------------------------------------------------------------------------
007D C2A3 116 CLR CS1
007F D2A4 117 SETB CS2
118 ;--------------------------------------------------------------------------
0081 C3 119 CLR C
0082 ED 120 MOV A, R5
0083 24B8 121 ADD A, #DISP_PAGE
0085 FF 122 MOV R7, A
0086 1200B1 123 LCALL Lcd12864WriteCmd ;Lcd12864WriteCmd(DISP_PAGE+j(R5));
124 ;--------------------------------------------------------------------------
A51 MACRO ASSEMBLER MAIN 03/11/2009 11:45:06 PAGE 3
0089 7F40 125 MOV R7, #DISP_X
008B 1200B1 126 LCALL Lcd12864WriteCmd ;Lcd12864WriteCmd(DISP_X);
127 ;--------------------------------------------------------------------------
008E 7C40 128 MOV R4, #64 ;循環(huán)計(jì)數(shù)清零for(i=64;;)
129 ;--------------------------------------------------------------------------
0090 E4 130 IMGL22: CLR A
0091 93 131 MOVC A, @A+DPTR
0092 FF 132 MOV R7, A
0093 1200BF 133 LCALL Lcd12864WriteData ;Lcd12864WriteData(*DPTR);
0096 A3 134 INC DPTR ;DPTR++
135 ;--------------------------------------------------------------------------
0097 0C 136 INC R4
0098 EC 137 MOV A, R4 ;
0099 B480F4 138 CJNE A, #128, IMGL22 ;if(++R4 != 128) goto IMGL22;
139 ;--------------------------------------------------------------------------
009C 0D 140 INC R5
009D ED 141 MOV A, R5
009E B408BD 142 CJNE A, #8, IMGL1 ;if(++R5 != 8) goto IMGL1;
143 ;--------------------------------------------------------------------------
00A1 22 144 RET
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169 ;********************************************************液晶顯示初始化
00A2 170 Lcd12864Init:
00A2 D2A3 171 SETB CS1
00A4 D2A4 172 SETB CS2
173 ;---------------------------------------------------------------------------
00A6 7F3E 174 MOV R7, #DISP_OFF
00A8 1200B1 175 LCALL Lcd12864WriteCmd ;Lcd12864WriteCmd(DISP_OFF);
176 ;---------------------------------------------------------------------------
00AB 7F3F 177 MOV R7, #DISP_ON
00AD 1200B1 178 LCALL Lcd12864WriteCmd ;Lcd12864WriteCmd(DISP_ON);
179 ;---------------------------------------------------------------------------
00B0 22 180 RET
181
182 ;********************************************************寫命令函數(shù)(R7傳入)
00B1 183 Lcd12864WriteCmd:
00B1 C2A2 184 CLR RS
00B3 C2A1 185 CLR RW
00B5 8F80 186 MOV DBPort, R7
00B7 D2A0 187 SETB E
00B9 C2A0 188 CLR E
00BB 1200CD 189 LCALL LcdDelay
00BE 22 190 RET
A51 MACRO ASSEMBLER MAIN 03/11/2009 11:45:06 PAGE 4
191 ;********************************************************寫數(shù)據(jù)函數(shù)(R7傳入)
00BF 192 Lcd12864WriteData:
00BF D2A2 193 SETB RS
00C1 C2A1 194 CLR RW
00C3 8F80 195 MOV DBPort, R7
00C5 D2A0 196 SETB E
00C7 C2A0 197 CLR E
00C9 1200CD 198 LCALL LcdDelay
00CC 22 199 RET
00CD 200 LcdDelay:
00CD 7819 201 MOV R0, #25
00CF D8FE 202 DL: DJNZ R0, DL
00D1 22 203 RET
204
205
206
207
00D2 208 bird1: ; 數(shù)據(jù)表
209
00D2 00000000 210 db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
00D6 00000000
00DA 00000000
00DE 00000000
00E2 00000000 211 db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h,
00h
00E6 00000000
00EA 00000000
00EE 00000000
00F2 00000000 212 db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h,
00h
00F6 00000000
00FA 00000000
00FE 00000000
0102 00000000 213 db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 80h,0E0h, 70h, 18h, 18h, 38h, 30h, 60h,
60h
0106 00000080
010A E0701818
010E 38306060
0112 6060C0C0 214 db 60h, 60h,0C0h,0C0h, 80h, 80h, 80h, 80h, 80h, 80h, 80h,0C0h,0C0h,0C0h, 60h,
60h
0116 80808080
011A 808080C0
011E C0C06060
0122 606060E0 215 db 60h, 60h, 60h,0E0h,0C0h,0C0h, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h,
00h
0126 C0C08000
012A 00000000
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -