📄 lcd.lst
字号:
526 1 else lcd_busy=1;
527 1
528 1
529 1 LCDR=1;LCDCD=1; //LCDCE=0;
530 1 xspdelay(1);
531 1
532 1 P5=i;
533 1 xspdelay(3);
534 1 LCDW=0;
535 1
536 1 LCDW=1;
537 1 P5=0xaa;
538 1 xspdelay(1);
539 1
540 1 EA=1;
541 1 }
542
543
544 void lcdint(void)
545 {
C51 COMPILER V7.50 LCD 04/10/2009 16:27:31 PAGE 10
546 1 uchar i;
547 1 LCD_PORT_Init();
548 1
549 1 wlcdi(0x40);
550 1 wlcdd(0x30);
551 1 wlcdd(0x87);
552 1 wlcdd(0x07);
553 1
554 1 wlcdd(40);
555 1 wlcdd(0x4c);
556 1 wlcdd(240);
557 1 wlcdd(40);
558 1 wlcdd(0x00);
559 1
560 1 wlcdi(0x44);
561 1 wlcdd(0x0);
562 1 wlcdd(0x0);
563 1 wlcdd(240);
564 1 wlcdd(0x80);wlcdd(0x25);wlcdd(240);
565 1 wlcdd(0);wlcdd(0);wlcdd(0);wlcdd(0);
566 1
567 1 wlcdi(0x59);
568 1 wlcdd(0x14);//04
569 1
570 1
571 1
572 1 wlcdi(0x5b);
573 1 wlcdd(0x0d);//d
574 1
575 1 wlcdi(0x46);
576 1 wlcdd(0);
577 1 wlcdd(0);
578 1
579 1 wlcdi(0x5a);
580 1 wlcdd(0);
581 1
582 1 wlcdi(0x4c);
583 1 wlcdi(0x42);
584 1 while(0){
585 2 wlcdi(0x46);
586 2 wlcdd(0);
587 2 wlcdd(0);
588 2 wlcdi(0x42);
589 2 wlcdd(0xaa);
590 2
591 2 wlcdi(0x5a);
592 2 wlcdd(0x4);
593 2
594 2 wlcdi(0x46);
595 2 wlcdd(0);
596 2 wlcdd(0);
597 2 wlcdi(0x43);
598 2 i=rlcdd();
599 2 }
600 1 //STB=0;
601 1 //wlcdi(0x59);
602 1 //wlcdd(0x54);
603 1
604 1
605 1 // wlcdi(0x42);
606 1 // wlcdd(65);
607 1 // wlcdd(66);
C51 COMPILER V7.50 LCD 04/10/2009 16:27:31 PAGE 11
608 1 // wlcdd(67);
609 1
610 1 }
611
612
613 //0 关显示
614 //1 1,2屏显示
615 //2 1屏显示
616 void lcdzt(uchar i)
617 {
618 1 if (i==0) {wlcdi(0x59);wlcdd(0x00);}
619 1 if (i==1) {wlcdi(0x59);wlcdd(0x14);}
620 1 if (i==2) {wlcdi(0x59);wlcdd(0x04);}
621 1 }
622 void lcdclr(void)
623 {
624 1 int i;
625 1 uchar ii,bz;
626 1 lcdzt(0);
627 1 //写入标志点
628 1 wlcdi(0x46);
629 1 wlcdd(0xff);
630 1 wlcdd(0x4a);
631 1 wlcdi(0x42);
632 1 wlcdd(2);
633 1
634 1
635 1 for(ii=0;ii<3;ii++)
636 1 {
637 2 wlcdi(0x46);
638 2 wlcdd(0x80);
639 2 wlcdd(0x25);
640 2 wlcdi(0x4c);
641 2 wlcdi(0x42);
642 2
643 2 for (i=1; i<= 9600;i++)
644 2 {
645 3 if(ii==0) wlcdd(0);
646 3 if(ii==1) bwlcdd(0);
647 3 if(ii==2) {bwlcdi(0x42);bwlcdd(0);}
648 3
649 3 }
650 2
651 2 wlcdi(0x46);
652 2 wlcdd(0xff);
653 2 wlcdd(0x4a);
654 2 wlcdi(0x43);
655 2 bz=rlcdd(); //读标志点
656 2 if ((bz&0x02)!=0x02)
657 2 {
658 3 wlcdi(0x46);
659 3 wlcdd(0xff);
660 3 wlcdd(0x4a);
661 3 wlcdi(0x42);
662 3 wlcdd(0); //消除标志点,退出循环
663 3 ii=6;
664 3
665 3 }
666 2 }
667 1 //写入标志点
668 1 wlcdi(0x46);
669 1 wlcdd(0x7f);
C51 COMPILER V7.50 LCD 04/10/2009 16:27:31 PAGE 12
670 1 wlcdd(0x25);
671 1 wlcdi(0x42);
672 1 wlcdd(1);
673 1 for(ii=0;ii<3;ii++)
674 1 {
675 2 wlcdi(0x46);
676 2 wlcdd(0x00);
677 2 wlcdd(0x00);
678 2 wlcdi(0x4c);
679 2 wlcdi(0x42);
680 2 for (i=1; i<= 9600;i++)//1920 3840
681 2 {
682 3 if(ii==0) wlcdd(0);
683 3 if(ii==1) bwlcdd(0);
684 3 if(ii==2) {bwlcdi(0x42);bwlcdd(0);}
685 3 }
686 2
687 2 wlcdi(0x46);
688 2 wlcdd(0x7f);
689 2 wlcdd(0x25);
690 2 wlcdi(0x43);
691 2 bz=rlcdd(); //读标志点
692 2 if ((bz&0x01)!=0x01)
693 2 {
694 3 wlcdi(0x46);
695 3 wlcdd(0x7f);
696 3 wlcdd(0x25);
697 3 wlcdi(0x42);
698 3 wlcdd(0); //消除标志点,退出循环
699 3 ii=6;
700 3
701 3 }
702 2 }
703 1 lcdzt(1);
704 1 }
705 void xspdelay(unsigned int x)
706 {
707 1 while(x--){}
708 1 }
709
710 void lcddw(uchar h,l)
711 {
712 1
713 1 lcdadd=h*800+l*2+40;//640
714 1 wlcdi(0x46);
715 1 wlcdd(lcdadd%256);
716 1 wlcdd(lcdadd/256);
717 1
718 1
719 1 }
720
721 //input汉字
722 void lcdhz(uchar i)
723 {
724 1 int ii;
725 1 //if(i==0) lcdadd=lcdadd-40;
726 1 for (ii=0;ii<=(15+(i==0)*4);ii++){
727 2 wlcdi(0x42);
728 2 if (i!=0){wlcdd(hzpm[i][ii*2]);wlcdd(hzpm[i][ii*2+1]);}
729 2 else {wlcdd(0);wlcdd(0);}
730 2
731 2
C51 COMPILER V7.50 LCD 04/10/2009 16:27:31 PAGE 13
732 2 lcdadd=lcdadd+40;//30
733 2 wlcdi(0x46);
734 2 wlcdd(lcdadd%256);
735 2 wlcdd(lcdadd/256);
736 2 }
737 1 lcdadd=lcdadd-638-(i==0)*160;//478
738 1 wlcdi(0x46);
739 1 wlcdd(lcdadd%256);
740 1 wlcdd(lcdadd/256);
741 1
742 1 }
743
744 //数字输入键
745 void lcdsz(uchar h,l,k) //h>hang shu l >lie shu k>kuan du
746 {
747 1
748 1 uchar i,j,ii;
749 1 lcdadd=h*800+l;
750 1 wlcdi(0x46);
751 1 wlcdd(lcdadd%256);
752 1 wlcdd(lcdadd/256);
753 1
754 1 for (i=0;i<k;i++)
755 1 {
756 2 if ((dispbuf[i]<24)||(dispbuf[i]>127)) dispbuf[i]=' ';//44
757 2 j=dispbuf[i];
758 2 for (ii=0;ii<16;ii++)
759 2 {
760 3 wlcdi(0x42);
761 3 wlcdd(ascpm[j][ii]);
762 3
763 3
764 3 lcdadd=lcdadd+40; //30
765 3 wlcdi(0x46);
766 3 wlcdd(lcdadd%256);
767 3 wlcdd(lcdadd/256);
768 3 }
769 2 lcdadd=lcdadd-639;
770 2 wlcdi(0x46);
771 2 wlcdd(lcdadd%256);
772 2 wlcdd(lcdadd/256);
773 2
774 2 }
775 1 }
776
777 void lcdxsz(uchar h,l,k) //h>hang shu l >lie shu k>kuan du
778 {
779 1
780 1 uchar i,j,ii;
781 1 lcdadd=h*320+l;//-((h%2)==1)*80+l;//320 400
782 1 wlcdi(0x46);
783 1 wlcdd(lcdadd%256);
784 1 wlcdd(lcdadd/256);
785 1
786 1 for (i=0;i<k;i++)
787 1 {
788 2
789 2 j=dispbuf[i]*(dispbuf[i]>39);
790 2 for (ii=0;ii<8;ii++)
791 2 {
792 3 wlcdi(0x42);
793 3 wlcdd(xascpm[j-39][ii]);//30
C51 COMPILER V7.50 LCD 04/10/2009 16:27:31 PAGE 14
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -