📄 dzkzqv12.lst
字号:
642 1 for(i=0;i<XX/2;i++)
643 1 {
644 2 for(x=XX-1;x>X1;x--)
645 2 {
646 3 dis_red[x]=dis_red[x-1];
647 3 dis_grn[x]=dis_grn[x-1];
648 3 dis_blu[x]=dis_blu[x-1];
649 3 }
650 2 dis_red[X1]=*ROMP;ROMP++;
651 2 dis_grn[X1]=*ROMP;ROMP++;
652 2 dis_blu[X1]=*ROMP;ROMP++;
653 2 for(x=0;x<X1-1;x++)
654 2 {
655 3 dis_red[x]=dis_red[x+1];
656 3 dis_grn[x]=dis_grn[x+1];
657 3 dis_blu[x]=dis_blu[x+1];
658 3 }
659 2 dis_red[X1-1]=*ROMP;ROMP++;
660 2 dis_grn[X1-1]=*ROMP;ROMP++;
661 2 dis_blu[X1-1]=*ROMP;ROMP++;
662 2 sendall();
663 2 }
664 1 delay1s(speed);
665 1 }
666 //***********************************
667 //多彩流动
668 //***************************************
669 void qcld(uchar speed)
670 {
671 1 uint j,x;
672 1 uchar rs,gs,bs;
673 1 for(j=0;j<XX;j++)
674 1 {for(x=XX-1;x>0;x--)
675 2 {
C51 COMPILER V7.50 DZKZQV12 12/04/2006 16:43:31 PAGE 12
676 3 dis_red[x]=dis_red[x-1];
677 3 dis_grn[x]=dis_grn[x-1];
678 3 dis_blu[x]=dis_blu[x-1];
679 3 }
680 2 dis_red[0]=x64cr[j];
681 2 dis_grn[0]=x64cg[j];
682 2 dis_blu[0]=x64cb[j];
683 2 sendall();
684 2 delay(speed);
685 2 }
686 1 delay1s(speed);
687 1 for(j=0;j<256;j++)
688 1 {
689 2 rs=dis_red[XX-1];
690 2 gs=dis_grn[XX-1];
691 2 bs=dis_blu[XX-1];
692 2 for(x=XX-1;x>0;x--)
693 2 {
694 3 dis_red[x]=dis_red[x-1];
695 3 dis_grn[x]=dis_grn[x-1];
696 3 dis_blu[x]=dis_blu[x-1];
697 3 }
698 2 dis_red[0]=rs;
699 2 dis_grn[0]=gs;
700 2 dis_blu[0]=bs;
701 2 sendall();
702 2 delay(speed);
703 2 }
704 1 //*******************************************
705 1 for(j=0;j<XX;j++)
706 1 {for(x=XX-1;x>0;x--)
707 2 {
708 3 dis_red[x]=dis_red[x-1];
709 3 dis_grn[x]=dis_grn[x-1];
710 3 dis_blu[x]=dis_blu[x-1];
711 3 }
712 2 dis_red[0]=0;
713 2 dis_grn[0]=0;
714 2 dis_blu[0]=0;
715 2 sendall();
716 2 delay(speed);
717 2 }
718 1 }
719 //***********************************
720 //七彩流动 一条一种颜色
721 //***************************************
722 void colld(uchar speed)
723 {
724 1 uint j,x;
725 1 uchar rs,gs,bs;
726 1 for(j=0;j<XX;j++)
727 1 {for(x=XX-1;x>0;x--)
728 2 {
729 3 dis_red[x]=dis_red[x-1];
730 3 dis_grn[x]=dis_grn[x-1];
731 3 dis_blu[x]=dis_blu[x-1];
732 3 }
733 2 dis_red[0]=col7cr[x];
734 2 dis_grn[0]=col7cg[x];
735 2 dis_blu[0]=col7cb[x];
736 2 sendall();
737 2 delay(speed);
C51 COMPILER V7.50 DZKZQV12 12/04/2006 16:43:31 PAGE 13
738 2 }
739 1 delay1s(speed);
740 1 for(j=0;j<256;j++)
741 1 {
742 2 rs=dis_red[XX-1];
743 2 gs=dis_grn[XX-1];
744 2 bs=dis_blu[XX-1];
745 2 for(x=XX-1;x>0;x--)
746 2 {
747 3 dis_red[x]=dis_red[x-1];
748 3 dis_grn[x]=dis_grn[x-1];
749 3 dis_blu[x]=dis_blu[x-1];
750 3 }
751 2 dis_red[0]=rs;
752 2 dis_grn[0]=gs;
753 2 dis_blu[0]=bs;
754 2 sendall();
755 2 delay(speed);
756 2 }
757 1 //*******************************************
758 1 for(j=0;j<XX;j++)
759 1 {for(x=XX-1;x>0;x--)
760 2 {
761 3 dis_red[x]=dis_red[x-1];
762 3 dis_grn[x]=dis_grn[x-1];
763 3 dis_blu[x]=dis_blu[x-1];
764 3 }
765 2 dis_red[0]=0;
766 2 dis_grn[0]=0;
767 2 dis_blu[0]=0;
768 2 sendall();
769 2 delay(speed);
770 2 }
771 1 }
772 //------------------------------
773 void msk_data(uchar r0,g0,b0,r1,g1,b1)
774 {
775 1 uchar i;
776 1 for(i=0;i<XX/4;i++)
777 1 {
778 2 dis_red[i]=r0;
779 2 dis_grn[i]=g0;
780 2 dis_blu[i]=b0;
781 2
782 2 dis_red[i+1]=r1;
783 2 dis_grn[i+1]=g1;
784 2 dis_blu[i+1]=b1;
785 2
786 2 dis_red[i+2]=r0;
787 2 dis_grn[i+2]=g0;
788 2 dis_blu[i+2]=b0;
789 2
790 2 dis_red[i+3]=r1;
791 2 dis_grn[i+3]=g1;
792 2 dis_blu[i+3]=b1;
793 2 //------------------------------
794 2 dis_red[i+4]=r1;
795 2 dis_grn[i+4]=g1;
796 2 dis_blu[i+4]=b1;
797 2
798 2 dis_red[i+5]=r0;
799 2 dis_grn[i+5]=g0;
C51 COMPILER V7.50 DZKZQV12 12/04/2006 16:43:31 PAGE 14
800 2 dis_blu[i+5]=b0;
801 2
802 2 dis_red[i+6]=r1;
803 2 dis_grn[i+6]=g1;
804 2 dis_blu[i+6]=b1;
805 2
806 2 dis_red[i+7]=r0;
807 2 dis_grn[i+7]=g0;
808 2 dis_blu[i+7]=b0;
809 2 }
810 1 }
811 //************************************
812 //马赛克
813 //*************************************
814 void msk(uchar speed)
815 {
816 1 msk_data(255,0,0,0,255,0);
817 1 sendall();
818 1 delay1s(speed);
819 1 msk_data(0,255,0,0,0,255);
820 1 sendall();
821 1 delay1s(speed);
822 1 msk_data(0,0,255,255,0,0);
823 1 sendall();
824 1 delay1s(speed);
825 1 msk_data(255,255,0,0,255,255);
826 1 sendall();
827 1 delay1s(speed);
828 1 msk_data(255,0,255,0,255,255);
829 1 sendall();
830 1 delay1s(speed);
831 1 msk_data(255,255,0,0,0,255);
832 1 sendall();
833 1 delay1s(speed);
834 1
835 1 }
836 //***********************************
837 //多彩流动
838 //***************************************
839 void qcldx4(uchar speed)
840 {
841 1 uint j,x;
842 1 for(j=0;j<XX/4;j++)
843 1 {
844 2 for(x=0;x<4;x++)
845 2 {
846 3 dis_red[j*4+x]=dis_red[j*4+x+1];
847 3 dis_grn[j*4+x]=dis_grn[j*4+x+1];
848 3 dis_blu[j*4+x]=dis_blu[j*4+x+1];
849 3 }
850 2 dis_red[XX-j*4-1]=x64cr[j*4];
851 2 dis_grn[XX-j*4-1]=x64cg[j*4];
852 2 dis_blu[XX-j*4-1]=x64cb[j*4];
853 2
854 2 dis_red[XX-j*4-2]=x64cr[j*4+1];
855 2 dis_grn[XX-j*4-2]=x64cg[j*4+1];
856 2 dis_blu[XX-j*4-2]=x64cb[j*4+1];
857 2
858 2 dis_red[XX-j*4-3]=x64cr[j*4+2];
859 2 dis_grn[XX-j*4-3]=x64cg[j*4+2];
860 2 dis_blu[XX-j*4-3]=x64cb[j*4+2];
861 2
C51 COMPILER V7.50 DZKZQV12 12/04/2006 16:43:31 PAGE 15
862 2 dis_red[XX-j*4-4]=x64cr[j*4+3];
863 2 dis_grn[XX-j*4-4]=x64cg[j*4+3];
864 2 dis_blu[XX-j*4-4]=x64cb[j*4+3];
865 2 sendall();
866 2 delay(speed);
867 2 }
868 1 delay1s(speed);
869 1 }
870 //******************************
871 //发送显示内存数据到各灯管
872 //*******************************
873 void sendall(void)
874 {
875 1 uchar j;
876 1 for(j=0;j<XX-1;j++)
877 1 {TB81=1;
878 2 SBUF1=j+1;while(!TI1);TI1=0;
879 2 TB81=0;
880 2 send_del(50);
881 2 //send red
882 2 SBUF1=dis_red[j];
883 2 while(!TI1);TI1=0;
884 2 send_del(50);
885 2 //send greed
886 2 SBUF1=dis_grn[j];
887 2 while(!TI1);TI1=0;
888 2 send_del(50);
889 2 //***********bluer
890 2 SBUF1=dis_blu[j];
891 2 while(!TI1);TI1=0;
892 2 send_del(50);
893 2 }
894 1 led=!led;
895 1 }
896 //**********************************
897 //延时
898 //*******************************
899 void delay1s(uint j)
900 {
901 1 //uint i;
902 1 while(j!=0)
903 1 {
904 2 while(timer!=10)
905 2 {
906 3 if(frameok){save();frameok=0;}
907 3 }
908 2 timer=0;
909 2 j--;
910 2 }
911 1 }
912 //*******************************
913 void delay(uint j)
914 {
915 1 while(j!=0)
916 1 {
917 2 j--;if(frameok){save();frameok=0;}
918 2 }
919 1 }
920 //-------------------------------------
921 void send_del(uchar j)
922 {
923 1 while(j!=0)
C51 COMPILER V7.50 DZKZQV12 12/04/2006 16:43:31 PAGE 16
924 1 {
925 2 j--;
926 2 if(frameok){save();frameok=0;}
927 2 }
928 1 }
929 //*******************************
930 void send_delay(void)
931 {
932 1 uchar j;
933 1 j=12;
934 1 while(j!=0)
935 1 {
936 2 j--;
937 2 }
938 1 }
939 //********************************************
940 void main()
941 {
942 1 uchar i,j;
943 1 uchar idata *p;
944 1 SM0=1;
945 1 SM1=1;
946 1 SM2=0;
947 1 T2CON=0X30;
948 1 ES=0;
949 1 RCAP2H=0XFF;
950 1 TH2=0XFF;
951 1 RCAP2L=0Xdc; //bps19200 0xdc
952 1 TL2=0Xdc; //bps=38400bps 256-(22.1184*10^6/32/38400)
953 1 TR2=1; //
954 1 ES=1; //允许串行端口的中断。
955 1 REN=1; //串行通讯接收允许信号,该位可以由软件来设定。
956 1 TMOD=0x25; //timer 1 dps timer sync
957 1 SCON1=0xc0; //serial prot 1
958 1 TH1=0xfd;
959 1 TL1=0xfd; //256-(22.1184*10~6/32/12/3/38400*2)
960 1 senden=0;//rev
961 1 senden1=1;
962 1 TL0=0xff; //timer 0 is ac sync
963 1 TH0=0xff;
964 1 TR0=1; //计时器1启动控制位可由软件来设定或清除。为1时启动,0时关闭
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -