📄 12864bk.lst
字号:
352 {
353 1 uchar pos;
354 1 if (X==1)
355 1 {X=0x80;}
356 1 else if (X==2)
357 1 {X=0x90;}
358 1 else if (X==3)
359 1 {X=0x88;}
360 1 else if (X==4)
361 1 {X=0x98;}
362 1 pos = X+Y ;
363 1
364 1 lcd_wcmd(pos); //显示地址
365 1 }
C51 COMPILER V7.10 12864BK 08/02/2009 18:45:50 PAGE 7
366 /*********************************************************
367 * *
368 * 闪烁函数 *
369 * *
370 *********************************************************/
371 void lcdflag()
372 {
373 1 lcd_wcmd(0x08);
374 1 delay(400);
375 1 lcd_wcmd(0x0c);
376 1 delay(400);
377 1 lcd_wcmd(0x08);
378 1 delay(400);
379 1 lcd_wcmd(0x0c);
380 1 delay(400);
381 1 lcd_wcmd(0x08);
382 1 delay(200);
383 1 lcd_wcmd(0x0c);
384 1 delay(5);
385 1 lcd_wcmd(0x01);
386 1 delay(5);
387 1 }
388 /*********************************************************
389 * *
390 * 图形显示 *
391 * *
392 *********************************************************/
393 void photodisplay(uchar *bmp)
394 {
395 1 uchar i,j;
396 1
397 1 lcd_wcmd(0x34); //写数据时,关闭图形显示
398 1
399 1 for(i=0;i<32;i++)
400 1 {
401 2 lcd_wcmd(0x80+i); //先写入水平坐标值
402 2 lcd_wcmd(0x80); //写入垂直坐标值
403 2 for(j=0;j<16;j++) //再写入两个8位元的数据
404 2 lcd_wdat(*bmp++);
405 2 delay1(1);
406 2 }
407 1
408 1 for(i=0;i<32;i++)
409 1 {
410 2 lcd_wcmd(0x80+i);
411 2 lcd_wcmd(0x88);
412 2 for(j=0;j<16;j++)
413 2 lcd_wdat(*bmp++);
414 2 delay1(1);
415 2 }
416 1 lcd_wcmd(0x36); //写完数据,开图形显示
417 1 }
418 /*********************************************************
419 * *
420 * 清屏函数 *
421 * *
422 *********************************************************/
423 void clr_screen()
424 {
425 1 lcd_wcmd(0x34); //扩充指令操作
426 1 delay(5);
427 1 lcd_wcmd(0x30); //基本指令操作
C51 COMPILER V7.10 12864BK 08/02/2009 18:45:50 PAGE 8
428 1 delay(5);
429 1 lcd_wcmd(0x01); //清屏
430 1 delay(5);
431 1 }
432 /**********************************************************
433 ; 显示字符表代码
434 **********************************************************/
435 void bytecode()
436 {
437 1 uchar s;
438 1 clr_screen(); //清屏
439 1 lcd_wcmd(0x80); //设置显示位置为第一行
440 1 for(s=0;s<16;s++)
441 1 {
442 2 lcd_wdat(0x30+s);
443 2 }
444 1 lcd_wcmd(0x90); //设置显示位置为第二行
445 1 for(s=0;s<16;s++)
446 1 {
447 2 lcd_wdat(0x40+s);
448 2 }
449 1 lcd_wcmd(0x88); //设置显示位置为第三行
450 1 for(s=0;s<16;s++)
451 1 {
452 2 lcd_wdat(0x50+s);
453 2 }
454 1 lcd_wcmd(0x98); //设置显示位置为第四行
455 1 for(s=0;s<16;s++)
456 1 {
457 2 lcd_wdat(0x60+s);
458 2 }
459 1 }
460 /*********************************************************
461 * *
462 * 主函数 *
463 * *
464 *********************************************************/
465 void main()
466 {
467 1 uchar i;
468 1 delay(100); //上电,等待稳定
469 1 lcd_init(); //初始化LCD
470 1 while(1)
471 1 {
472 2 lcd_pos(1,0); //设置显示位置为第一行
473 2 for(i=0;i<16;i++)
474 2 {
475 3 lcd_wdat(DIS1[i]);
476 3 delay(30);
477 3 }
478 2
479 2 lcd_pos(2,0); //设置显示位置为第二行
480 2 for(i=0;i<16;i++)
481 2 {
482 3 lcd_wdat(DIS2[i]);
483 3 delay(30);
484 3 }
485 2 lcd_pos(3,0); //设置显示位置为第三行
486 2 for(i=0;i<16;i++)
487 2 {
488 3 lcd_wdat(DIS3[i]);
489 3 delay(30);
C51 COMPILER V7.10 12864BK 08/02/2009 18:45:50 PAGE 9
490 3 }
491 2 lcd_pos(4,0); //设置显示位置为第四行
492 2 for(i=0;i<16;i++)
493 2 {
494 3 lcd_wdat(DIS4[i]);
495 3 delay(30);
496 3 }
497 2 delay(1000);
498 2 lcdflag();
499 2 clr_screen(); //清屏
500 2 photodisplay(Photo1); //显示图片1
501 2 delay(2000);
502 2 clr_screen(); //清屏
503 2 photodisplay(Photo2); //显示图片2
504 2 delay(2000);
505 2 bytecode(); //显示字符表代码
506 2 delay(2000);
507 2 clr_screen();
508 2 }
509 1 }
510 /*********************************************************/
511
512
513
514
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 715 ----
CONSTANT SIZE = 2116 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -