📄 lcd.ls1
字号:
193 ; {
194 ; SOURCE LINE # 71
195 ; #ifdef TG19264
196 ; SendCtr(0x40 + value);
197 ; SOURCE LINE # 73
0000 90F802 198 MOV DPTR,#0F802H
0003 E4 199 CLR A
0004 F0 200 MOVX @DPTR,A
0005 F0 201 MOVX @DPTR,A
0006 EF 202 MOV A,R7
0007 2440 203 ADD A,#040H
0009 90F800 204 MOV DPTR,#0F800H
000C F0 205 MOVX @DPTR,A
206 ; #endif
207 ; }
208 ; SOURCE LINE # 75
000D 22 209 RET
210 ; END OF _SetColumn
211
212 ;
213 ;
214 ; /****************************************************************************************
**
215 ; *函数名: InitTg19264
216 ; *参数: 无
217 ; *返回值: 无
218 ; *描述: 初始化液晶屏Tg19264,对液晶屏从DDRAM中哪一行开始显示数
219 ; 据以及设置初始的页码值和X坐标位置
220 ; *编写: 王绍伟
221 ; *版本信息: V1.0 2003年8月15日
222 ; *****************************************************************************************
*/
223 ; static void InitTg19264(void)
224
---- 225 RSEG ?PR?InitTg19264?LCD
0000 226 InitTg19264:
227 ; SOURCE LINE # 87
228 ; {
229 ; SOURCE LINE # 88
230 ; SendCtr(0xC0); /*起始显示DDRAM行(D5-D0)为第0行*/
231 ; SOURCE LINE # 89
0000 90F802 232 MOV DPTR,#0F802H
0003 E4 233 CLR A
0004 F0 234 MOVX @DPTR,A
0005 F0 235 MOVX @DPTR,A
0006 90F800 236 MOV DPTR,#0F800H
0009 74C0 237 MOV A,#0C0H
000B F0 238 MOVX @DPTR,A
239 ; SendCtr(0xB8); /*起始页位置(D2-D0)为第0页*/
240 ; SOURCE LINE # 90
000C 90F802 241 MOV DPTR,#0F802H
000F E4 242 CLR A
0010 F0 243 MOVX @DPTR,A
0011 F0 244 MOVX @DPTR,A
0012 90F800 245 MOV DPTR,#0F800H
0015 74B8 246 MOV A,#0B8H
0017 F0 247 MOVX @DPTR,A
248 ; SendCtr(0x40); /*X方向起始位置(D5-D0)为0*/
249 ; SOURCE LINE # 91
A51 MACRO ASSEMBLER LCD 10/31/2003 02:22:22 PAGE 5
0018 90F802 250 MOV DPTR,#0F802H
001B E4 251 CLR A
001C F0 252 MOVX @DPTR,A
001D F0 253 MOVX @DPTR,A
001E 90F800 254 MOV DPTR,#0F800H
0021 7440 255 MOV A,#040H
0023 F0 256 MOVX @DPTR,A
257 ; }
258 ; SOURCE LINE # 92
0024 22 259 RET
260 ; END OF InitTg19264
261
262 ;
263 ;
264 ; /****************************************************************************************
**
265 ; *函数名: lcd_init
266 ; *参数: 无
267 ; *返回值: 无
268 ; *描述: 液晶屏初始化程序,主要是清屏,开显示
269 ; *编写: 王绍伟
270 ; *版本信息: V1.0 2003年8月15日
271 ; *****************************************************************************************
*/
272 ; extern void lcd_init(void)
273
---- 274 RSEG ?PR?lcd_init?LCD
0000 275 lcd_init:
276 USING 0
277 ; SOURCE LINE # 103
278 ; {
279 ; SOURCE LINE # 104
280 ; #ifdef TG19264
281 ; InitTg19264();
282 ; SOURCE LINE # 106
0000 120000 F 283 LCALL InitTg19264
284 ; #endif
285 ; lcd_clear();
286 ; SOURCE LINE # 108
0003 120000 F 287 LCALL lcd_clear
288 ; SendCtr(0x3F); /*显示ON/OFF D0*/
289 ; SOURCE LINE # 109
0006 90F802 290 MOV DPTR,#0F802H
0009 E4 291 CLR A
000A F0 292 MOVX @DPTR,A
000B F0 293 MOVX @DPTR,A
000C 90F800 294 MOV DPTR,#0F800H
000F 743F 295 MOV A,#03FH
0011 F0 296 MOVX @DPTR,A
297 ; }
298 ; SOURCE LINE # 110
0012 22 299 RET
300 ; END OF lcd_init
301
302 ;
303 ;
304 ; /****************************************************************************************
**
305 ; *函数名: lcd_clear
306 ; *参数: 无
307 ; *返回值: 无
308 ; *描述: LCD清屏程序
309 ; *编写: 王绍伟
310 ; *版本信息: V1.0 2003年8月15日
311 ; *****************************************************************************************
*/
A51 MACRO ASSEMBLER LCD 10/31/2003 02:22:22 PAGE 6
312 ; extern void lcd_clear(void)
313
---- 314 RSEG ?PR?lcd_clear?LCD
0000 315 lcd_clear:
316 USING 0
317 ; SOURCE LINE # 121
318 ; {
319 ; SOURCE LINE # 122
320 ; byte page;
321 ; byte column;
322 ;
323 ; for(page = 0; page < MAX_PAGE; page++)
324 ; SOURCE LINE # 126
325 ;---- Variable 'page?442' assigned to Register 'R7' ----
0000 E4 326 CLR A
0001 FF 327 MOV R7,A
0002 328 ?C0005:
329 ; {
330 ; SOURCE LINE # 127
331 ; RS = 0; /*r发送命令*/
332 ; SOURCE LINE # 128
0002 90F802 333 MOV DPTR,#0F802H
0005 E4 334 CLR A
0006 F0 335 MOVX @DPTR,A
336 ; WLCD = 0xB8 + page; /*r设置清空的页码*/
337 ; SOURCE LINE # 129
0007 EF 338 MOV A,R7
0008 24B8 339 ADD A,#0B8H
000A 90F800 340 MOV DPTR,#0F800H
000D F0 341 MOVX @DPTR,A
342 ; _nop_();
343 ; SOURCE LINE # 130
000E 00 344 NOP
345 ; WLCD = 0x40; /*r设置清空的X坐标起始位置为0*/
346 ; SOURCE LINE # 131
000F 7440 347 MOV A,#040H
0011 F0 348 MOVX @DPTR,A
349 ; _nop_();
350 ; SOURCE LINE # 132
0012 00 351 NOP
352 ; RS = 1; /*r发送数据*/
353 ; SOURCE LINE # 133
0013 90F802 354 MOV DPTR,#0F802H
0016 7401 355 MOV A,#01H
0018 F0 356 MOVX @DPTR,A
357 ; _nop_();
358 ; SOURCE LINE # 134
0019 00 359 NOP
360 ; for(column = 0; column < MAX_COLUMN; column++)
361 ; SOURCE LINE # 135
362 ;---- Variable 'column?443' assigned to Register 'R6' ----
001A E4 363 CLR A
001B FE 364 MOV R6,A
001C 365 ?C0008:
366 ; {
367 ; SOURCE LINE # 136
368 ; WLCD = 0x00; /*r相应显示寄存器清零*/
369 ; SOURCE LINE # 137
001C 90F800 370 MOV DPTR,#0F800H
001F E4 371 CLR A
0020 F0 372 MOVX @DPTR,A
373 ; _nop_();
374 ; SOURCE LINE # 138
0021 00 375 NOP
376 ; _nop_();
377 ; SOURCE LINE # 139
A51 MACRO ASSEMBLER LCD 10/31/2003 02:22:22 PAGE 7
0022 00 378 NOP
379 ; _nop_();
380 ; SOURCE LINE # 140
0023 00 381 NOP
382 ; _nop_();
383 ; SOURCE LINE # 141
0024 00 384 NOP
385 ; _nop_();
386 ; SOURCE LINE # 142
0025 00 387 NOP
388 ; _nop_();
389 ; SOURCE LINE # 143
0026 00 390 NOP
391 ; _nop_();
392 ; SOURCE LINE # 144
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -