📄 触摸式人行灯控制器.c
字号:
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 + -