⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 触摸式人行灯控制器.c

📁 触摸式人行灯控制器源程序, 这个程序已经在路口正常使用
💻 C
📖 第 1 页 / 共 3 页
字号:
             c=DB[x1/10];
				 d=DB[x1%10];
            }
				if(x1>blue_s)
				{
				 P2=P2&0x07|0x60;
		       delay(120);
            }
				else if(x1<=blue_s)
				{
             P2=P2&0x07|0x60;
		       delay(60);
             P2=P2&0x07|0x20;
		       delay(60);
				}
          }
//----------------------------                  //全红时间

for(x1=red_all;x1>0;x1--,by--)
          { mn[0]=0xfa;
            mn[1]=0x33;
            mn[2]=x1;
            mn[3]=by;
            fs();
			 
			 
			   if(t1==0)
			   {a=DB[by/10];
				b=DB[by%10];
            c=DB[x1/10];
				d=DB[x1%10];
            }
			   P2=P2&0x07|0xa0;
		      delay(120);
            
          }
//------------                                  //非机绿,人行红   
         for(x1=cm_2;x1>0;x1--)
          { mn[0]=0xfa;
            mn[1]=0x13;
            mn[2]=x1;
            mn[3]=x1;
            fs();
			 
			   if(t1==0)
			   {a=DB[x1/10];
				b=DB[x1%10];
            c=DB[x1/10];
				d=DB[x1%10];
            }
				if(x1>blue_s)
				{
				 P2=P2&0x07|0x88;
		       delay(120);
            }
				else if(x1<=blue_s)
				{
             P2=P2&0x07|0x88;
		       delay(60);
             P2=P2&0x07|0x80;
		       delay(60);
				}
          }
		
    }

//---------------------------------正常二相位
void yx1()
{ uchar x1,by;
  for(x1=fj,by=fj+yellow;x1>0;x1--,by--)       //非机绿
       {    mn[0]=0xfa;
            mn[1]=0x13;
            mn[2]=x1;
            mn[3]=by;
            fs();
			 if(t1==0)
			   { a=DB[x1/10];
			     b=DB[x1%10];
                 c=DB[by/10];
				 d=DB[by%10];
            }
           if(x1>blue_s)
				{
			   P2=P2&0x07|0x88;
		      delay(120);
             }
           else if(x1<=blue_s)
				 {
             P2=P2&0x07|0x88;
		       delay(60);
             P2=P2&0x07|0x80;
		       delay(60);
				 }
		  }
//------------                                 //非机黄,人行红
    for(x1=yellow;x1>0;x1--,by--)
          { mn[0]=0xfa;
            mn[1]=0x23;
            mn[2]=x1;
            mn[3]=by;
            fs();
			 if(t1==0)
			   {a=DB[x1/10];
				 b=DB[x1%10];
             c=DB[by/10];
				 d=DB[by%10];
            }
			   P2=P2&0x07|0x90;
		      delay(120);
            
          }
//------------                                 //非机红,人行绿                                 
        for(x1=rx;x1>0;x1--)
          { mn[0]=0xfa;
            mn[1]=0x31;
            mn[2]=x1;
            mn[3]=x1;
            fs();
			   if(t1==0)
			   {
				 a=DB[x1/10];
				 b=DB[x1%10];
             c=DB[x1/10];
				 d=DB[x1%10];
            }
				if(x1>blue_s)
				{
				 P2=P2&0x07|0x60;
		       delay(120);
            }
				else if(x1<=blue_s)
				{
             P2=P2&0x07|0x60;
		       delay(60);
             P2=P2&0x07|0x20;
		       delay(60);
				}
          }
//----------------------------                  //全红时间

for(x1=red_all;x1>0;x1--)
          { mn[0]=0xfa;
            mn[1]=0x33;
            mn[2]=x1;
            mn[3]=x1;
            fs();
            if(t1==0)
			   {a=DB[x1/10];
				b=DB[x1%10];
            c=DB[x1/10];
				d=DB[x1%10];
            }
			   P2=P2&0x07|0xa0;
		      delay(120);
            
          }
		
    }
//---------------------------------
void fs()
{uchar  p;
 for(p=0;p<4;p++)
   { SBUF=mn[p];
     while(TI==0);
     TI=0;
   }
}
//---------------------------------
void toserve() interrupt 1 using 0
 {	  TH0=0Xf4;
     TL0=0x48;
     cnt--;
     sm();
	  if(P3_6==0)bz3=88;
   if(cnt==0)
   {
    P3_4=~P3_4;
	 P3_5=~P3_5;
    cnt=130;
    
     
   }
     TF0=0;
  }
//----------------------------------
void jjpp() interrupt 0 using 1
 {	 
    
    uint   jp;
	 uchar  zuan_huan;
    EX0=0;
    P1_0=0;
	 P1_1=1;
    
	 if(P1_2==0)jp=1;
	 else if(P1_3==0)jp=2;
	 else if(P1_4==0)jp=3;

    P1_0=1;
	 P1_1=0;
    if(P1_2==0)jp=4;
	 else if(P1_3==0)jp=5;
	 else if(P1_4==0)jp=6;

    P1_0=0;
	 P1_1=0;
	 delay(25);
    while(P3_2==0);
    switch(jp)
	 {
	  case  1: 

	            switch(t1)
               {
					  case  1:break;        
					  case  2: break;
					  case  4:{rx++;
					           while(rx==100)rx=1;
					           a=DB[rx/10];
								  b=DB[rx%10];
								  }break;
					  case  5:{
                          zuan_huan=++hour;
					           if((zuan_huan&0x0f)>0x09)hour=(hour&0xf0)+0x10;
					           while(hour==0x24)hour=0;
					           a=DB[hour/0x10];
								  b=DB[hour%0x10];
								  }break;
					  case  6:
					           switch(bz5)
								  {
								   case   2:sdg1++;
                                    zuan_huan=sdg1;
                                    if((zuan_huan&0x0f)>0x09)sdg1=(sdg1&0xf0)+0x10;
                                    if(sdg1==0x24)sdg1=0;
										      a=DB[sdg1/0x10];
                                    b=DB[sdg1%0x10];break;
									case   4:sdg2++;
                                    zuan_huan=sdg2;
                                    if((zuan_huan&0x0f)>0x09)sdg2=(sdg2&0xf0)+0x10;
                                    if(sdg2==0x24)sdg2=0;
										      a=DB[sdg2/0x10];
                                    b=DB[sdg2%0x10];break;
									case   6:sdg3++;
                                    zuan_huan=sdg3;
                                    if((zuan_huan&0x0f)>0x09)sdg3=(sdg3&0xf0)+0x10;
                                    if(sdg3==0x24)sdg3=0;
										      a=DB[sdg3/0x10];
                                    b=DB[sdg3%0x10];break;
									case   8:sdg4++;
                                    zuan_huan=sdg4;
                                    if((zuan_huan&0x0f)>0x09)sdg4=(sdg4&0xf0)+0x10;
                                    if(sdg4==0x24)sdg4=0;
										      a=DB[sdg4/0x10];
                                    b=DB[sdg4%0x10];break;
									case  10:sdg5++;
                                    zuan_huan=sdg5;
                                    if((zuan_huan&0x0f)>0x09)sdg5=(sdg5&0xf0)+0x10;
                                    if(sdg5==0x24)sdg5=0;
										      a=DB[sdg5/0x10];
                                    b=DB[sdg5%0x10];break;
					          }break;
					 }break;
//--------------------------------------------------------------------
	  case  2:   switch(t1)
               {
					  case  1:break;
					  case  2:break; 
                 case  4:{rx--;
					           while(rx==0)rx=99;
					           a=DB[rx/10];
								  b=DB[rx%10];
								  }break;
                 case  5:{hour--;
					           zuan_huan=hour;
                          if((zuan_huan&0x0f)==0x0f)hour=(hour&0xf0)+0x09;
					           while(hour==0xf9)hour=0x23;
					           a=DB[hour/0x10];
								  b=DB[hour%0x10];
								  }break;
					  case  6: switch(bz5)
					           {
								  case   2:sdg1--;
                                    zuan_huan=sdg1;
                                    if((zuan_huan&0x0f)>0x09)sdg1=(sdg1&0xf0)+0x09;
                                    if(sdg1==0xf9)sdg1=0x23;
										      a=DB[sdg1/0x10];
                                    b=DB[sdg1%0x10];break;
									case   4:sdg2--;
                                    zuan_huan=sdg2;
                                    if((zuan_huan&0x0f)>0x09)sdg2=(sdg2&0xf0)+0x09;
                                    if(sdg2==0xf9)sdg2=0x23;
										      a=DB[sdg2/0x10];
                                    b=DB[sdg2%0x10];break;
									case   6:sdg3--;
                                    zuan_huan=sdg3;
                                    if((zuan_huan&0x0f)>0x09)sdg3=(sdg3&0xf0)+0x09;
                                    if(sdg3==0xf9)sdg3=0x23;
										      a=DB[sdg3/0x10];
                                    b=DB[sdg3%0x10];break;
									case   8:sdg4--;
                                    zuan_huan=sdg4;
                                    if((zuan_huan&0x0f)>0x09)sdg4=(sdg4&0xf0)+0x09;
                                    if(sdg4==0xf9)sdg4=0x23;
										      a=DB[sdg4/0x10];
                                    b=DB[sdg4%0x10];break;
									case  10:sdg5--;
                                    zuan_huan=sdg5;
                                    if((zuan_huan&0x0f)>0x09)sdg5=(sdg5&0xf0)+0x09;
                                    if(sdg5==0xf9)sdg5=0x23;
										      a=DB[sdg5/0x10];
                                    b=DB[sdg5%0x10];break;
								  }
								  break;
					 }break;
//--------------------------------------------------------------------
	  case  3:   switch(t1)
               {
					  case  1:
					          {run_fs++;
								  while(run_fs==8)run_fs=1;
                          d=DB[run_fs];
								 }break;
					  case  2:{
					           uchar  qq;
					           switch(bz)
								  {case  1:cm_1++;
								           while(cm_1==100)cm_1=1;
								           qq=cm_1;
											  break; 
								   case  2:cm_2++;
									        while(cm_2==100)cm_2=1;
									        qq=cm_2;
									        break; 
									case  3:cm_max++;
                                   while (cm_max==100)cm_max=1;
                                   qq=cm_max;
											  break; 
					           }
					           c=DB[qq/10];
								  d=DB[qq%10];
								  }break;
//--------------------------
                 case  3:{
					           uchar  qq;
					           switch(bz1)
								  {case  1:yellow++;
								           while(yellow==21)yellow=0;
								           qq=yellow;
											  break; 
								   case  2:blue_s++;
									        while(blue_s==21)blue_s=0;
									        qq=blue_s;
									        break; 
									case  3:red_all++;
                                   while (red_all==21)red_all=0;
                                   qq=red_all;
											  break; 
                           case  4:yellow_s++;
                                   while (yellow_s==21)yellow_s=0;
                                   qq=yellow_s;
											  break; 
					           }
					           c=DB[qq/10];
								  d=DB[qq%10];
								  }break;
//----------------------------
                 case  4:{fj++;
					           while(fj==100)fj=1;
					           c=DB[fj/10];
								  d=DB[fj%10];
								  }break;

                case  5:{second++;
                          zuan_huan=second;
                          if((zuan_huan&0x0f)>0x09)second=(second&0xf0)+0x10;
					           while(second==0x60)second=0;
					           c=DB[second/0x10];
								  d=DB[second%0x10];
								  }break;
					 case  6:switch(bz5)
					         {case 1:sd1++;
								        if(sd1==8)sd1=1;
										  d=DB[sd1];break;
                          case 2:sds1++;
                          zuan_huan=sds1;
                          if((zuan_huan&0x0f)>0x09)sds1=(sds1&0xf0)+0x10;
                          if(sds1==0x60)sds1=0;
										  c=DB[sds1/0x10];
                                d=DB[sds1%0x10];break;
                          case 3:sd2++;
								        if(sd2==8)sd2=1;
										  d=DB[sd2];break;
                          case 4:sds2++;
                                 zuan_huan=sds2;
                          if((zuan_huan&0x0f)>0x09)sds2=(sds2&0xf0)+0x10;
								        if(sds2==0x60)sds2=0;
										  c=DB[sds2/0x10];
                                d=DB[sds2%0x10];break;

                          case 5:sd3++;
								        if(sd3==8)sd3=1;
										  d=DB[sd3];break;
                          case 6:sds3++;
                                zuan_huan=sds3;
                                if((zuan_huan&0x0f)>0x09)sds3=(sds3&0xf0)+0x10;
								        if(sds3==0x60)sds3=0;
										  c=DB[sds3/0x10];
                                d=DB[sds3%0x10];break;
                          case 7:sd4++;
								        if(sd4==8)sd4=1;
										  d=DB[sd4];break;
                          case 8:sds4++;
                                 zuan_huan=sds4;
                                if((zuan_huan&0x0f)>0x09)sds4=(sds4&0xf0)+0x10;
								        if(sds4==0x60)sds4=0;
										  c=DB[sds4/0x10];
                                d=DB[sds4%0x10];break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -