📄 macoh._c
字号:
break;
rst_mcall: case up:
if(fbit==2)
{
if(reset_m<2) reset_m++;
else reset_m=0;
}
break;
case down:
goto rst_mcall;
case left:
fbit=2;
break;
case set3s:
return ;
case set_left3s:
goto menu3;
}
}
break;
case up:
in_mcall: if(fbit==2)
{
if(intm_m==0) intm_m++;
else intm_m=0;
}
break;
case down:
goto in_mcall;
case left:
fbit=2;
break;
case set3s:
return ;
case set_left3s:
goto menu3;
}
}
}
}
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:
return;
case set_left3s:
goto menu3;
}
}
}
else { cbit=1;
if(tdbit<2) tdbit++;
else tdbit=0;
process(trdata_x[tdbit],p,1);
}
}
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 ;
case set_left3s:
goto menu3;
}
}//----------------------------------------2-2-2-2--
}
else { cbit=5;
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;
if(p[cbit]==10) p[cbit]=0;
break;
case set3s:
return;
case set_left3s:
goto menu3;
}
}
break;
case down_up:
int_clr();
break;
case set_left3s:
menu3:
if(lockda!=1234) return;
in_m=intemp;
while (1)
{
if(in_m==0) sandchar_display(in,in_10k);
if(in_m==1) sandchar_display(in,in_2k);
if(in_m>=2) sandchar_display(in,in_25h);
key=display_flash(fbit,0,2);
switch (key)
{
case set:
if(fbit==2)
{
intemp=in_m;
EEPROMwrite(0x12,intemp);
fbit=0;
}
else
while(1)
{
if(negdata==0)sandchar_display(nega,off);
else sandchar_display(nega,on);
key=display_flash(fbit,0,2);
switch (key)
{
case set:
if(fbit==2)
{
EEPROMwrite(0x16,negdata);
fbit=0;
}
else
goto menu3;
break;
case left:
fbit=2;
break;
case up:
negset: if(fbit==2)
{
if(negdata==0) { negdata++;negaon_off=-100000;}
else { negdata=0; negaon_off=0;}
}
break;
case down:
goto negset;
case set_left3s:
return;
}
}
break;
case down:
rst_call: if(fbit==2)
{
if(in_m<2) in_m++;
else in_m=0;
}
break;
case up:
goto rst_call;
case left:
fbit=2;
break;
case set_left3s:
return ;
}
}
break;
}
menu_end: return;
}
//--------------------------------------------------------------------------------------------------------------------------------------------------
void sanddata_display(long i, long j, unsigned char k )
{ // ---------------------------------------------长数据1----长数据2-----------小数点开关
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<4;d++)
{
ed=~ed;
switch (ed)
{
case 2: p[g]=10; break;
case 3: p=v; o=v; break;
}
for (a=0;a<3;a++)
{
display();
if((PINB&0X0f)!=0x0f) 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*scldata[0];
tempcnt= posstep/scldata[1];
if( tempcnt>=1000000) {tempcnt=0; Contdata=0;}
if( tempcnt<=negaon_off) { 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+3); kt[bi]=3;}}
else {if( (60000+ticnt-ti[bi])/100>=trdata_x[bi] ) { PORTC&=~BIT(bi+3); 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;
delay_nus(500);
}
WDR();
}
//----------------------------------------------------------------------------------------------------------------
char GetKey(void) //-----------------------------------------------------------------------------------取键值防抖动
{
unsigned char c,e,f,u = 0;
c=0; f=0;
if((PINB&0X0f)!=0x0f)
{
e = (PINB&0X0f);
display();
if(e==(PINB&0X0f) )
{
loopkey: display();
c++;
if(c>20)
{
if(c==254) {
e = (PINB&0X0f);
e+=0x10;
s3loop: display();
u++;
if (u>20)
{
return e;
}
if((PINB&0X0f)==0x0f ) return e;
else goto s3loop;
}
if ((PINB&0X0f)==set) goto loopkey;
if ((PINB&0X0f)==set_left) goto loopkey;
return e;
}
if((PINB&0X0f)==0x0f ) return e;
else goto loopkey;
}
}
return f;
}
//----------------------------------------------------------------------------------------------------------------
void process(long i,unsigned char *p,unsigned char z)//-------------------------
{
long j=100000;
long x,w=0;
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) {p[s]=10;}
i%=j; j/=10; s--;
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 ;}
}
if(cv==1) {if(pontdata==5) p[pontdata]=55;
else { while(p[w]!=10){w++;} p[w]=12;} }
}
//-------------------------------------------------------------------------------------------------------------------
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 + -