📄 test.lst
字号:
228 1 }
229
230
231
232 /* ORG 8000H
233 AJMP MAIN
234
235 ORG 8100h
236 MAIN:
237 MOV SP,#60h ;设置SP
238 ACALL DELAY ;延时
239
C51 COMPILER V7.09 TEST 08/10/2005 00:27:29 PAGE 5
240 ACALL INIT_LCD ;初始化液晶模块
241
242 ACALL WRITE_CGRAM ;设置CGRAM
243
244 MOV A,#84H ;从第一行第5位开始
245 ACALL WRITE_COM
246
247 MOV R6,#06 ;显示DP-51S
248 MOV DPTR,#TABLE1 ;读取DP-51S数据表地址
249 DISP1:
250 CLR A
251 MOVC A,@A+DPTR
252 ACALL WRITE_DAT
253 INC DPTR
254 DJNZ R6,DISP1
255
256 MOV A,#0C2H ;第二行第二位开始显示
257 ACALL WRITE_COM
258
259 MOV R6,#13 ;显示ZLG2003年3月26日
260 MOV DPTR,#TABLE2 ;读取数据表2地址
261 DISP2:
262 CLR A
263 MOVC A,@A+DPTR
264 ACALL WRITE_DAT
265 INC DPTR
266 DJNZ R6,DISP2
267
268
269 DISP_LOOP:
270 MOV A,#07H ;设置左移模式
271 ACALL WRITE_COM
272 MOV A,#8FH ;从第一行第16位开始
273 ACALL WRITE_COM
274
275 MOV R6,#16 ;左移16个 空格
276 DISP_LEFT:
277 MOV A,#10H
278 ACALL WRITE_DAT
279 ACALL DELAY ;延时
280 ACALL DELAY
281 ACALL DELAY
282 ACALL DELAY
283 ACALL DELAY
284 ACALL DELAY
285 ACALL DELAY
286 ACALL DELAY
287 ACALL DELAY
288 ACALL DELAY
289 ACALL DELAY
290 ACALL DELAY
291 DJNZ R6,DISP_LEFT
292
293 MOV A,#05H ;设置右移模式
294 ACALL WRITE_COM
295 MOV A,#80H ;从第一行第1位开始
296 ACALL WRITE_COM
297
298 MOV R6,#16
299 DISP_RIGHT:
300 MOV A,#10H
301 ACALL WRITE_DAT
C51 COMPILER V7.09 TEST 08/10/2005 00:27:29 PAGE 6
302 ACALL DELAY ;延时
303 ACALL DELAY
304 ACALL DELAY
305 ACALL DELAY
306 ACALL DELAY
307 ACALL DELAY
308 ACALL DELAY
309 ACALL DELAY
310 ACALL DELAY
311 ACALL DELAY
312 ACALL DELAY
313 ACALL DELAY
314 DJNZ R6,DISP_RIGHT
315
316 SJMP DISP_LOOP ;循环移动*/
317 /*************************************************************************************************
318 * FUNCTION NAME:void delay(unsigned char time) *
319 *`CREATE DATE :2004.12.20 *
320 * CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
321 * MODEIFY DATE :2005.6.2 *
322 * INPUT :char channel *
323 * OUTPUT :None *
324 * RETURN :ADresult *
325 * Global Variable:ADresult *
326 *************************************************************************************************/
327 void test_lcd()
328 {
329 1 unsigned char i;
330 1 WR_COM=0x00;
331 1 delay(255);
332 1 delay(255);
333 1 for(i=0;i<16;i++)
334 1 {
335 2 WR_DAT=TABLE1[i];
336 2 delay(255);
337 2 delay(255);
338 2 }
339 1 WR_COM=0xc0;
340 1 delay(255);
341 1 delay(255);
342 1 for(i=0;i<4;i++)
343 1 {
344 2 WR_DAT=TABLE2[i];
345 2 delay(255);
346 2 delay(255);}
347 1 /* for(i=0;i<13;i++)
348 1 {
349 1 WR_DAT=TABLE3[i];
350 1 delay(255);
351 1 delay(255);
352 1 }*/
353 1 }
354 /*************************************************************************************************
355 * FUNCTION NAME:void delay(unsigned char time) *
356 *`CREATE DATE :2004.12.20 *
357 * CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
358 * MODEIFY DATE :2005.6.2 *
359 * INPUT :char channel *
360 * OUTPUT :None *
361 * RETURN :ADresult *
362 * Global Variable:ADresult *
363 *************************************************************************************************/
C51 COMPILER V7.09 TEST 08/10/2005 00:27:29 PAGE 7
364 //;初始化液晶模块
365 void init_lcd()
366 {
367 1 unsigned char i;
368 1 WR_COM=0x38; //设置为8位数据总线,16*2,5*7点阵
369 1 for(i=0;i<50;i++)
370 1 delay(255);
371 1 WR_COM=0x01; //清屏幕
372 1 for(i=0;i<50;i++)
373 1 delay(255);
374 1 WR_COM=0x06; //光标移动,显示区不移动,读写操作后AC加1
375 1 for(i=0;i<50;i++)
376 1 delay(255);
377 1 WR_COM=0x0c;
378 1 }
379 /*************************************************************************************************
380 * FUNCTION NAME:void delay(unsigned char time) *
381 *`CREATE DATE :2004.12.20 *
382 * CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
383 * MODEIFY DATE :2005.6.2 *
384 * INPUT :char channel *
385 * OUTPUT :None *
386 * RETURN :ADresult *
387 * Global Variable:ADresult *
388 *************************************************************************************************/
389 void init_cgram()
390 {
391 1 unsigned char i;
392 1 //;设置自定义字符
393 1 WR_COM=0x40;
394 1 for(i=0;i<24;i++)
395 1 {
396 2 WR_DAT=CGRAM_TABLE[i];
397 2 }
398 1 for(i=0;i<40;i++)
399 1 delay(255);
400 1 }
401 /*************************************************************************************************
402 * FUNCTION NAME:void delay(unsigned char time) *
403 *`CREATE DATE :2004.12.20 *
404 * CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
405 * MODEIFY DATE :2005.6.2 *
406 * INPUT :char channel *
407 * OUTPUT :None *
408 * RETURN :ADresult *
409 * Global Variable:ADresult *
410 *************************************************************************************************/
411 void clr_lcd()
412 {
413 1 WR_COM=0x01;
414 1 delay(255);
415 1 delay(255);
416 1 }
417 /*************************************************************************************************
418 * FUNCTION NAME:void delay(unsigned char time) *
419 *`CREATE DATE :2004.12.20 *
420 * CREATED BY :Wan Wen Lue ,ChongQing Institute of Technology *
421 * MODEIFY DATE :2005.6.2 *
422 * INPUT :char channel *
423 * OUTPUT :None *
424 * RETURN :ADresult *
425 * Global Variable:ADresult *
C51 COMPILER V7.09 TEST 08/10/2005 00:27:29 PAGE 8
426 *************************************************************************************************/
427 void printf_lcd(unsigned char StartPosition,char *string,char len)
428 {
429 1 char i;
430 1 clr_lcd();
431 1 WR_COM=StartPosition;
432 1 delay(255);
433 1 delay(255);
434 1 for(i=0;i<len;i++)
435 1 {
436 2 WR_DAT=*string;
437 2 string++;
438 2 delay(255);
439 2 delay(255);
440 2 }
441 1
442 1 }
443
444
445
446
447
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 839 ----
CONSTANT SIZE = 73 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 11 20
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -