📄 mra8806.lst
字号:
588 /********************************************/
589 // 参数类型有待修改
590 void Dis_Linexy(unsigned int x0,uchar y0,unsigned int xt,uchar yt,uchar att)
591 {
592 1 int t;
593 1 int xerr=0,yerr=0,delta_x,delta_y,distance;
594 1 int incx,incy;
595 1 unsigned int row,col;
596 1 Lcd_Graphic();
597 1 delta_x = xt-x0; //计算坐标增量
598 1 delta_y = yt-y0;
599 1 col = x0;
600 1 row = y0;
601 1 if(delta_x>0) incx=1; //设置单步方向
602 1 else
603 1 {
604 2 if( delta_x==0 ) incx=0; //垂直线
605 2 else {incx=-1;delta_x=-delta_x;}
606 2 }
607 1 if(delta_y>0) incy=1;
608 1 else
609 1 {
610 2 if( delta_y==0 ) incy=0; //水平线
611 2 else {incy=-1;delta_y=-delta_y;}
612 2 }
613 1 if( delta_x > delta_y ) distance=delta_x; //选取基本增量坐标轴
C51 COMPILER V7.50 MRA8806 02/21/2009 10:27:05 PAGE 11
614 1 else distance=delta_y;
615 1
616 1 for( t=0;t <= distance+1; t++ )
617 1 { //画线输出
618 2 Dis_Point((unsigned int)col,row,att); //画点
619 2 xerr += delta_x ;
620 2 yerr += delta_y ;
621 2
622 2 if( xerr > distance )
623 2 {
624 3 xerr-=distance;
625 3 col+=incx;
626 3 }
627 2 if( yerr > distance )
628 2 {
629 3 yerr-=distance;
630 3 row+=incy;
631 3 }
632 2 }
633 1 }
634 void Dis_Text(uchar px,uchar py,uchar count,uchar scale,uchar *p)
635 {
636 1 uchar i;
637 1 //Access_Page1();
638 1 //Only_Show_Page1();
639 1 LCD_Text();
640 1 LCD_FontSize(scale);
641 1 LCD_GotoXY(px,py);
642 1 Wrr_Addr(0xb0);
643 1
644 1 for(i=0;i<count;i++)
645 1 {
646 2 Wrr_Data(p[i]);
647 2 delay1ms(5);
648 2 }
649 1 /*LCD_GotoXY(0,16);
650 1 Wrr_Addr(0xb0);
651 1 for(i=0;i<40;i++)
652 1 {
653 1 Wrr_Data(sRAiO2[i]);
654 1 delay1ms(1);
655 1 }
656 1
657 1 LCD_Inv();
658 1 Wrr_Addr(0xb0);
659 1 for(i=0;i<21;i++)
660 1 {
661 1 Wrr_Data(sRAiO3[i]);
662 1 delay1ms(1);
663 1 }
664 1 LCD_NoInv();
665 1 LCD_GotoXY(0,64);
666 1 Wrr_Addr(0xb0);
667 1 for(i=0;i<40;i++)
668 1 {
669 1 Wrr_Data(sRAiO2[i]);
670 1 delay1ms(1);
671 1 }
672 1
673 1 LCD_FontSize(15);
674 1 LCD_GotoXY(0,80);
675 1 Wrr_Addr(0xb0);
C51 COMPILER V7.50 MRA8806 02/21/2009 10:27:05 PAGE 12
676 1 for(i=0;i<12;i++)
677 1 {
678 1 Wrr_Data(sRAiO5[i]);
679 1 delay1ms(5);
680 1 }
681 1 LCD_FontSize(0);
682 1
683 1 LCD_GotoXY(0,160);
684 1 Wrr_Addr(0xb0);
685 1 for(i=0;i<40;i++)
686 1 {
687 1 Wrr_Data(i);
688 1 delay1ms(1);
689 1 }
690 1
691 1 LCD_Bold();
692 1 Wrr_Addr(0xb0);
693 1 for(i=40;i<80;i++)
694 1 {
695 1 Wrr_Data(i);
696 1 delay1ms(1);
697 1 }
698 1 /*LCD_NoBold();
699 1
700 1 Wrr_Addr(0xb0);
701 1 for(i=40;i<120;i++)
702 1 {
703 1 Wrr_Data(i);
704 1 delay1ms(1);
705 1 }*/
706 1 }
707 void Dis_DDRAM1_Pic(void)
708 {
709 1 int i;
710 1 Access_Page1();
711 1 //Only_Show_Page1();
712 1 Lcd_Graphic();
713 1 LCD_GotoXY(0,0);
714 1 Wrr_Addr(0xb0);
715 1 for(i=0;i<1120;i++)
716 1 Wrr_Data(gImage_pic1[i]);
717 1 do{
718 2 _nop_();
719 2 _nop_();
720 2 }while(Read_Status()&0x80);
721 1 }
722 void Dis_Pos_Pic(uchar px,uchar py,uint width,uchar height,uchar *p)
723 {
724 1 uchar i,j,count;
725 1 count = width>>3;
726 1 //Access_Page1();
727 1 //Only_Show_Page1();
728 1 Lcd_Graphic();
729 1 for(i=0;i<height;i++)
730 1 {
731 2 LCD_GotoXY(px,(py+i));
732 2 Wrr_Addr(0xb0);
733 2 for(j=0;j<count;j++)
734 2 //Wrr_Data(gImage_pic1[(i*count+j)]);
735 2 Wrr_Data(p[i*count+j]);
736 2 }
737 1 }
C51 COMPILER V7.50 MRA8806 02/21/2009 10:27:05 PAGE 13
738 /*void Dis_DDRAM2_Pic(void)
739 {
740 int i;
741 Access_Page2();
742 //Only_Show_Page2();
743 Lcd_Graphic();
744 LCD_GotoXY(0,0);
745 Wrr_Addr(0xb0);
746 for(i=0;i<9600;i++)
747 Wrr_Data(gImage_pic2[i]);
748 do{
749 _nop_();
750 _nop_();
751 }while(Read_Status()&0x80);
752 }*/
753
754 void Initiate(void)
755 {
756 1 Wr_Data(0,0);
757 1 _nop_();
758 1
759 1 Wr_Data(1,4);
760 1 _nop_();
761 1
762 1 Wr_Data(3,0);
763 1 _nop_();
764 1
765 1 Wr_Data(0x0f,0);
766 1
767 1 _nop_();
768 1 Wr_Data(0x10,0);
769 1 _nop_();
770 1
771 1
772 1 Wr_Data(0x11,0);
773 1 _nop_();
774 1
775 1 Wr_Data(0x12,0x11);
776 1 _nop_();
777 1
778 1 Wr_Data(0x20,0x27);
779 1 _nop_();
780 1
781 1 Wr_Data(0x21,0x27);
782 1 _nop_();
783 1 Wr_Data(0x30,0xef);
784 1 _nop_();
785 1
786 1 Wr_Data(0x31,0xef);
787 1 _nop_();
788 1
789 1 Wr_Data(0x40,0);
790 1 _nop_();
791 1
792 1 Wr_Data(0x50,0);
793 1 _nop_();
794 1
795 1
796 1 Wr_Data(0x60,0);
797 1 _nop_();
798 1
799 1 Wr_Data(0x61,0);
C51 COMPILER V7.50 MRA8806 02/21/2009 10:27:05 PAGE 14
800 1 _nop_();
801 1 Wr_Data(0x62,0);
802 1 _nop_();
803 1
804 1 Wr_Data(0x70,0);
805 1 _nop_();
806 1
807 1 Wr_Data(0x71,0);
808 1 _nop_();
809 1
810 1 Wr_Data(0x72,0);
811 1 _nop_();
812 1
813 1 Wr_Data(0x80,0);
814 1 _nop_();
815 1 Wr_Data(0x90,0);
816 1 _nop_();
817 1
818 1 Wr_Data(0xa0,0);
819 1 _nop_();
820 1
821 1 Wr_Data(0xa1,0);
822 1 _nop_();
823 1
824 1 Wr_Data(0xa2,0);
825 1 _nop_();
826 1
827 1 Wr_Data(0xa3,0);
828 1 _nop_();
829 1
830 1 Wr_Data(0xa4,0);
831 1 _nop_();
832 1
833 1 Wr_Data(0xc0,0);
834 1 _nop_();
835 1
836 1
837 1 Wr_Data(0xc1,0);
838 1
839 1 _nop_();
840 1 Wr_Data(0xc2,0);
841 1 _nop_();
842 1
843 1 Wr_Data(0xc3,0);
844 1 _nop_();
845 1
846 1 Wr_Data(0xc4,0);
847 1 _nop_();
848 1
849 1 Wr_Data(0xd0,0);
850 1
851 1
852 1 Wr_Data(0xd1,0);
853 1 _nop_();
854 1
855 1
856 1 Wr_Data(0xe0,0);
857 1 _nop_();
858 1
859 1 Wr_Data(0xf0,0);
860 1
861 1 _nop_();
C51 COMPILER V7.50 MRA8806 02/21/2009 10:27:05 PAGE 15
862 1
863 1 Wr_Data(0xf1,0);
864 1 _nop_();
865 1
866 1
867 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2114 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 65
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 + -