📄 xszkzqv12.lst
字号:
803 1 sendall();
804 1 delay1s(speed);
805 1 msk_data(0,0,255,255,0,0);
806 1 sendall();
807 1 delay1s(speed);
808 1 msk_data(255,255,0,0,255,255);
809 1 sendall();
810 1 delay1s(speed);
811 1 msk_data(255,0,255,0,255,255);
812 1 sendall();
813 1 delay1s(speed);
814 1 msk_data(255,255,0,0,0,255);
815 1 sendall();
816 1 delay1s(speed);
817 1
818 1 }
819
820 //******************************
821 //发送显示内存数据到各灯管
822 //*******************************
823 void sendall(void)
824 {
825 1 uchar j;
826 1 for(j=0;j<XX-1;j++)
827 1 {TB81=1;
828 2 SBUF1=j+1;while(!TI1);TI1=0;
829 2 TB81=0;
830 2 send_del(50);
831 2 //send red
832 2 SBUF1=dis_red[j];
833 2 while(!TI1);TI1=0;
834 2 send_del(50);
835 2 //send greed
836 2 SBUF1=dis_grn[j];
837 2 while(!TI1);TI1=0;
838 2 send_del(50);
839 2 //***********bluer
840 2 SBUF1=dis_blu[j];
841 2 while(!TI1);TI1=0;
842 2 send_del(50);
843 2 }
844 1 led=!led;
845 1 }
846 //**********************************
847 //延时
848 //*******************************
849 void delay1s(uint j)
850 {
851 1 //uint i;
852 1 while(j!=0)
853 1 {
854 2 while(timer!=10)
855 2 {
856 3 if(frameok){save();frameok=0;}
857 3 }
858 2 timer=0;
859 2 j--;
860 2 }
861 1 }
C51 COMPILER V7.06 XSZKZQV12 10/22/2004 14:07:12 PAGE 15
862 //*******************************
863 void delay(uint j)
864 {
865 1 while(j!=0)
866 1 {
867 2 j--;if(frameok){save();frameok=0;}
868 2 }
869 1 }
870 //-------------------------------------
871 void send_del(uchar j)
872 {
873 1 while(j!=0)
874 1 {
875 2 j--;
876 2 if(frameok){save();frameok=0;}
877 2 }
878 1 }
879 //*******************************
880 void send_delay(void)
881 {
882 1 uchar j;
883 1 j=12;
884 1 while(j!=0)
885 1 {
886 2 j--;
887 2 }
888 1 }
889 //********************************************
890 void main()
891 {
892 1 uchar i,j;
893 1 uchar idata *p;
894 1 SM0=1;
895 1 SM1=1;
896 1 SM2=0;
897 1 T2CON=0X30;
898 1 ES=0;
899 1 RCAP2H=0XFF;
900 1 TH2=0XFF;
901 1 RCAP2L=0Xdc; //bps19200 0xdc
902 1 TL2=0Xdc; //bps=38400bps 256-(22.1184*10^6/32/38400)
903 1 TR2=1;
904 1 ES=1;
905 1 REN=1;
906 1 TMOD=0x25; //timer 1 dps timer sync
907 1 SCON1=0xc0; //serial prot 1
908 1 TH1=0xfd;
909 1 TL1=0xfd; //256-(22.1184*10~6/32/12/3/38400*2)
910 1 senden=0;//rev
911 1 senden1=1;
912 1 TL0=0xff; //timer 0 is ac sync
913 1 TH0=0xff;
914 1 TR0=1;
915 1 ET0=1;
916 1
917 1 TR1=1;
918 1 ET1=0;
919 1 //ES1=1;
920 1 EA=1;
921 1 PMR=PMR|0x01; //enable on-chip RAM
922 1 XX=20; //dz 162 pcs
923 1 X1=10;
C51 COMPILER V7.06 XSZKZQV12 10/22/2004 14:07:12 PAGE 16
924 1 while(1)
925 1 {
926 2 p=&iic_buf[0];
927 2 Read24c02(p,0,128);
928 2 if(iic_buf[0]==0xaa)
929 2 {
930 3 for(i=0;i<iic_buf[1];i++)
931 3 {
932 4 switch(iic_buf[i*3+2])
933 4 {
934 5 case 0:
935 5 for(j=0;j<iic_buf[i*3+3];j++)
936 5 col7(iic_buf[i*3+4]);
937 5 break;//七彩渐变
938 5 case 1:
939 5 for(j=0;j<iic_buf[i*3+3];j++)
940 5 {zbyzk(iic_buf[i*3+4]);
941 6 zbybm(iic_buf[i*3+4]);
942 6 ybyzk(iic_buf[i*3+4]);
943 6 ybybm(iic_buf[i*3+4]);
944 6 }
945 5 break; //百叶
946 5 case 2:
947 5 for(j=0;j<iic_buf[i*3+3];j++)
948 5 qcld(iic_buf[i*3+4]);
949 5 break;//七彩流水
950 5 case 3:
951 5 for(j=0;j<iic_buf[i*3+3];j++)
952 5 {duun(iic_buf[i*3+4]);clear();}
953 5 break;//向左展开
954 5 case 4:
955 5 for(j=0;j<iic_buf[i*3+3];j++)
956 5 {lrmun(iic_buf[i*3+4]);
957 6 lrmco(iic_buf[i*3+4]);
958 6 }
959 5 break;//左右中间展开
960 5 case 5:
961 5 for(j=0;j<iic_buf[i*3+3];j++)
962 5 {mlrun(iic_buf[i*3+4]);
963 6 mlrco(iic_buf[i*3+4]);
964 6 }
965 5 break;//中间向两边展开
966 5 case 6:
967 5 for(j=0;j<iic_buf[i*3+3];j++)
968 5 {mlrmov(iic_buf[i*3+4]);
969 6 mlrun(iic_buf[i*3+4]);
970 6 }
971 5 break;//中间向两边流动
972 5 case 7:
973 5 for(j=0;j<iic_buf[i*3+3];j++)
974 5 colld(iic_buf[i*3+4]);
975 5 break;//七彩流动,
976 5 case 8:
977 5 for(j=0;j<iic_buf[i*3+3];j++)
978 5 qczk(iic_buf[i*3+4]);
979 5 break;
980 5 case 9:
981 5 for(j=0;j<iic_buf[i*3+3];j++)
982 5 msk(iic_buf[i*3+4]);
983 5 break;//马赛克
984 5
985 5 default:break;
C51 COMPILER V7.06 XSZKZQV12 10/22/2004 14:07:12 PAGE 17
986 5
987 5 }
988 4 }
989 3 }
990 2 else
991 2 {
992 3 col7(10);
993 3 zbyzk(120/XX);
994 3 zbybm(120/XX);
995 3 ybyzk(120/XX);
996 3 ybybm(120/XX);
997 3 qcld(120/XX);
998 3 duun(120/XX);
999 3 clear();
1000 3 lrmun(120/XX);
1001 3 lrmco(120/XX);
1002 3 mlrun(120/XX);
1003 3 mlrco(120/XX);
1004 3 colld(120/XX);
1005 3 mlrmov(120/XX);
1006 3 mlrun(120/XX);
1007 3 qczk(10);
1008 3 }//end if 0xaa
1009 2 }
1010 1 }
1011
1012 //*****************************************
1013 // 串口中断服务程序
1014 //*****************************************
1015 void send(void) interrupt 4
1016 {
1017 1 uchar d;
1018 1 if(!TI && RI && !frameok)
1019 1 {RI=0;
1020 2 d=SBUF;
1021 2 if(pointer==0)
1022 2 {if(d==ADD)
1023 3 {
1024 4 subchk=d;send_buf[0]=d;TB8=1;senden=1;
1025 4 send_delay();SBUF=d;while(!TI);TI=0;send_delay();
1026 4 senden=0;
1027 4 SM2=0;TB8=0;
1028 4 pointer++;}//71
1029 3 else if(d==0x00)
1030 3 {subchk=d;SM2=0;pointer++;}
1031 3
1032 3 }
1033 2 else
1034 2 {if(pointer==127)
1035 3 {//send_buf[pointer]=d;
1036 4 if(d==subchk)
1037 4 {
1038 5 senden=1;send_delay();SBUF=subchk;while(!TI);send_delay();senden=0;TI=0;
1039 5 frameok=1;pointer=0;SM2=1;}
1040 4 // else
1041 4 // {senden=1;send_delay();SBUF=~subchk;while(!TI);send_delay();TI=0;senden=0;}
1042 4 // SM2=1;pointer=0;
1043 4 }
1044 3 else
1045 3 {send_buf[pointer]=d;subchk+=d;pointer++;}
1046 3 }
1047 2 }//end if
C51 COMPILER V7.06 XSZKZQV12 10/22/2004 14:07:12 PAGE 18
1048 1 }
1049 //*************************************
1050 void timer1() interrupt 1
1051 {
1052 1 TL0=0xff;
1053 1 TH0=0xff;
1054 1 timer++;
1055 1 }
1056
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 5475 ----
CONSTANT SIZE = 1032 ----
XDATA SIZE = 248 ----
PDATA SIZE = ---- ----
DATA SIZE = 7 69
IDATA SIZE = 128 ----
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 + -