?? wl009.lst
字號:
0091 7401 133 MOV A,#01H ; 01H清屏指令
0093 1200A2 134 LCALL LCD_WRITE_COMMAND
0096 7401 135 MOV A,#1
0098 1200EB 136 LCALL DELAY_MS
009B 22 137 RET
138
139 ;設置LCD當前光標的位置
140
009C 141 SET_LCD_POS:
009C 4480 142 ORL A,#80H ;
009E 1200A2 143 LCALL LCD_WRITE_COMMAND
00A1 22 144 RET
145
146 ; 寫入控制指令到LCD
147 ; 傳入參數: ACC(要寫入的命令)
148 ; 返回值: 無
00A2 149 LCD_WRITE_COMMAND:
00A2 1200D6 150 LCALL CHECK_LCD_BUSY
00A5 C2A0 151 CLR RS
00A7 C2A1 152 CLR RW
00A9 C2A2 153 CLR EP
00AB 00 154 NOP
00AC 00 155 NOP
00AD F580 156 MOV P0,A ; 寫入數據到LCD端口
00AF 00 157 NOP
00B0 00 158 NOP
00B1 00 159 NOP
00B2 00 160 NOP
00B3 D2A2 161 SETB EP
00B5 00 162 NOP
00B6 00 163 NOP
00B7 00 164 NOP
00B8 00 165 NOP
00B9 C2A2 166 CLR EP
00BB 22 167 RET
168
169 ; 寫入顯示數據到LCD
170 ; 傳入參數: ACC(要寫入的數據)
171 ; 返回值: 無
00BC 172 LCD_WRITE_DATA:
00BC 1200D6 173 LCALL CHECK_LCD_BUSY
00BF D2A0 174 SETB RS
00C1 C2A1 175 CLR RW
00C3 C2A2 176 CLR EP
00C5 00 177 NOP
00C6 00 178 NOP
00C7 F580 179 MOV P0,A ; 寫入數據到LCD端口
00C9 00 180 NOP
00CA 00 181 NOP
00CB 00 182 NOP
00CC 00 183 NOP
00CD D2A2 184 SETB EP
00CF 00 185 NOP
00D0 00 186 NOP
00D1 00 187 NOP
00D2 00 188 NOP
00D3 C2A2 189 CLR EP
00D5 22 190 RET
A51 MACRO ASSEMBLER WL009 04/05/2005 09:56:15 PAGE 4
191
00D6 192 CHECK_LCD_BUSY:
00D6 C2A0 193 CLR RS
00D8 D2A1 194 SETB RW
00DA D2A2 195 SETB EP
00DC 00 196 NOP
00DD 00 197 NOP
00DE 00 198 NOP
00DF 00 199 NOP
00E0 A287 200 MOV C,P0.7 ; 讀取忙碌位
00E2 00 201 NOP
00E3 00 202 NOP
00E4 C2A2 203 CLR EP
00E6 00 204 NOP
00E7 00 205 NOP
00E8 40EC 206 JC CHECK_LCD_BUSY ; 等待LCD空閑(P0.7=0)
207
00EA 22 208 RET
209
210
211 ; 延時子程序
212 ; 傳入參數: ACC(延時時間,單位毫秒)
213 ; 返回值: 無
00EB 214 DELAY_MS:
00EB FF 215 MOV R7,A
00EC 216 DELAY_LOOP1:
00EC 7EE8 217 MOV R6,#0E8H
00EE 218 DELAY_LOOP2:
00EE 00 219 NOP
00EF 00 220 NOP
00F0 DEFC 221 DJNZ R6,DELAY_LOOP2
00F2 DFF8 222 DJNZ R7,DELAY_LOOP1
00F4 22 223 RET
224
225
00F5 226 TAB_WILLAR:
00F5 7777772E 227 DB "www.willar.com"
00F9 77696C6C
00FD 61722E63
0101 6F6D
0103 00 228 DB 00 ; 字符結束標志
229
0104 230 TAB_WELCOME:
0104 77656C63 231 DB "welcome!"
0108 6F6D6521
010C 00 232 DB 00 ; 字符結束標志
233
234 END
A51 MACRO ASSEMBLER WL009 04/05/2005 09:56:15 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
CHECK_LCD_BUSY . . C ADDR 00D6H A
DELAY_LOOP1. . . . C ADDR 00ECH A
DELAY_LOOP2. . . . C ADDR 00EEH A
DELAY_MS . . . . . C ADDR 00EBH A
DISPLAY_STRING . . C ADDR 0050H A
END_DISPLAY_STRING C ADDR 005FH A
EP . . . . . . . . B ADDR 00A0H.2 A
LCD_CLEAR. . . . . C ADDR 0091H A
LCD_INIT . . . . . C ADDR 0060H A
LCD_TURN_OFF . . . C ADDR 0086H A
LCD_TURN_ON. . . . C ADDR 007BH A
LCD_WRITE_COMMAND. C ADDR 00A2H A
LCD_WRITE_DATA . . C ADDR 00BCH A
MAIN . . . . . . . C ADDR 0003H A
MAIN_LOOP. . . . . C ADDR 000BH A
P0 . . . . . . . . D ADDR 0080H A
P2 . . . . . . . . D ADDR 00A0H A
RS . . . . . . . . B ADDR 00A0H.0 A
RW . . . . . . . . B ADDR 00A0H.1 A
SET_LCD_POS. . . . C ADDR 009CH A
TAB_WELCOME. . . . C ADDR 0104H A
TAB_WILLAR . . . . C ADDR 00F5H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -