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

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

📁 触摸式人行灯控制器源程序, 这个程序已经在路口正常使用
💻 C
📖 第 1 页 / 共 3 页
字号:
                          case 9:sd5++;
								        if(sd5==8)sd5=1;
										  d=DB[sd5];break;
                          case 10:sds5++;
                                zuan_huan=sds5;
                                if((zuan_huan&0x0f)>0x09)sds5=(sds5&0xf0)+0x10;
								        if(sds5==0x60)sds5=0;
										  c=DB[sds5/0x10];
                                d=DB[sds5%0x10];break;
								  
								  }break;
					 }break;
//--------------------------------------------------------------------
	  case  4:   switch(t1)
               {
					  case  1:
					          {run_fs--;
								  while(run_fs==0)run_fs=7;
                          d=DB[run_fs];
								 }break;
					  case  2:{uchar  qq;
					           switch(bz)
								  {case  1:cm_1--;
								           while(cm_1==0)cm_1=99;
								           qq=cm_1;
											  break; 
								   case  2:cm_2--;
									        while(cm_2==0)cm_2=99;
									        qq=cm_2;
									        break; 
									case  3:cm_max--;
                                   while (cm_max==0)cm_max=99;
                                   qq=cm_max;
											  break; 
					           }
					           c=DB[qq/10];
								  d=DB[qq%10];
								  }break;
//-----------------------------

                  case  3:{
					           uchar  qq;
					           switch(bz1)
								  {case  1:yellow--;
								           while(yellow==0xff)yellow=20;
								           qq=yellow;
											  break; 
								   case  2:blue_s--;
									        while(blue_s==0xff)blue_s=20;
									        qq=blue_s;
									        break; 
									case  3:red_all--;
                                   while (red_all==0xff)red_all=20;
                                   qq=red_all;
											  break; 
                           case  4:yellow_s--;
                                   while (yellow_s==0xff)yellow_s=20;
                                   qq=yellow_s;
											  break; 
					           }
					           c=DB[qq/10];
								  d=DB[qq%10];
								  }break;
//---------------------------
                 case  4:{fj--;
					           while(fj==0)fj=99;
					           c=DB[fj/10];
								  d=DB[fj%10];
								  }break;
                case  5:{second--;
					          zuan_huan=second;
                          if((zuan_huan&0x0f)==0x0f)second=(second&0xf0)+0x09;
					           while(second==0xf9)second=0x59;
					           c=DB[second/0x10];
								  d=DB[second%0x10];
								  }break;
					 case   6: switch(bz5)
					         {case 1:sd1--;
								        if(sd1==0)sd1=7;
										  d=DB[sd1];break;
                          case 2:sds1--;
                          zuan_huan=sds1;
                          if((zuan_huan&0x0f)>0x09)sds1=(sds1&0xf0)+0x09;
                          if(sds1==0xf9)sds1=0x59;
										  c=DB[sds1/0x10];
                                d=DB[sds1%0x10];break;
                          case 3:sd2--;
								        if(sd2==0)sd2=7;
										  d=DB[sd2];break;
                          case 4:sds2--;
                                 zuan_huan=sds2;
                          if((zuan_huan&0x0f)>0x09)sds2=(sds2&0xf0)+0x09;
								        if(sds2==0xf9)sds2=0x59;
										  c=DB[sds2/0x10];
                                d=DB[sds2%0x10];break;

                          case 5:sd3--;
								        if(sd3==0)sd3=7;
										  d=DB[sd3];break;
                          case 6:sds3--;
                                zuan_huan=sds3;
                                if((zuan_huan&0x0f)>0x09)sds3=(sds3&0xf0)+0x09;
								        if(sds3==0xf9)sds3=0x59;
										  c=DB[sds3/0x10];
                                d=DB[sds3%0x10];break;
                          case 7:sd4--;
								        if(sd4==0)sd4=7;
										  d=DB[sd4];break;
                          case 8:sds4--;
                                 zuan_huan=sds4;
                                if((zuan_huan&0x0f)>0x09)sds4=(sds4&0xf0)+0x09;
								        if(sds4==0xf9)sds4=0x59;
										  c=DB[sds4/0x10];
                                d=DB[sds4%0x10];break;
                          case 9:sd5--;
								        if(sd5==0)sd5=7;
										  d=DB[sd5];break;
                          case 10:sds5--;
                                zuan_huan=sds5;
                                if((zuan_huan&0x0f)>0x09)sds5=(sds5&0xf0)+0x09;
								        if(sds5==0xf9)sds5=0x59;
										  c=DB[sds5/0x10];
                                d=DB[sds5%0x10];break;
								  
								  }break;
					 }break;
//--------------------------------------------------------------------
     case  5:   
	          {  t1++;
	             while(t1==8)t1=0;
	             sx=DB1[t1];
                
					 switch(t1)
					 {
					  case  1:a=DB[12];b=DB[13];c=DB[11];d=DB[run_fs];break;
					  case  2:a=DB[bz=1];b=DB[11];c=DB[cm_1/10];d=DB[cm_1%10];break;
					  case  3:a=DB[bz1=1];b=DB[11];c=DB[yellow/10];d=DB[yellow%10];break;
					  case  4:a=DB[rx/10];b=DB[rx%10];c=DB[fj/10];d=DB[fj%10];break;
					  case  5: hour=read1302[2];
					           second=read1302[1];
					           a=DB[hour/0x10];
                          b=DB[hour%0x10];
                          c=DB[second/0x10];
                          d=DB[second%0x10];
                          break;
					  case  6: bz5=1;
					           a=DB[1];
                          b=DB[11];
                          c=DB[11];
                          d=DB[sd1];
								  break;
					 }	 
                 
	          }
	            break;
//--------------------------------------------------------------------
	 case  6:    switch(t1)
					 {
					  case  1:cs();break;
					  case  2:bz++;
					          while(bz==4)bz=0;
					          a=DB[bz];
								 switch(bz)
								 { case 0:cs();break;
								          
								   case 1:c=DB[cm_1/10];
									       d=DB[cm_1%10];
											 break;
								   case 2:c=DB[cm_2/10];
									       d=DB[cm_2%10];
											 break;
								   case 3:c=DB[cm_max/10];
									       d=DB[cm_max%10];
											 break;
								 }break;
//------------------------------
                 case  3:bz1++;
					          while(bz1==5)bz1=0;
					          a=DB[bz1];
								 switch(bz1)
								 { case 0:cs();break;
								          
								   case 1:c=DB[yellow/10];
									       d=DB[yellow%10];
											 break;
								   case 2:c=DB[blue_s/10];
									       d=DB[blue_s%10];
											 break;
								   case 3:c=DB[red_all/10];
									       d=DB[red_all%10];
											 break;
                           case 4:c=DB[yellow_s/10];
									       d=DB[yellow_s%10];
											 break;
								 }break;

					  case  4:cs();break;
					  case  5: cs();
                          bz4=0x88;
								 break;
					  case  6: bz5++;
                          while(bz5==11)bz5=0;
                          switch(bz5)
								  {case 0:cs();break;
								   case 1:a=DB[1];
                                 b=DB[11];
                                 c=DB[11];
                                 d=DB[sd1];
											break;
                          case 2:a=DB[sdg1/0x10];
                                 b=DB[sdg1%0x10];
                                 c=DB[sds1/0x10];
                                 d=DB[sds1%0x10];
											break;
                          case 3:a=DB[2];
                                 b=DB[11];
                                 c=DB[11];
                                 d=DB[sd2];
											break;
                          case 4:a=DB[sdg2/0x10];
                                 b=DB[sdg2%0x10];
                                 c=DB[sds2/0x10];
                                 d=DB[sds2%0x10];
											break;
                          case 5:a=DB[3];
                                 b=DB[11];
                                 c=DB[11];
                                 d=DB[sd3];
											break;
                          case 6:a=DB[sdg3/0x10];
                                 b=DB[sdg3%0x10];
                                 c=DB[sds3/0x10];
                                 d=DB[sds3%0x10];
											break;
								  case 7:a=DB[4];
                                 b=DB[11];
                                 c=DB[11];
                                 d=DB[sd4];
											break;
                          case 8:a=DB[sdg4/0x10];
                                 b=DB[sdg4%0x10];
                                 c=DB[sds4/0x10];
                                 d=DB[sds4%0x10];
											break;
                          case 9:a=DB[5];
                                 b=DB[11];
                                 c=DB[11];
                                 d=DB[sd5];
											break;
                          case 10:a=DB[sdg5/0x10];
                                 b=DB[sdg5%0x10];
                                 c=DB[sds5/0x10];
                                 d=DB[sds5%0x10];
											break;
								  }
					 }	 break;
    }
     
     EX0=1;
 }
//---------------------------
  void delay(uint time)
 { uint z1,z2;
    for(z1=0;z1<time;z1++)
	 for(z2=0;z2<1200;z2++)
	 {;}
 }
//---------------------------
  void cs()
  {
   a=DB[10];
   b=DB[11];
   c=DB[11];
   d=DB[11];
	bz=bz1=1;
	t1=0;
   sx=DB1[t1];
   bz4=0x99;
   
	}
//---------------------------
void  sm()
{  
   //uchar a,b,c; 
   //a=DB[j/100];
  // b=DB[(j-(j/100)*100)/10];
  // c=DB[j%10];

   if(e==0x05)e=0x00;
   P2=P2&0xf8|e;
   switch(e)
   {
	 case  0x00: P0=sx;break;
    case  0x01: P0=d;break;
    case  0x02: P0=c;break;
    case  0x03: P0=b;break;
    case  0x04: P0=a;break;

   }
    e++;
}




//********************************************************************************1302
r_bit()                    //读一个字节
{
 uchar hi;
  for(hi=8;hi>0;hi--)
  {
   ACC=ACC>>1;
   ACC7=t_io;
   t_clk=1;
   t_clk=0;
  }
 return(ACC);
}
//---------------------                   //写一个字节
void w_bit(uchar write)
{
 uchar  hi;
 ACC=write;
 for(hi=8;hi>0;hi--)
  {
   t_io=ACC0;
   t_clk=1;
   t_clk=0;
	ACC=ACC>>1;
  }
}
//----------------------                 //写地址/命令写数据
void w1302(uchar ucaddr,uchar ucda)
{
 t_rst=0;
 t_clk=0;
 t_rst=1;
 w_bit(ucaddr);
 w_bit(ucda);
 t_clk=1;
 t_rst=0;
}
//----------------------                 //写地址/读数据
r1302(uchar  ucaddr)
{
  uchar  ucda;
  t_rst=0;
  t_clk=0;
  t_rst=1;
  w_bit(ucaddr);
  ucda=r_bit();
  t_clk=1;
  t_rst=0;
  return(ucda);
}
//-----------------------                //初始写1302
void  set1302(uchar *pclock)
{ 
   uchar hi;
	uchar ucaddr=0x80;
   w1302(0x8e,0x00);
   for(hi=7;hi>0;hi--)
	 {
	  w1302(ucaddr,*pclock);
     pclock++;
	  ucaddr+=2;
	 }
	 w1302(0x8e,0x80);
    
}
//------------------------              //读取时间
void get1302()
{
  uchar  hi;
  uchar  ucaddr=0x81;
  for(hi=0;hi<7;hi++)
  {
    read1302[hi]=r1302(ucaddr);
    ucaddr+=2;
  }
}
//--------------------------------------------------------
void  bitw1302r(uchar  *pwreg)
{
    uchar  hi;
    //w1302(0x8e,0x00);
    t_rst=0;
    t_clk=0;
    t_rst=1;
    w_bit(0xfe);
    for(hi=0;hi<27;hi++)
    {
     w_bit(*pwreg);
     pwreg++;
    }
	 t_clk=1;
	 t_rst=0;
}
//----------------------
void  bitr1302r(uchar  *prreg)
{
   uchar  hi;
   w1302(0x8e,0x00);
	t_rst=0;
	t_clk=0;
	t_rst=1;
   w_bit(0xff);
   for(hi=0;hi<27;hi++)
	{
	 *prreg=r_bit();
     prreg++;
	}
	t_clk=1;
	t_rst=0;
}

⌨️ 快捷键说明

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