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