📄 8255.c
字号:
LCDCS20;LCDCS11;
disp_zf(2,16, num[re/1000]);
disp_zf(2,24, num[(re/100)%10]);
disp_zf(2,32, num[(re/10)%10]);
disp_zf(2,40, num[re%10]);
}
}
void pinlvbujin()
{
if((key&0x0f)==13)
{ while((key&0x0f)!=15) ;
jianzhi[4]=jianzhi[4]+1;
if(jianzhi[4]>9)
{ jianzhi[3]++; jianzhi[4]=0;
if(jianzhi[3]>9)
{jianzhi[2]++;jianzhi[3]=0;
if(jianzhi[2]>9)
{jianzhi[1]++; jianzhi[2]=0;
if(jianzhi[1]>9)
{jianzhi[1]=0;jianzhi[0]++;
if(jianzhi[0]>=5){ jianzhi[0]=5;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;jianzhi[4]=0;}
}
}
}
}
pinlv=pinlv+1;if(pinlv>=50000)
{pinlv=50000;jianzhi[0]=5;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;jianzhi[4]=0;}
ad9851(pinlv);delay(3000);
xianshi31();
}
if((key&0x0f)==14)
{ while((key&0x0f)!=15) ;
jianzhi[4]=jianzhi[4]-1;
if(jianzhi[4]<0)
{ jianzhi[3]--; jianzhi[4]=10+jianzhi[4];
if(jianzhi[3]<0)
{jianzhi[2]--;jianzhi[3]=10+jianzhi[3];
if(jianzhi[2]<0)
{jianzhi[1]--; jianzhi[2]=10+jianzhi[2];
if(jianzhi[1]<0)
{jianzhi[0]--;jianzhi[1]=10+jianzhi[1];
if(jianzhi[0]<0){ jianzhi[0]=0;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;jianzhi[4]=0;}
}
}
}
}
pinlv=pinlv-1;if(pinlv<=0) {pinlv=0; jianzhi[0]=0;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;jianzhi[4]=0;}
ad9851(pinlv);
xianshi31();
}
}
void guoliujianche(void)
{int j;
unsigned char x=0;
EIMSK=0X00;
time++;
//writePC(1,1);
if(time<=2)
{
sw1;//继电器置1
for(j=0;j<3000;j++)
{/*erjiguanON*/;fengmingqiON;delay(300);/*erjiguanOFF;*/fengmingqiOFF;delay(300);
if((key&0x0f)!=15) { j=3000; /*erjiguanOFF;*/fengmingqiOFF;}//有键按下消除报警
}
sw0;//继电器置0
}
if(time>2)
{guoliu();
sw1;//继电器置1
while(1)
{
/*erjiguanON;*/fengmingqiON;delay(300);/*erjiguanOFF;*/fengmingqiOFF;delay(300);
}
}
EIMSK=0X10;
}
void main(void)
{
init_IO();
reset82551;
delay(1000);
reset82550;
delay(1000);
writecommand(0x80);
reset98511;
delay(5);
reset98510;
sw0;
init_lcd();
//writePB(0xaa);
startmsg();
delay(30000);
F0:SREG=0X80;EICRB=0X00;/*低电平触发*/EIMSK=0X00;/*关中断*/
tongdao(0);
caidan();
writeDA=0;
startDA(0);
while(!(((key&0x0f)==1)|((key&0x0f)==2)|((key&0x0f)==3))){;}
if((key&0x0f)==1)
{
delay(5000);while((key&0x0f)!=15){;};tongdao(1);/*模拟开关*/ xianshi10();
LCDCS20;LCDCS11;
F1: disp_zf(2,24,num[0]);disp_zf(2,40,num[0]); jianzhi[0]=0;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;
while(!(((key&0x0f)<=9&(key&0x0f)>=0)|(key&0x0f)==11|(key&0x0f)==10)) {disp_zf(2,16,num[0]);delay(300); disp_zf(2,16,kongke);}
if((key&0x0f)<=9&(key&0x0f)>=0)
{disp_zf(2,16,num[(key&0x0f)]); jianzhi[0]=(key&0x0f);delay(5000);while((key&0x0f)!=15){;}}
if((key&0x0f)==10)
{delay(5000);while((key&0x0f)!=15){;}
disp_zf(2,16,num[0]);EIMSK=0X10;
writeDA=((jianzhi[0]*100+jianzhi[1]*10+jianzhi[2])*25)/3;
if((jianzhi[0]*100+jianzhi[1]*10+jianzhi[2])>=120){ writeDA=1000;jianzhi[0]=1;jianzhi[1]=2;jianzhi[2]=0; }xianshi11();
startDA(writeDA);
while(1)
{ xianshiAD1(7);
dianyabujin();
//writePC(1,0);
if(((key&0x0f)==11)){delay(5000);while((key&0x0f)!=15){;}goto F0;}
}
}
if((key&0x0f)==11)
{delay(5000); while((key&0x0f)!=15); goto F0;}
F2: disp_zf(2,40,num[0]);jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;
while(!(((key&0x0f)<=9&(key&0x0f)>=0)|(key&0x0f)==11|(key&0x0f)==10)) {disp_zf(2,24,num[0]);delay(300); disp_zf(2,24,kongke); if((key&0x0f)==12) {delay(3000);while((key&0x0f)!=15){;} goto F1;}}
if((key&0x0f)<=9&(key&0x0f)>=0)
{disp_zf(2,24,num[(key&0x0f)]); jianzhi[1]=(key&0x0f);delay(5000);while((key&0x0f)!=15){;}}
if((key&0x0f)==10)
{delay(5000);while((key&0x0f)!=15){;}
disp_zf(2,24,num[0]);EIMSK=0X10;
writeDA=((jianzhi[0]*100+jianzhi[1]*10+jianzhi[2])*25)/3;
if((jianzhi[0]*100+jianzhi[1]*10+jianzhi[2])>=120){ writeDA=1000;jianzhi[0]=1;jianzhi[1]=2;jianzhi[2]=0; }xianshi11();
startDA(writeDA);
while(1)
{xianshiAD1(7);
dianyabujin();
// writePC(1,0);
if(((key&0x0f)==11)) { delay(5000);while((key&0x0f)!=15){;} goto F0;}
}
}
if((key&0x0f)==11)
{ delay(5000);while(((key&0x0f)==11)); goto F0;}
F3: jianzhi[2]=0;jianzhi[3]=0;
while(!(((key&0x0f)<=9&(key&0x0f)>=0)|(key&0x0f)==11|(key&0x0f)==10)) {disp_zf(2,40,num[0]);delay(300); disp_zf(2,40,kongke) ; if((key&0x0f)==12) {delay(3000);while(((key&0x0f)==12)); ;goto F2;} }
if((key&0x0f)<=9&(key&0x0f)>=0)
{disp_zf(2,40,num[(key&0x0f)]); jianzhi[2]=(key&0x0f);delay(3000);while((key&0x0f)!=15){;}}
if((key&0x0f)==10)
{ delay(5000); while((key&0x0f)!=15){;}
disp_zf(2,40,num[0]); EIMSK=0X10;
writeDA=((jianzhi[0]*100+jianzhi[1]*10+jianzhi[2])*25)/3 ;
if((jianzhi[0]*100+jianzhi[1]*10+jianzhi[2])>=120){ writeDA=1000;jianzhi[0]=1;jianzhi[1]=2;jianzhi[2]=0; }xianshi11();startDA(writeDA);
while(1)
{xianshiAD1(7);
dianyabujin();
//writePC(1,0);
if(((key&0x0f)==11)) {delay(3000);while((key&0x0f)!=15){;} goto F0;}
}
}
if((key&0x0f)==11)
{ while(((key&0x0f)==11)); goto F0;}
while(!((key&0x0f)==11|(key&0x0f)==10)) if((key&0x0f)==12) {delay(5000);while((key&0x0f)!=15){;} ;goto F3;}
if((key&0x0f)==10)
{ delay(5000);while(((key&0x0f)==10));
writeDA=((jianzhi[0]*100+jianzhi[1]*10+jianzhi[2])*25)/3;EIMSK=0X10;
if((jianzhi[0]*100+jianzhi[1]*10+jianzhi[2])>=120){ writeDA=1000;jianzhi[0]=1;jianzhi[1]=2;jianzhi[2]=0; }xianshi11();startDA(writeDA);
while(1)
{xianshiAD1(7);
dianyabujin(); //writePC(1,0);
if(((key&0x0f)==11)) {delay(3000); while((key&0x0f)!=15){;} goto F0;}
}
}
if((key&0x0f)==11) {delay(5000); while((key&0x0f)!=15){;}goto F0;}
}
if((key&0x0f)==2)
{ delay(5000); while((key&0x0f)!=15){;} tongdao(2);xianshi20();
jianzhi[0]=0;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;
LCDCS20;LCDCS11;
F4: disp_zf(2,24,num[0]);disp_zf(2,32,num[0]);disp_zf(2,40,num[0]);
jianzhi[0]=0;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;
while(!(((key&0x0f)<=9&(key&0x0f)>=0)|(key&0x0f)==11|(key&0x0f)==10)) {disp_zf(2,16,num[0]);delay(300); disp_zf(2,16,kongke);}
jianzhi[0]=0;
if((key&0x0f)<=9&(key&0x0f)>=0)
{disp_zf(2,16,num[(key&0x0f)]); jianzhi[0]=(key&0x0f);delay(5000); while((key&0x0f)!=15){;}}
if((key&0x0f)==10)
{delay(5000); while(((key&0x0f)==10));
disp_zf(2,16,num[0]);
writeDA=(jianzhi[0]*1000+jianzhi[1]*100+jianzhi[2]*10+jianzhi[3])/2;
if((jianzhi[0]*1000+jianzhi[1]*100+jianzhi[2]*10+jianzhi[3])>=2000){ writeDA=1000;jianzhi[0]=1;jianzhi[1]=2;jianzhi[2]=0; }xianshi21();
startDA(writeDA);
while(1)
{xianshiAD2(2);
dianliubujin();
if(((key&0x0f)==11)){delay(5000); while((key&0x0f)!=15){;} goto F0;}
}
}
if((key&0x0f)==11)
{delay(5000); while((key&0x0f)!=15){;} goto F0;}
F5:disp_zf(2,32,num[0]);disp_zf(2,40,num[0]);
jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;
while(!(((key&0x0f)<=9&(key&0x0f)>=0)|(key&0x0f)==11|(key&0x0f)==10))
{disp_zf(2,24,num[0]);delay(300); disp_zf(2,24,kongke);
if((key&0x0f)==12) {delay(5000);while((key&0x0f)!=15){;} goto F4;}
}
jianzhi[1]=0;
if((key&0x0f)<=9&(key&0x0f)>=0)
{disp_zf(2,24,num[(key&0x0f)]); jianzhi[1]=(key&0x0f);delay(5000);while((key&0x0f)!=15){;}}
if((key&0x0f)==10)
{ delay(5000);while((key&0x0f)!=15){;}
disp_zf(2,24,num[0]);
writeDA=(jianzhi[0]*1000+jianzhi[1]*100+jianzhi[2]*10+jianzhi[3])/2;
if((jianzhi[0]*1000+jianzhi[1]*100+jianzhi[2]*10+jianzhi[3])>=2000){writeDA=1000; jianzhi[0]=2;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0; }xianshi21();;startDA(writeDA);
while(1)
{xianshiAD2(2);
dianliubujin();
if(((key&0x0f)==11)) {delay(5000); while((key&0x0f)!=15){;} goto F0;}
}
}
if((key&0x0f)==11)
{ delay(5000);while((key&0x0f)!=15){;} goto F0;}
F6: disp_zf(2,40,num[0]); jianzhi[2]=0;jianzhi[3]=0;
while(!(((key&0x0f)<=9&(key&0x0f)>=0)|(key&0x0f)==11|(key&0x0f)==10)) {disp_zf(2,32,num[0]); delay(300);disp_zf(2,32,kongke);if((key&0x0f)==12) {delay(3000);while((key&0x0f)!=15){;}goto F5;} }
jianzhi[2]=0;
if((key&0x0f)<=9&(key&0x0f)>=0)
{disp_zf(2,32,num[(key&0x0f)]); jianzhi[2]=(key&0x0f);delay(3000);while((key&0x0f)!=15){;}}
if((key&0x0f)==10)
{ delay(5000);while((key&0x0f)!=15){;}
disp_zf(2,32,num[0]);
writeDA=(jianzhi[0]*1000+jianzhi[1]*100+jianzhi[2]*10+jianzhi[3])/2;
if((jianzhi[0]*1000+jianzhi[1]*100+jianzhi[2]*10+jianzhi[3])>=2000){ writeDA=1000;jianzhi[0]=2;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0; }
xianshi21();
startDA(writeDA);
while(1)
{xianshiAD2(2);
dianliubujin();
if(((key&0x0f)==11)){ delay(3000);while((key&0x0f)!=15){;} goto F0;}
}
}
if((key&0x0f)==11)
{delay(5000); while((key&0x0f)!=15){;} goto F0;}
F7: jianzhi[3]=0;
while(!(((key&0x0f)<=9&(key&0x0f)>=0)|(key&0x0f)==11|key==10)) {disp_zf(2,40,num[0]);delay(300); disp_zf(2,40,kongke);if((key&0x0f)==12) {delay(3000); while((key&0x0f)!=15){;}goto F6;} }
if((key&0x0f)<=9&(key&0x0f)>=0)
{disp_zf(2,40,num[(key&0x0f)]); jianzhi[3]=(key&0x0f);delay(5000);while((key&0x0f)!=15){;}}
if((key&0x0f)==10)
{delay(5000);while((key&0x0f)!=15){;}
disp_zf(2,40,num[0]);
writeDA=(jianzhi[0]*1000+jianzhi[1]*100+jianzhi[2]*10+jianzhi[3])/2;
if((jianzhi[0]*1000+jianzhi[1]*100+jianzhi[2]*10+jianzhi[3])>=2000){ writeDA=1000;jianzhi[0]=2;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0; }xianshi21();
startDA(writeDA);
while(1)
{xianshiAD2(2);
dianliubujin();
if(((key&0x0f)==11)) {delay(5000); while((key&0x0f)!=15){;}; goto F0;}
}
}
if((key&0x0f)==11)
{delay(3000);while((key&0x0f)!=15){;} goto F0;}
while(!((key&0x0f)==11|(key&0x0f)==10)) if((key&0x0f)==12) {delay(5000); while((key&0x0f)!=15){;}goto F7;}
if((key&0x0f)==10)
{ delay(5000); while((key&0x0f)!=15){;}
writeDA=(jianzhi[0]*1000+jianzhi[1]*100+jianzhi[2]*10+jianzhi[3])/2;
if((jianzhi[0]*1000+jianzhi[1]*100+jianzhi[2]*10+jianzhi[3])>=2000){ writeDA=1000;jianzhi[0]=2;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0; }xianshi21();
startDA(writeDA);
while(1)
{xianshiAD2(2) ;
dianliubujin();
if(((key&0x0f)==11)){delay(5000); while((key&0x0f)!=15){;} goto F0;}
}
}
if((key&0x0f)==11) { delay(5000);while((key&0x0f)!=15){;} goto F0;}
}
if((key&0x0f)==3)
{delay(5000); while((key&0x0f)!=15){;}
xianshi30();
LCDCS11;LCDCS20;
F8: jianzhi[0]=0;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;jianzhi[4]=0;
while(!((((key&0x0f)<=9)&((key&0x0f)>=0))|((key&0x0f)==11)|((key&0x0f)==10)))
{disp_zf(2,0,num[0]); disp_zf(2,0,kongke);}
if((key&0x0f)<=9&(key&0x0f)>=0)
{jianzhi[0]=(key&0x0f);disp_zf(2,0,num[jianzhi[0]]);delay(3000);while((key&0x0f)!=15) ;}
if((key&0x0f)==10)
{delay(5000);
while((key&0x0f)!=15) ;
pinlv=((long int )jianzhi[0])*10000+jianzhi[1]*1000+jianzhi[2]*100+jianzhi[3]*10+jianzhi[4];
if(jianzhi[0]>=5)
{ pinlv=50000; jianzhi[0]=5;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;jianzhi[4]=0;}
ad9851(pinlv);
xianshi31();
while(1)
{ pinlvbujin();
if((key&0x0f)==11){ delay(5000);while((key&0x0f)!=15) ;goto F0;}
}
}
if((key&0x0f)==11) { delay(5000);while((key&0x0f)!=15) ;goto F0;}
F9:jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;jianzhi[4]=0;
while(!((((key&0x0f)<=9)&((key&0x0f)>=0))|((key&0x0f)==11)|((key&0x0f)==10)))
{disp_zf(2,8,num[0]);disp_zf(2,8,kongke);
if((key&0x0f)==12) {delay(3000);while((key&0x0f)!=15) ;disp_zf(2,8,num[0]);goto F8; }
}
if((key&0x0f)<=9&(key&0x0f)>=0)
{jianzhi[1]=(key&0x0f);disp_zf(2,8,num[jianzhi[1]]);delay(3000);while((key&0x0f)!=15) ;}
if((key&0x0f)==10)
{delay(5000);
while((key&0x0f)!=15) ;
pinlv=((long int )jianzhi[0])*10000+jianzhi[1]*1000+jianzhi[2]*100+jianzhi[3]*10+jianzhi[4];
if(jianzhi[0]>=5)
{ pinlv=50000; jianzhi[0]=5;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;jianzhi[4]=0;}
ad9851(pinlv);
xianshi31();
while(1)
{pinlvbujin();
if((key&0x0f)==11){ delay(5000);while((key&0x0f)!=15) ;goto F0;}
}
}
if((key&0x0f)==11) { delay(5000);while((key&0x0f)!=15) ;goto F0;}
F10: jianzhi[2]=0;jianzhi[3]=0;jianzhi[4]=0;
while(!((((key&0x0f)<=9)&((key&0x0f)>=0))|((key&0x0f)==11)|((key&0x0f)==10)))
{disp_zf(2,16,num[0]);disp_zf(2,16,kongke);
if((key&0x0f)==12) {delay(5000);while((key&0x0f)!=15) ;disp_zf(2,16,num[0]);goto F9; }
}
if((key&0x0f)<=9&(key&0x0f)>=0)
{jianzhi[2]=(key&0x0f);disp_zf(2,16,num[jianzhi[2]]);delay(3000);while((key&0x0f)!=15) ;}
if((key&0x0f)==10)
{delay(5000);
while((key&0x0f)!=15) ;
pinlv=((long int )jianzhi[0])*10000+jianzhi[1]*1000+jianzhi[2]*100+jianzhi[3]*10+jianzhi[4];
if(jianzhi[0]>=5)
{ pinlv=50000; jianzhi[0]=5;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;jianzhi[4]=0;}
ad9851(pinlv);
xianshi31();
while(1)
{pinlvbujin();
if((key&0x0f)==11){ delay(5000);while((key&0x0f)!=15) ;goto F0;}
}
}
if((key&0x0f)==11) { delay(5000);while((key&0x0f)!=15) ;goto F0;}
F11: jianzhi[3]=0; jianzhi[4]=0;
while(!((((key&0x0f)<=9)&((key&0x0f)>=0))|((key&0x0f)==11)|((key&0x0f)==10)))
{disp_zf(2,24,num[0]); disp_zf(2,24,kongke);
if((key&0x0f)==12) {delay(5000);while((key&0x0f)!=15) ;disp_zf(2,24,num[0]);goto F10; }
}
if((key&0x0f)<=9&(key&0x0f)>=0)
{jianzhi[3]=(key&0x0f);disp_zf(2,24,num[jianzhi[3]]);delay(3000);while((key&0x0f)!=15) ;}
if((key&0x0f)==10)
{delay(5000);
while((key&0x0f)!=15) ;
pinlv=((long int )jianzhi[0])*10000+jianzhi[1]*1000+jianzhi[2]*100+jianzhi[3]*10+jianzhi[4];
if(jianzhi[0]>=5)
{ pinlv=50000; jianzhi[0]=5;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;jianzhi[4]=0;}
ad9851(pinlv);
xianshi31();
while(1)
{ pinlvbujin();
if((key&0x0f)==11){ delay(5000);while((key&0x0f)!=15) ;goto F0;}
}
}
if((key&0x0f)==11) { delay(5000);while((key&0x0f)!=15) ;goto F0;}
F12: jianzhi[4]=0;
while(!((((key&0x0f)<=9)&((key&0x0f)>=0))|((key&0x0f)==11)|((key&0x0f)==10)))
{disp_zf(2,40,num[0]); disp_zf(2,40,kongke);
if((key&0x0f)==12) {delay(5000);while((key&0x0f)!=15) ;disp_zf(2,40,num[0]);goto F11; }
}
if((key&0x0f)<=9&(key&0x0f)>=0)
{jianzhi[4]=(key&0x0f);disp_zf(2,40,num[jianzhi[3]]);delay(3000);while((key&0x0f)!=15) ;}
if((key&0x0f)==10)
{delay(5000);
while((key&0x0f)!=15) ;
pinlv=((long int )jianzhi[0])*10000+jianzhi[1]*1000+jianzhi[2]*100+jianzhi[3]*10+jianzhi[4];
if(jianzhi[0]>=5)
{ pinlv=50000; jianzhi[0]=5;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;jianzhi[4]=0;}
ad9851(pinlv);
xianshi31();
while(1)
{ pinlvbujin();
if((key&0x0f)==11){ delay(5000);while((key&0x0f)!=15) ;goto F0;}
}
}
if((key&0x0f)==11) { delay(5000);while((key&0x0f)!=15) ;goto F0;}
while(!((key&0x0f)==11|(key&0x0f)==10)) if((key&0x0f)==12) {delay(5000) ;goto F12;}
if((key&0x0f)==10)
{delay(5000);
while((key&0x0f)!=15) ;
pinlv=((long int )jianzhi[0])*10000+jianzhi[1]*1000+jianzhi[2]*100+jianzhi[3]*10+jianzhi[4];
if(jianzhi[0]>=5)
{ pinlv=50000; jianzhi[0]=5;jianzhi[1]=0;jianzhi[2]=0;jianzhi[3]=0;jianzhi[4]=0;}
ad9851(pinlv);
xianshi31();
while(1)
{ pinlvbujin();
if((key&0x0f)==11){ delay(5000);while((key&0x0f)!=15) ;goto F0;}
}
}
if((key&0x0f)==11){ delay(3000);while((key&0x0f)!=15) ;goto F0;}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -