📄 lcd.lst
字号:
510 *************************************************************************
511 说明:入口参数:图画的点数组指针
512 出口参数:无
513 ************************************************************************/
514
515 void LCD_PutBMP(unsigned char *ptr)
516 {unsigned char i,j;
517 1 for(i=0;i<0x20;i++)
518 1 {for(j=0;j<8;j++)
519 2 {
520 3 LCD_WriteCommand(0x80+i);
521 3 LCD_WriteCommand(0x80+j);
522 3 LCD_WriteData(*ptr);
523 3 ptr++;
524 3 LCD_WriteData(*ptr);
525 3 ptr++;
526 3 }
527 2 }
528 1 for(i=0;i<0x20;i++)
529 1 {for(j=0;j<8;j++)
530 2 {
531 3 LCD_WriteCommand(0x80+i);
532 3 LCD_WriteCommand(0x80+j+8);
533 3 LCD_WriteData(*ptr++);
534 3 LCD_WriteData(*ptr++);
535 3 }
536 2 }
537 1 }
538
539 /************************************************************************
540 -------图形方式下WINDOWS窗口子程序---------------------------------------
541 *************************************************************************
542 说明:入口参数:TITLE OF THE WINDOWS
543 出口参数:无
544 ************************************************************************/
545 void WindowsFront(unsigned char *ptr)
546 {
547 1 LCD_CLEAR();
548 1 Delay1ms(100);
549 1 LCD_ChangMode(1);
550 1 LCD_PutBMP(WindowsFronts);
551 1 Delay1ms(100);
C51 COMPILER V8.02 LCD 06/07/2008 19:32:58 PAGE 10
552 1 LCD_ChangMode(0);
553 1 LCD_CURSOR_OFF();
554 1 LCD_Printf(1,1,ptr);
555 1 }
556
557
558 /***********************************************************************
559 ------变量值显示函数-------------------------
560 说明:将变量的值显示到指定的位置
561 入口参数:显示起始位置,要显示的变量
562 出口参数:无
563 ***********************************************************************/
564 void LCD_Put_Varib(unsigned char x,unsigned char y, float variable)
565 {
566 1 unsigned char i;
567 1 unsigned char dispbuf[7]={0};
568 1
569 1 LCD_Goto ( (x-1), y );
570 1
571 1 if(variable<0)
572 1 {
573 2 variable=-variable;// print "-"
574 2 LCD_WriteData(45);
575 2 }
576 1 LCD_Goto(x,y);
577 1
578 1 dispbuf[0]=variable/10000; // divide the data into bit;
579 1 dispbuf[1]=(variable-dispbuf[0]*10000)/1000;
580 1 dispbuf[2]=(variable-dispbuf[0]*10000-dispbuf[1]*1000)/100;
581 1 dispbuf[3]=(variable-dispbuf[0]*10000-dispbuf[1]*1000-dispbuf[2]*100)/10;
582 1 dispbuf[4]=variable-dispbuf[0]*10000-dispbuf[1]*1000-dispbuf[2]*100-dispbuf[3]*10;
583 1 dispbuf[5]=(variable-dispbuf[0]*10000-dispbuf[1]*1000-dispbuf[2]*100-dispbuf[3]*10-dispbuf[4])/0.1;
584 1 dispbuf[6]=(variable-dispbuf[0]*10000-dispbuf[1]*1000-dispbuf[2]*100-dispbuf[3]*10-dispbuf[4]-dispbuf[5]*
-0.1)/0.01;
585 1
586 1
587 1 for(i=0;i<6;i++) // 找出第一个不是0的位数;
588 1 {
589 2 if(dispbuf[i]==0)
590 2 continue;
591 2 else
592 2 break;
593 2 }
594 1 for(;i<7;i++)
595 1 {
596 2
597 2 if(dispbuf[i]!=0)
598 2 {
599 3 dispbuf[i]=tbl[ dispbuf[i] ];
600 3 LCD_Goto(x, (y+i ));
601 3 LCD_WriteData(dispbuf[i]);
602 3 }
603 2 }
604 1 }
605
606 /***************************************************/
607 //---------------清屏子函数--------------------------
608 //入口参数:无
609 //出口参数:无
610 /***************************************************/
611 void LCD_Clear (void)
612 {
C51 COMPILER V8.02 LCD 06/07/2008 19:32:58 PAGE 11
613 1 LCD_CLEAR();
614 1 Delay1ms(100);
615 1 }
616 /***************************************************/
617 //---------------关闭光标函数--------------------------
618 //入口参数:无
619 //出口参数:无
620 /***************************************************/
621 void LCD_CursorOff(void)
622 {
623 1 LCD_CURSOR_OFF();
624 1 }
625
626
627
628 /*
629
630 main()
631 {
632 unsigned char i;
633 // unsigned char hz[]="十八组”;
634 config();
635 LCD_Init();
636 LCD_ChangMode(1);
637 LCD_PutPiex(6,7);
638 // LCD_ChangMode(0);
639 // LCD_Printf(1,1,"lcd init");
640 // LCD_CURSOR_OFF();
641
642 // for(i=0;i<10;i++)
643 // Delay1ms(200);
644 // LCD_ChangMode(1);
645 // LCD_PutPiex(6,7);
646 // for(i=0;i<10;i++)
647 // Delay1ms(200);
648
649 LCD_ChangMode(0);
650 LCD_CURSOR_OFF();
651 LCD_PutHZ(1,1,"十" );
652 LCD_PutHZ(1,2,"八");
653 LCD_PutHZ(1,3,"组");
654 while(1);
655 while(1);
656 /*
657 unsigned char i;
658 unsigned char num[4];
659 num[2]='%';num[3]=0;
660 config();
661 LCD_Init();
662 LCD_ChangMode(1);
663 LCD_PutBMP(screen0);
664 Delay1ms(1);
665 LCD_ChangMode(0);
666 LCD_CURSOR_OFF();
667 LCD_Printf(4,1,"Copyright Team18");
668 for(i=0;i<5;i++)
669 Delay1ms(200);
670 LCD_CLEAR();
671 for(i=0;i<10;i++)
672 {LCD_Printf(1,1,"System Star...");
673 Delay1ms(100);
674 }
C51 COMPILER V8.02 LCD 06/07/2008 19:32:58 PAGE 12
675 for(i=0;i<64;i++)
676 {LCD_Printf(2,1,"Hardware Init.");
677 switch(i%4)
678 {
679 case 0: {LCD_PutChar(2,8,'-');Delay1ms(80);break;}
680 case 1: {LCD_PutChar(2,8,92);Delay1ms(80);break;}
681 case 2: {LCD_PutChar(2,8,'|');Delay1ms(80);break;}
682 case 3: {LCD_PutChar(2,8,'/');Delay1ms(80);break;}
683 }
684 }
685 LCD_Printf(3,1,"C8051F020 CPU!");
686 for(i=0;i<5;i++)
687 Delay1ms(100);
688 LCD_Printf(3,1,"OK!!! ");
689 for(i=0;i<5;i++)
690 Delay1ms(100);
691 LCD_Printf(4,1,"SYSTEM CLOCK!!");
692 for(i=0;i<5;i++)
693 Delay1ms(100);
694 LCD_Printf(4,1,"OK!!!8M ");
695 for(i=0;i<5;i++)
696 Delay1ms(100);
697 LCD_CLEAR();
698 for(i=0;i<=100;i++)
699 {
700 LCD_Printf(1,1,"MEMORY TEST.");
701 Delay1ms(40);
702 num[0]=i/10+0x30;
703 num[1]=i%10+0x30;
704 LCD_Printf(1,7,num);
705 Delay1ms(10);
706 }
707 LCD_Printf(2,1,"Basic Mem 256B");
708 Delay1ms(100);
709 LCD_Printf(3,1,"Exten Mem 4096B");
710 Delay1ms(100);
711 LCD_Printf(4,1,"Flash Mem 64KB");
712 for(i=0;i<10;i++)
713 Delay1ms(150);
714 LCD_CLEAR();
715 for(i=0;i<5;i++)
716 {
717 Delay1ms(100);
718 LCD_Printf(1,1,"128*64 LCD..");
719 }
720 LCD_Printf(1,7,"OK");
721 for(i=0;i<10;i++)
722 Delay1ms(100);
723 LCD_Printf(2,1,"KEYBOARD TEST!");
724 for(i=0;i<5;i++)
725 Delay1ms(100);
726 LCD_Printf(2,1,"ERR!!!!! ");
727 for(i=0;i<5;i++)
728 Delay1ms(100);
729 LCD_Printf(3,1,"SYSTEM TEST END");
730 LCD_Printf(4,1," WELCOME!!! ");
731 for(i=0;i<10;i++)
732 Delay1ms(200);
733 LCD_CLEAR();
734 Delay1ms(20);
735 LCD_ChangMode(1);
736 LCD_PutBMP(screen2);
C51 COMPILER V8.02 LCD 06/07/2008 19:32:58 PAGE 13
737 Delay1ms(20);
738 LCD_ChangMode(0);
739 LCD_WriteCommand(0x0f);
740 LCD_Goto(4,2);
741 Delay1ms(200);
742 Delay1ms(200);
743 Delay1ms(200);
744 WindowsFront(" 超声测距系统 ");
745 while(1)
746 {_nop_();}
747
748 }
749
750 */
751
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2490 ----
CONSTANT SIZE = 1073 ----
XDATA SIZE = 1024 ----
PDATA SIZE = ---- ----
DATA SIZE = 3 75
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 + -