📄 chendp.c
字号:
}
else goto menu2;
case set3s:
return ;
}
}
break;
case down:
if(fbit==2)
{
if(intm_m==0) intm_m++;
else intm_m=0;
}
break;
case up:
if(fbit==2)
{
if(in_m<2) in_m++;
else in_m=0;
}
break;
case left:
fbit=2;
break;
case set3s:
return ;
}
}
}
}
break;
case up:
if(fbit==2)
{ if(cbit!=3) { if(p[cbit]<9) p[cbit]++;
else p[cbit]=0; }
else { if(p[cbit]==0) p[cbit]=1;
else p[cbit]=0;}
}
break;
case down:
if(fbit==2)
{ if(cbit!=3) { if(p[cbit]>0) p[cbit]--;
else p[cbit]=9; }
else { if(p[cbit]==0) p[cbit]=1;
else p[cbit]=0; }
}
break;
case left:
fbit=2;
if(cbit<3) cbit++;
else cbit=0;
if(p[cbit]==10) p[cbit]=0;
break;
case set3s:
goto menu2;
}
}
}
}
else {if(tdbit<2) tdbit++;
else tdbit=0;}
}
break;
case up:
if(fbit==2)
{ if(cbit==1) p[cbit]-=25;
if(p[cbit]<9) p[cbit]++;
else p[cbit]=0;
if(cbit==1) p[cbit]+=25; }
break;
case down:
if(fbit==2)
{ if(cbit==1) p[cbit]-=25;
if(p[cbit]>0) p[cbit]--;
else p[cbit]=9;
if(cbit==1) p[cbit]+=25; }
break;
case left:
fbit=2;
if(cbit<1) cbit++;
else cbit=0;
break;
case set3s:
return ;
}
}//----------------------------------------2-2-2-2--
}
else {if(tdbit<2) tdbit++;
else tdbit=0;}
}
break;
case up:
if(fbit==2)
{ if(p[cbit]<9) p[cbit]++;
else p[cbit]=0;}
break;
case down:
if(fbit==2)
{ if(p[cbit]>0) p[cbit]--;
else p[cbit]=9;}
break;
case left:
fbit=2;
if(cbit<5) cbit++;
else cbit=0;
break;
}
}
break;
case down:
int_clr();
break;
}
menu_end: return;
}
//--------------------------------------------------------------------------------------------------------------------------------------------------
void sanddata_display(long i, long j, unsigned char k )
{ // ---------------------------------------------
unsigned char v=0;
unsigned char m=0;
if(k==0) m=1; v=1;
if(k==1) m=1;
if(k==2) v=1;
process(j,p,m);
process(i,o,v);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------
void sandcnd_display(unsigned char *q, long j, unsigned char y )
{
process(j,p,y);
o=q;
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
void sandchar_display(unsigned char *q, unsigned char *w)
{
o=q;
p=w;
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------
char display_flash (unsigned char ed,unsigned char g, unsigned char c)
{
unsigned char a,b,d,keydata=0;
unsigned char *x,*f;
x=p;
f=o;
b=p[g];
for (d=0;d<2;d++)
{
ed=~ed;
switch (ed)
{
case 2: p[g]=10; break;
case 3: p=v; o=v; break;
}
for (a=0;a<c;a++)
{
display();
if((PINB&0XF0)!=0xf0) goto end_d;
}
p[g]=b;
p=x;
o=f;
}
end_d: keydata=GetKey() ;
p[g]=b;
p=dhitemp;
o=dlotemp;
return keydata;
}
//------------------------------------------------------------------------------------------------------------
void cntplay(void)
{
long posstep;
posstep=Contdata;
posstep*= scldata[0];
tempcnt= posstep/scldata[1];
if( tempcnt>=1000000) {tempcnt=0; Contdata=0;}
if( tempcnt<=-100000) { tempcnt=0; Contdata=0;}
process(tempcnt,o,1);
process(timeset[tbit],p,0);
display();
}
//-------------------------------------------------------------------------------------------------------------
void display (void) //--------------------------------------------------------------------
{
unsigned char oda,pda,bda,cx,cz,bi,bitda=0x01;
for(bi=0;bi<3;bi++)
{
if(kt[bi]==1){
if(ticnt>=ti[bi]) {if( (ticnt-ti[bi])/10>=trdata_x[bi] ) { PORTC&=~BIT(bi); kt[bi]=3;}}
else {if( (60000+ticnt-ti[bi])/100>=trdata_x[bi] ) { PORTC&=~BIT(bi); kt[bi]=3;}}
}
if(trdata_x[bi]==0) kt[bi]=1;
}
if( resettemp==2) { if(kt[0]*kt[1]*kt[2]==1) Contdata=0;}
for(bi=0;bi<3;bi++)
{
if(trdata_x[bi]==0) kt[bi]=3;
}
if( resettemp>=1) { if((kt[0]+kt[1]+kt[2])==9) int_clr();}
PORTC&=~BIT(cp);
for(cz=0;cz<7;cz++)
{
oda=table[p[cz]];
pda=table[o[cz]];
bda=bitda;
for(cx=0;cx<24;cx++)
{
delay_nus(1);
PORTC&=~BIT(sh_cp);
if(cx<8){
if( oda&0x80) PORTC|= BIT(ds);
else PORTC&=~BIT(ds);
oda<<=1;
}
else {
if(cx<16)
{
if( pda&0x80) PORTC|= BIT(ds);
else PORTC&=~BIT(ds);
pda<<=1;
}
else
{
if( bda&0x80) PORTC|= BIT(ds);
else PORTC&=~BIT(ds);
bda<<=1;
}
}
PORTC|= BIT(sh_cp);
}
delay_nus(1);
PORTC|=BIT(cp);
delay_nus(1);
PORTC&=~BIT(cp);
bitda<<=1;
WDR();
delay_nus(500);
}
}
//----------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------
char GetKey(void) //-------------------------------------------------------------
{
unsigned char c,e,f,u = 0;
c=0; f=0;
if((PINB&0XF0)!=0xf0)
{
e = (PINB&0XF0);
display();
if(e==(PINB&0XF0) )
{
loopkey: display();
c++;
if(c>10)
{
if(c==100) {
e = (PINB&0XF0);
e++;
s3loop: display();
u++;
if (u>20)
{
for(u=0;u<80;u++)
{
p=so_1;
display();
}
p=dhitemp;
return e;
}
if((PINB&0XF0)==0xf0 ) return e;
else goto s3loop;
}
if ((PINB&0XF0)==set) goto loopkey;
if ((PINB&0XF0)==left) goto loopkey;
if ((PINB&0XF0)==0xa0) goto loopkey;
if ((PINB&0XF0)==0x60) goto loopkey;
return e;
}
if((PINB&0XF0)==0xf0 ) return e;
else goto loopkey;
}
}
return f;
}
//----------------------------------------------------------------------------------------------------------------
void process(long i,unsigned char *p,unsigned char z)//---------------------------------
{
long j=100000;
long x;
unsigned char cv,s=5;
if(i<0) { i*=-1; cv=1;}
else cv=0;
x=i;
repro:
if(s!=0)
{
p[s]=i/j;
if(x<j) {if(cv==0) p[s]=10;
else { if(s>pontdata) p[s]=12; } }
i%=j; j/=10; s--;
WDR();
goto repro;
}
else p[s]=i;
if(z==1)
{//----------------------
if(p[pontdata] != 10 ) { if(pontdata!=0) p[pontdata]+=25;}
else
{
if(pontdata>0)
{
s=pontdata;
possreb: if(p[s]==10)
{
p[s]=0; s--;
if(s!=0) goto possreb;
}
p[pontdata]+=25;
}
}
if(pontdata==5) {if(cv!=0) p[5]=55 ;}
}
}
//-------------------------------------------------------------------------------------------------------------------
long process_add(void)
{
long timeposs=0;
if(p[5]<10) timeposs+= (p[5]*100000);
if(p[4]<10) timeposs+= (p[4]*100000/10);
if(p[3]<10) timeposs+= (p[3]*1000);
if(p[2]<10) timeposs+= (p[2]*100);
if(p[1]<10) timeposs+= (p[1]*10);
if(p[0]<10) timeposs+= p[0];
return timeposs;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -