break;
case 0x1d:
M29: if(i<=29) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M29;
}
break;
case 0x1e:
M30: if(i<=30) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M30;
}
break;
case 0x1f:
M31: if(i<=31) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M31;
}
break;
case 0x20:
M32: if(i<=32) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M32;
}
break;
case 0x21:
M33: if(i<=33) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M33;
}
break;
case 0x22:
M34: if(i<=34) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M34;
}
break;
case 0x23:
M35: if(i<=35) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M35;
}
break;
case 0x24:
M36: if(i<=36) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M36;
}
break;
case 0x25:
M37: if(i<=37) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M37;
}
break;
case 0x26:
M38: if(i<=38) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M38;
}
break;
case 0x27:
M39: if(i<=39) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M39;
}
break;
case 0x28:
M40: if(i<=40) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M40;
}
break;
case 0x29:
M41: if(i<=41) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M41;
}
break;
case 0x2a:
M42: if(i<=42) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M42;
}
break;
case 0x2b:
M43: if(i<=43) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M43;
}
break;
case 0x2c:
M44: if(i<=44) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M44;
}
break;
case 0x2d:
M45: if(i<=45) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M45;
}
break;
case 0x2e:
M46: if(i<=46) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M46;
}
break;
case 0x2f:
M47: if(i<=47) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M47;
}
break;
case 0x30:
M48: if(i<=48) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M48;
}
break;
case 0x31:
M49: if(i<=49) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M49;
}
break;
case 0x32:
M50: if(i<=50) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M50;
}
break;
case 0x33:
M51: if(i<=51) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M51;
}
break;
case 0x34:
M52: if(i<=52) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M52;
}
break;
case 0x35:
M53: if(i<=53) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M53;
}
break;
case 0x36:
M54: if(i<=54) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M54;
}
break;
case 0x37:
M55: if(i<=55) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M55;
}
break;
case 0x38:
M56: if(i<=56) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M56;
}
break;
case 0x39:
M57: if(i<=57) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M57;
}
break;
case 0x3a:
M58: if(i<=58) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M58;
}
break;
case 0x3b:
M59: if(i<=59) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M59;
}
break;
case 0x3c:
M60: if(i<=60) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto M60;
}
break;
}
}
fenpwm()
{
unsigned long long i,sum=0;
K:
if(i<=160000) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto K;
}
}
fasong()
{
Treat_TimeA1.data =60;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data =60;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data =60;
SetDisPara(Treat_TimeC1);
}
fenmiao()
{
unsigned long long i,sum=0;
i=1;
T60: if(i<=60) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto T60;
}
}
fenmiao1()
{
unsigned long long i,sum=0;
// i=60
R60: if(i<=60) //PWM方波开始计时
{
sum+=i;
i++;
miaopwm();
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
goto R60;
}
}
fasong1()
{
Treat_Time1.data --;
SetDisPara(Treat_Time1);
Treat_Time4.data --;
SetDisPara(Treat_Time4);
Treat_Time7.data --;
SetDisPara(Treat_Time7);
}
void PWM0()
{
//int i,sum=0;
unsigned long long i,sum=0;
unsigned long long t1,t2,t3,t4,t5;
unsigned char h,sum0=0x00;
h=0x01;
i=1;
//time0();
readdata10=EEPROM_read(0xF0);
readdata20=EEPROM_read(0xE0);
readdata30=EEPROM_read(0xD0);
readdata40=EEPROM_read(0xC0);
readdata50=EEPROM_read(0xFF);
t1=160000;
t2=320000;
t3=480000;
t4=640000;
t5=800000;
//h=fun1(readdata30)160000; // k=readdata301000; //readdata(); //Treat_Time13.data = Treat_Time3.data; //Treat_Time12.data = readdata10; switch( readdata30 ) { case 0x00: miao(); break; case 0x01: h=1; miao(); k1:if(i<=1) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k1; }
break;
case 0x02: miao(); h=2; k2:if(i<=2) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k3; }
break; case 0x03: miao(); h=3; k3:if(i<=3) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k3; }
break; case 0x04: miao(); h=4; k4:if(i<=4) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k4; }
break; case 0x05: miao(); h=5; k5:if(i<=5) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k5; }
break; case 0x06: miao(); k6:if(i<=6) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k6; } break; case 0x07: miao(); k7:if(i<=7) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k7; } break; case 0x08: miao(); k8:if(i<=8) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k8; } break; case 0x09: miao(); k9:if(i<=9) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k9; } break; case 0x0a: miao(); k10:if(i<=10) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k10; } break; case 0x0b: miao(); k11:if(i<=11) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k11; } break; case 0x0c: miao(); k12:if(i<=12) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k12; } break; case 0x0d: miao(); k13:if(i<=13) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k13; } break; case 0x0e: miao(); k14:if(i<=14) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k14; } break; case 0x0f: miao(); k15:if(i<=15) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k15; } break; case 0x10: miao(); k16:if(i<=16) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k16; } break; case 0x11: miao(); k17:if(i<=17) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k17; } break; case 0x12: miao(); k18:if(i<=18) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k18; } break; case 0x13: miao(); k19:if(i<=19) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k19; } break; case 0x14: miao(); k20:if(i<=20) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k20; } break; case 0x15: miao(); k21:if(i<=21) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k21; } break; case 0x16: miao(); k22:if(i<=22) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k22; } break; case 0x17: miao(); k23:if(i<=23) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k23; } break; case 0x18: miao(); k24:if(i<=24) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k24; } break; case 0x19: miao(); k25:if(i<=25) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k25; } break; case 0x1a: miao(); k26:if(i<=26) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k26; } break; case 0x1b: miao(); k27:if(i<=27) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k27; } break; case 0x1c: miao(); k28:if(i<=28) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k28; } break; case 0x1d: miao(); k29:if(i<=29) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k29; } break; case 0x1e: miao(); k30:if(i<=30) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k30; } break; case 0x1f: miao(); k31:if(i<=31) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k31; } break; case 0x20: miao(); k32:if(i<=32) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k32; } break; case 0x21: miao(); k33:if(i<=33) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k33; } break; case 0x22: miao(); k34:if(i<=34) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k34; } break; case 0x23: miao(); k35:if(i<=35) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k35; } break; case 0x24: miao(); k36:if(i<=36) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k36; } break; case 0x25: miao(); k37:if(i<=37) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k37; } break; case 0x26: miao(); k38:if(i<=38) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k38; } break; case 0x27: miao(); k39:if(i<=39) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k39; } break; case 0x28: miao(); k40:if(i<=40) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k40; } break; case 0x29: miao(); k41:if(i<=41) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k41; } break; case 0x2a: miao(); k42:if(i<=42) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k42; } break; case 0x2b: miao(); k43:if(i<=43) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k43; } break; case 0x2c: miao(); k44:if(i<=44) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k44; } break; case 0x2d: miao(); k45:if(i<=45) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k45; } break; case 0x2e: miao(); k46:if(i<=46) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k46; } break; case 0x2f: miao(); k47:if(i<=47) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k47; } break; case 0x30: miao(); k48:if(i<=48) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k48; } break; case 0x31: miao(); k49:if(i<=49) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k49; } break; case 0x32: miao(); k50:if(i<=50) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k50; } break; case 0x33: miao(); k51:if(i<=51) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k51; } break; case 0x34: miao(); k52:if(i<=52) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k52; } break; case 0x35: miao(); k53:if(i<=53) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k53; } break; case 0x36: miao(); k54:if(i<=54) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k54; } break; case 0x37: miao(); k55:if(i<=55) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k55; } break; case 0x38: miao(); k56:if(i<=56) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k56; } break; case 0x39: miao(); k57:if(i<=57) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k57; } break; case 0x3a: miao(); k58:if(i<=58) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k58; } break; case 0x3b: miao(); k59:if(i<=59) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k59; } break; case 0x3c: miao(); k60:if(i<=60) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k60; } break; case 0x3d: miao(); k61:if(i<=61) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k61; } break; case 0x3e: miao(); k62:if(i<=62) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k62; } break; case 0x3f: miao(); k63:if(i<=63) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k63; } break; case 0x40: miao(); k64:if(i<=64) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k64; } break; case 0x41: miao(); k65:if(i<=65) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k65; } break; case 0x42: miao(); k66:if(i<=66) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k66; } break; case 0x43: miao(); k67:if(i<=67) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k67; } break;
case 0x44:
miao();
k68:if(i<=68) //PWM方波开始计时
{
sum+=i;
i++;
fasong1();
fasong();
fenmiao();
goto k68;
}
break; case 0x45: miao(); k69:if(i<=69) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k69; } break; case 0x46: miao(); k70:if(i<=70) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k70; } break; case 0x47: miao(); k71:if(i<=71) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k71; } break; case 0x48: miao(); k72:if(i<=72) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k72; } break; case 0x49: miao(); k73:if(i<=73) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k73; } break; case 0x4a: miao(); k74:if(i<=74) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k74; } break; case 0x4b: miao(); k75:if(i<=75) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k75; } break; case 0x4c: miao(); k76:if(i<=76) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k76; } break; case 0x4d: miao(); k77:if(i<=77) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k77; } break; case 0x4e: miao(); k78:if(i<=78) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k78; } break; case 0x4f: miao(); k79:if(i<=79) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k79; } break; case 0x50: miao(); k80:if(i<=80) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k80; } break; case 0x51: miao(); k81:if(i<=81) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k81; } break; case 0x52: miao(); k82:if(i<=82) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k82; } break; case 0x53: miao(); k83:if(i<=83) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k83; } break; case 0x54: miao(); k84:if(i<=84) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k84; } break; case 0x55: miao(); k85:if(i<=85) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k85; } break; case 0x56: miao(); k86:if(i<=86) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k86; } break; case 0x57: miao(); k87:if(i<=87) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k87; } break; case 0x58: miao(); k88:if(i<=88) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k88; } break; case 0x59: miao(); k89:if(i<=89) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k89; } break; case 0x5a: miao(); k90:if(i<=90) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k90; } break; case 0x5b: miao(); k91:if(i<=91) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k91; } break; case 0x5c: miao(); k92:if(i<=92) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k92; } break; case 0x5d: miao(); k93:if(i<=93) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k93; } break; case 0x5e: miao(); k94:if(i<=94) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k94; } break; case 0x5f: miao(); k95:if(i<=95) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k95; } break; case 0x60: miao(); k96:if(i<=96) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k96; } break; case 0x61: miao(); k97:if(i<=97) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k97; } break; case 0x62: miao(); k98:if(i<=98) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k98; } break; case 0x63: miao(); k99:if(i<=99) //PWM方波开始计时 { sum+=i; i++; fasong1(); fasong(); fenmiao(); goto k99; } break; } system_init(); //B_LE01; // B_LE11; //B_LE21; // B_LE31; //Watchdog_init(); //PORTB=0x00; //DDRB=0x00; } void PWM1() { int i; //r=1;
delay_ns1(90);
// DelayMs(10);
//delay_ns(60); //让它响
//delay_nms(100);
B_LE00; //打开蜂鸣器
B_LE10;
B_LE20;
B_LE30;
B_LE40;
}
void PWM2()
{
A_LE00; //打开蜂鸣器
A_LE10;
A_LE20;
A_LE30;
A_LE40; //打开蜂鸣器
A_LE50;
A_LE60;
A_LE70;
//A_LE00; //打开蜂鸣器
// A_LE10;
//A_LE20;
//A_LE30;
//A_LE40; //打开蜂鸣器
// A_LE50;
// A_LE60;
// A_LE70;
C_LE00; //打开蜂鸣器
C_LE10;
C_LE20;
C_LE30;
C_LE40; //打开蜂鸣器
C_LE50;
C_LE60;
C_LE70;
} void PWM() { int i;
while(1)
{
for(i=10;i>0;i--)
{
//DelayMs(10)
// delay_ns(100);
//delay_nms(10);
Data_IO=0xAA; //打开蜂鸣器
//DelayMs(10)
//delay_ns(100); //让它响
//delay_nms(100);
Data_IO=0x55; //打开蜂鸣器
}
}
}
RELAY.H源码
relay1() { //Data_IO=0x00; //继电器无动作,接通15V //Data_DDR=0X00; //relay00;// 第一个继电器吸合 //relay10; // 第二个继电器吸合,接通24V
//relay20; // 三个继电器同时吸合,接通36V
delay_nms(10);
relay30; //蜂鸣器报警
delay_nms(10);
relay31; //蜂鸣器关闭
}
relay2()
{ //Data_IO=0x00; //继电器无动作,接通15V //Data_DDR=0X00; //relay00;// 第一个继电器吸合 relay10; // 第二个继电器吸合,接通24V
relay20; // 三个继电器同时吸合,接通36V
delay_nms(10);
relay30; //蜂鸣器报警
delay_nms(10);
relay31; //蜂鸣器关闭
}
relay3()
{ //Data_IO=0x00; //继电器无动作,接通15V //Data_DDR=0X00; relay00;// 第一个继电器吸合 relay10; // 第二个继电器吸合,接通24V
//relay20; // 三个继电器同时吸合,接通36V
delay_nms(10);
relay30; //蜂鸣器报警
delay_nms(10);
relay31; //蜂鸣器关闭
}
RELAY1() {
Data_IO1=0x00; //继电器无动作,接通15V
Data_DDR1=0X00;
}
RELAY2()
{
Data_IO1=0x00; //打开第二个继电器,接通24V
Data_DDR1=0X02;
}
RELAY3()
{
Data_IO1=0x00; //2个继电器同时吸合,接通36V
Data_DDR1=0X07;
TIME.H源码 unsigned long long i,sum=0;
#pragma interrupt_handler int0_isr:iv_INT0 void int0_isr(void) { //external interupt on INT0 }
//ADC initialize // Conversion time: 16uS void adc_init(void) { ADCSRA = 0x00; //disable adc ADMUX = 0xc2; //select adc input 2 ACSR = 0x80; ADCSRA = 0xcf;//|| 0x40; }
#pragma interrupt_handler adc_isr:iv_ADC void adc_isr(void) { //conversion complete, read value (int) using... ad_value=ADCL; //Read 8 low bits first (important) ad_value|=(int)ADCH << 8; //read 2 high bits and shift into top byte temp_flag = 1; }
/************************************************
函数功能: 打开蜂鸣器;只能在19200波特率下设置;
/
void BeepOpen(void)
{
beep_flag.data = 1;
}
/
函数功能: 关闭蜂鸣器,只能在19200波特率下设置;
/
void BeepClose(void)
{
beep_flag.data = 0;
}
/
函数功能: 蜂鸣器鸣叫;只能在19200波特率下设置;
入口参数: 鸣叫时间;
/
void Beep(unsigned char ms)
{
if(beep_flag.data)
beep_time = ms10;
}
/*
函数功能: 利用定时器0产生准确延迟;
入口参数: 毫秒数;
************************************************/
void DelayMs(unsigned int delay_ms)
{
ms = delay_ms;
TCCR0 = 0x03; //打开定时器0
while(ms)
;
TCCR0 = 0x00; //关闭定时器0
}
void DelayNs(unsigned int delay_ns)
{
ms = delay_ns;
TCCR0 = 0x01; //打开定时器0
while(ms)
;
TCCR0 = 0x00; //关闭定时器0
}
void delay_100us1(void) { unsigned int i; for(i = 0; i < 9; i ++) { _NOP(); _NOP(); }; } //************************************************************************* // 数据处理函数 //************************************************************************* void data_do(uint temp_d) { uchar A2t; A1=temp_d/100; //分出百,十,和个位 A2t=temp_d%100; A2=A2t/10; A3=A2t%10; } //TIMER0 initialize - prescale:32 // WGM: Normal // desired value: 1KHz // actual value: 1.000KHz (0.0%) void timer0_init(void) { //TCCR0 = 0x00; //stop // ASSR = 0x00; //set async mode // TCNT0 = 0x83; //set count // OCR0 = 0x7D; // TCCR0 = 0x03; //start timer
TCCR0=0x07; //普通模式,OC0不输出,1024分频 TCNT0=f_count; //初值,定时为10ms TIFR=0x01; //清中断标志位 TIMSK=0x01; //使能定时器0溢出中断 }
#pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
void timer0_ovf_isr(void)
{
TCNT0 = 0x83; //reload counter value
if(ms)
ms--;
if(OCR0 = readdata20)
{
for(i=1;i<OCR0;i++)
{
//初值,定时为10ms
B_LE01; //打开蜂鸣器
B_LE11;
B_LE21;
B_LE31;
B_LE41;
}
}
if(OCR0 = readdata10)
{
for(i=1;i<OCR0;i++)
{
//初值,定时为10ms
B_LE00; //打开蜂鸣器
B_LE10;
B_LE20;
B_LE30;
B_LE40;
}
}
}
//************************************************************************* // 定时器0中断服务子程序 //************************************************************************* #pragma interrupt_handler TIMER0_ISR:iv_TIM0_OVF void TIMER0_ISR() {
TCNT0=f_count; //定时器赋初值,非自动重装模式
if(time_1s_count!=100) { time_1s_count++; //定时器定时10ms,计数100次为1s // time_1s_flag=0; //未到1s,标志位为0 } else { if(second!=999) //最大计时999s { second++; } else second=0; //到999s则清0 time_1s_count=0; // time_1s_flag=1; data_do(second); //将秒转化为BCD码,供显示 } }
//TIMER1 initialize - prescale:64 // WGM: 0) Normal, TOP=0xFFFF // desired value: 1KHz // actual value: 1.008KHz (0.8%) void timer1_init(void) { TCCR1B = 0x00; //stop TCNT1H = 0xFF; //setup TCNT1L = 0xC2; OCR1AH = 0x00; OCR1AL = 0x3E; OCR1BH = 0x00; OCR1BL = 0x3E; OCR1CH = 0x00; OCR1CL = 0x3E; ICR1H = 0x00; ICR1L = 0x3E; TCCR1A = 0x00; TCCR1B = 0x03; //start Timer }
#pragma interrupt_handler timer1_ovf_isr:iv_TIM1_OVF
void timer1_ovf_isr(void)
{
//TIMER1 has overflowed
TCNT1H = 0xFF; //reload counter high value
TCNT1L = 0xC2; //reload counter low value
//if(OCR1A = readdata20)
// {
//for(i=1;i<OCR1A;i++)
//{
//初值,定时为10ms
//B_LE01; //打开蜂鸣器
//B_LE11;
//B_LE21;
//B_LE31;
//B_LE41;
//}
//}
//if(OCR1B = readdata10)
//{
//for(i=1;i<OCR1B;i++)
//{
//初值,定时为10ms
//B_LE00; //打开蜂鸣器
//B_LE10;
//B_LE20;
//B_LE30;
//B_LE40;
//}
//}
//delay_ns(99-readdata10);//调整PWM波形占空比
delay_ns(readdata10*10);//调整PWM波形占空比
//delay_ns(800);
//delay_nms(readdata20);//调整PWM波形占空比
//DelayNs(readdata20);
//delay_ns(10000);//调整PWM波形占空比
B_LE01; //打开蜂鸣器
B_LE11;
B_LE21;
B_LE31;
B_LE41;
//delay_nms(99-readdata10);//调整PWM波形占空比
//DelayNs(readdata10);
//delay_ns(200);
delay_ns(readdata20*10);//调整PWM波形占空比
// delay_ns(100);//调整PWM波形占空比
B_LE00; //打开蜂鸣器
B_LE10;
B_LE20;
B_LE30;
B_LE40;
}
//TIMER2 initialize - prescale:1024 // WGM: Normal // desired value: 20Hz // actual value: 20.032Hz (0.2%) void timer2_init(void) { TCCR2 = 0x00; //stop TCNT2 = 0x3D; //setup OCR2 = 0xC3; TCCR2 = 0x05; //start }
#pragma interrupt_handler timer2_ovf_isr:iv_TIM2_OVF void timer2_ovf_isr(void) { TCNT2 = 0x05; //reload counter value
}
//Watchdog initialize
// prescale: 512K
void watchdog_init(void)
{
WDR (); //this prevents a timeout on enabling
WDTCR |= (1<<WDCE) | (1<<WDE);/* 30-Oct-2006 Umesh*/
WDTCR = 0x0D; //WATCHDOG ENABLED - dont forget to issue WDRs
}
//#include "bus_429.h" //#include "main.h" #include <iom128v.h> #include <macros.h>
/************************************************ 获取发送频道的缓冲区状态; 返回值:每一位对应一个发送通道fifo状态,0:空,1:非空; 只有前四位有效,因为只有四个发送通道; ************************************************/ unsigned char GetOutFifoStatus(void) { unsigned char out_fifo_status = * OUT_FIFO_STATUS_ADDRESS; return out_fifo_status; }
/************************************************ 获取接收频道的状态(缓冲区非空或者校验错误之类的); 返回值:每一位对应一个接收通道fifo状态,0:空,1:非空; ************************************************/ unsigned char GetInFifoStatus(void) { unsigned char in_fifo_status = * IN_FIFO_STATUS_ADDRESS; return in_fifo_status; }
/************************************************ 获取接收频道的状态(缓冲区非空或者校验错误之类的); 返回值:每一位对应一个接收通道错误状态,0:无,1:有; ************************************************/ unsigned char GetInErrorStatus(void) { unsigned char in_error_status = * IN_ERROR_STATUS_ADDRESS; return in_error_status; }
/************************************************ 设置接收频道的lable过滤; 参数1,通道值:0-7; 参数2,可接收的lable值:0-255; 返回值0:失败;1:成功; **********************************************/ unsigned char SetInLable(unsigned char in_channel,unsigned char lable) { unsigned char * set_address = (unsigned char) (LABLE_BASIC_ADDRESS + in_channel * 32 + lable/8); unsigned char set_lable = ( set_address) | (0x01 << (lable%8));
*set_address = set_lable; if((*set_address) == set_lable) return 1; else return 0; }
/************************************************ 设置发送频道的字间隔; 参数1,通道值:0-3; 参数2,字间隔数:3-100; 返回值0:失败;1:成功; ***********************************************/ unsigned char SetOutGap(unsigned char out_channel,unsigned char gap) { unsigned char * set_address = (unsigned char) (OUT_BASIC_ADDRESS + out_channel * 8 + 6); if(gap<3) return 0; *set_address = gap; if((*set_address) == gap) return 1; else return 0; }
/************************************************ 设置接收通道的字间隔; 参数1,通道值:0-7; 参数2,字间隔数:2-99;必须小于连接至本通道的其他模块的发送通道的字间隔; 返回值0:失败;1:成功; ***********************************************/ unsigned char SetInGap(unsigned char in_channel,unsigned char gap) { unsigned char * set_address = (unsigned char) (IN_BASIC_ADDRESS + in_channel * 8 + 6); if(gap<2) return 0; *set_address = gap; if((*set_address) == gap) return 1; else return 0; }
/************************************************ 设置发送频道的奇偶校验方式; 参数1,通道值:0-7; 参数2,校验方式:0:无校验,1:奇校验,2:偶校验; 返回值0:失败;1:成功; ***********************************************/ unsigned char SetOutParity(unsigned char out_channel,unsigned char parity_sel) { unsigned char * set_address = (unsigned char) (OUT_BASIC_ADDRESS + out_channel * 8 + 5); unsigned char set_value;
switch (parity_sel) { case 0: set_value = 0; break; case 1: set_value = 2; break; case 2: set_value = 3; break; default: return 0; } *set_address = set_value; if((*set_address) == set_value) return 1; else return 0; }
/************************************************ 设置接收频道的奇偶校验方式; 参数1,通道值:0-7; 参数2,校验方式:0:无校验,1:奇校验,2:偶校验; 返回值0:失败;1:成功; ***********************************************/ unsigned char SetInParity(unsigned char in_channel,unsigned char parity_sel) { unsigned char * set_address = (unsigned char) (IN_BASIC_ADDRESS + in_channel * 8 + 5); unsigned char set_value; switch (parity_sel) { case 0: set_value = 0; break; case 1: set_value = 2; break; case 2: set_value = 3; break; default: return 0; } *set_address = set_value; if((*set_address) == set_value) return 1; else return 0; }
/************************************************ 设置接收频道的参考频率值 典型值: 10k频率下的设置值0xc8; 参数1,通道值:0-7; 参数2,频率值:10K的整数倍; 返回值0:失败;1:成功; ***********************************************/ unsigned char SetInFreqence(unsigned char in_channel,unsigned char freq_khz) { unsigned char set_value = 0xc8/(freq_khz/10); unsigned char * set_address = (unsigned char) (IN_BASIC_ADDRESS + in_channel * 8 + 4); *set_address = set_value; if((*set_address) == set_value) return 1; else return 0; }
/************************************************ 设置发送频道的参考频率值 典型值: 10k频率下的设置值0xc8; 参数1,通道值:0-3; 参数2,频率值:10K的整数倍; 返回值0:失败;1:成功; ***********************************************/ unsigned char SetOutFreqence(unsigned char out_channel,unsigned char freq_khz) { unsigned char set_value = 0xc8/(freq_khz/10); unsigned char * set_address = (unsigned char) (OUT_BASIC_ADDRESS + out_channel * 8 + 4); *set_address = set_value; if((*set_address) == set_value) return 1; else return 0; }
/************************************************ 向指定的发送通道发送429数据; 参数1,通道值:0-3; 参数2,发送数据; ***********************************************/ void TxData429(unsigned char out_channel,unsigned long tx_data_429) { unsigned char * tx_address = (unsigned char) (OUT_BASIC_ADDRESS + out_channel * 8);
*tx_address = (unsigned char)tx_data_429; *(tx_address + 1) = (unsigned char)(tx_data_429 >> 8); *(tx_address + 2) = (unsigned char)(tx_data_429 >> 16); *(tx_address + 3) = (unsigned char)(tx_data_429 >> 24); }
/************************************************ 从指定的接收通道接收429数据; 参数1,通道值:0-7; 参数2,接收到的数据; ***********************************************/ void RxData429(unsigned char in_channel,unsigned long * rx_data_429) { unsigned char * rx_address = (unsigned char) (IN_BASIC_ADDRESS + in_channel * 8); unsigned long read_value;
- rx_data_429 = *rx_address;
read_value = *(rx_address+1);
- rx_data_429 += read_value << 8;
read_value = *(rx_address+2);
- rx_data_429 += read_value << 16;
read_value = *(rx_address+3);
- rx_data_429 += read_value << 24; }
unsigned char* OUT_FIFO_STATUS_ADDRESS = (unsigned char*) 0x4086; unsigned char* IN_FIFO_STATUS_ADDRESS = (unsigned char*) 0x4084; unsigned char* IN_ERROR_STATUS_ADDRESS = (unsigned char*) 0x4085;
unsigned char* IN_BASIC_ADDRESS = (unsigned char*) 0x4000; unsigned char* OUT_BASIC_ADDRESS = (unsigned char*) 0x4040; unsigned char* LABLE_BASIC_ADDRESS = (unsigned char*) 0x4100;
unsigned char GetInFifoStatus(void); unsigned char GetOutFifoStatus(void); unsigned char GetInErrorStatus(void); void TxData429(unsigned char out_channel,unsigned long tx_data_429); void RxData429(unsigned char in_channel,unsigned long * rx_data_429);
unsigned char SetInLable(unsigned char in_channel,unsigned char lable); unsigned char SetOutGap(unsigned char out_channel,unsigned char gap); unsigned char SetInGap(unsigned char in_channel,unsigned char gap); unsigned char SetOutParity(unsigned char out_channel,unsigned char parity_sel); unsigned char SetInParity(unsigned char in_channel,unsigned char parity_sel); unsigned char SetInFreqence(unsigned char in_channel,unsigned char freq_khz); unsigned char SetOutFreqence(unsigned char out_channel,unsigned char freq_khz);
/******************************************* 向串口0发送单个数据,查询方式 ***************************************/ void TxUart1(unsigned char i) { //CLI(); //disable all interrupts //DelayMs(1); while (!(UCSR0A & (1<<UDRE0))); / 等待发送缓冲器为空/ UDR0 = i; / 发送数据/ //SEI(); //re-enable interrupts }
/******************************************* 向串口0发送数组,查询方式 参数1:数组指针; 参数2:数组长度; *******************************************/ void TxArrayUart1(unsigned char *ptr,unsigned char number) { //CLI(); //disable all interrupts uchar i; for(i = 0; i < number; i++) { TxUart1(ptr[i]); } //SEI(); //re-enable interrupts }
/******************************************* 数据接收,等待查询方式 ***************************************/ unsigned char uart_receive1(void) { while (!(UCSR1A & (1<<RXC1))); / 等待接收数据/ return UDR1; / 获取并返回数据/ }
//UART0 initialize // desired baud rate: 19200 // actual: baud rate:19231 (0.2%) // char size: 8 bit // parity: Disabled void uart0_init(void) { UCSR0B = 0x00; //disable while setting baud rate UCSR0A = 0x00; UCSR0C = 0x06; UBRR0L = 0x0C; //set baud rate lo UBRR0H = 0x00; //set baud rate hi UCSR0B = 0x98; }
#pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC void uart0_rx_isr(void) { //uart has received a character in UDR uart1_data = UDR0;
Buffer_Zone[0] = Buffer_Zone[1]; Buffer_Zone[1] = Buffer_Zone[2]; Buffer_Zone[2] = Buffer_Zone[3]; Buffer_Zone[3] = Buffer_Zone[4]; Buffer_Zone[4] = Buffer_Zone[5]; Buffer_Zone[5] = Buffer_Zone[6]; Buffer_Zone[6] = Buffer_Zone[7]; Buffer_Zone[7] = Buffer_Zone[8]; Buffer_Zone[8] = Buffer_Zone[9]; Buffer_Zone[9] = Buffer_Zone[10]; Buffer_Zone[10] = uart1_data;
//如果数据头和尾正确,则将待处理命令和数据放入缓冲区,并将未处理指针+1; if((Buffer_Zone[2]==0x12)&&(Buffer_Zone[3]==0x34)&& (Buffer_Zone[4]==0x06)) { data_buffer[pending_data][0] = Buffer_Zone[6]; data_buffer[pending_data][1] = Buffer_Zone[7]; data_buffer[pending_data][2] = Buffer_Zone[8]; data_buffer[pending_data][3] = Buffer_Zone[9]; data_buffer[pending_data][4] = Buffer_Zone[10]; Buffer_Zone[2] = 0; if(pending_data < 10) pending_data ++; else pending_data = 0; if(BUTTON_BEEP) Beep(2); } else if((Buffer_Zone[0]==0x12)&&(Buffer_Zone[1]==0x34)&& (Buffer_Zone[2]==0x08)) { data_buffer[pending_data][0] = Buffer_Zone[4]; data_buffer[pending_data][1] = Buffer_Zone[5]; data_buffer[pending_data][2] = Buffer_Zone[6]; data_buffer[pending_data][3] = Buffer_Zone[7]; data_buffer[pending_data][4] = Buffer_Zone[8]; data_buffer[pending_data][5] = Buffer_Zone[9]; data_buffer[pending_data][6] = Buffer_Zone[10]; if(pending_data < 10) pending_data ++; else pending_data = 0; if(BUTTON_BEEP) Beep(2); } }
/************************************************ 显示温度 ************************************************/
void SendFlowTemp(void) { float temprature = 0; if(temp_flag) { temp_flag = 0; //temp[1] = temp[0]; //temp[0] = (unsigned char)(ad_value>>4); temprature = ad_value;
if(dis_temp_flag)
{
//temprature = 8 + temprature/16;
//water_temp.data = 60 + temprature * 0.60;// * 10;
//water_temp.data = (0.05384 * temprature + 9.96205 - 0.00002*temprature*temprature)*10;
water_temp.data = 0.04 * temprature + 12.4;
SetDisPara(water_temp);
}
} }
//void DealData1(void) //{ // //unsigned char tx_Data1[6] = {0x19,0x74,0x00,0x00,0x00,0x33}; //unsigned int data_point1;
//while(processed_data != pending_data) //{
// data_point1 = (256 * (unsigned int)data_buffer[processed_data][0]) + data_buffer[processed_data][1];
//time1=1;
//time2=100;
// switch(data_point1)
// {
// case 0x1101://准备工作按钮原来
// Key_return = 256 * data_buffer[processed_data][3] + data_buffer[processed_data][4];
// switch(Key_return)
// {
// case 0x01:
// DisPage(8);
// DisWorkPage();
// r = 1;
// PWM0();
//hongguang();
//hongguang1();
//readdata();
//PWM1();
//ReadUcharSaveData(0x01);
//Treat_Time10.data=A1;
//SetDisPara(Treat_Time10);
//break;
//}
// }
// }
// }
void DealData(void)
{
unsigned char tx_Data[6] = {0x19,0x74,0x00,0x00,0x00,0x33};
unsigned int data_point;
//system_init(); //系统初始化
//PWM1();
while(processed_data != pending_data)
{
data_point = (256 * (unsigned int)data_buffer[processed_data][0]) + data_buffer[processed_data][1];
time1=1;
time2=100;
switch(data_point)
{
case 0x0011:
switch(set_flag)
{
case 1:
if (Treat_Time1.data<=99)
{
Treat_Time1.data ++;
SetDisPara(Treat_Time1);
}
EEPROM_write(0xD0,Treat_Time1.data);
case 11:
if (Treat_Time1.data<=99)
{
Treat_Time1.data ++;
SetDisPara(Treat_Time1);
}
EEPROM_write(0xD0,Treat_Time1.data);
break;
case 12:
if (Treat_TimeA1.data<=60)
{
Treat_TimeA1.data ++;
SetDisPara(Treat_TimeA1);
}
EEPROM_write(0xC0,Treat_TimeA1.data);
break;
case 2:
if (Treat_Time2.data<=99)
{
Treat_Time2.data ++;
Treat_Time2.data ++;
Treat_Time2.data ++;
Treat_Time2.data ++;
Treat_Time2.data ++;
SetDisPara(Treat_Time2);
}
if (Treat_Time3.data<5)
{
Treat_Time1.data ++;
Treat_Time1.data ++;
Treat_Time1.data ++;
Treat_Time1.data ++;
Treat_Time1.data ++;
SetDisPara(Treat_Time1);
}
break;
case 3:
if (Treat_Time3.data<=20)
{
Treat_Time3.data ++;
Treat_Time3.data ++;
Treat_Time3.data ++;
Treat_Time3.data ++;
Treat_Time3.data ++;
SetDisPara(Treat_Time3);
}
EEPROM_write(0xF0, 25-Treat_Time3.data);
EEPROM_write(0xE0, Treat_Time3.data);
// readdata10=99-Treat_Time3.data;
// readdata20=Treat_Time3.data;
//EEPROM_write(0xF0,99-Treat_Time3.data);
//EEPROM_write(0xE0,Treat_Time3.data*20);
// readdata10=99-Treat_Time3.data;
// readdata20=Treat_Time3.data;
break;
}
break;
case 0x0012:
switch(set_flag)
{
case 1:
if( Treat_Time1.data>0)
{
Treat_Time1.data --;
SetDisPara(Treat_Time1);
}
EEPROM_write(0xD0,Treat_Time1.data);
break;
case 11:
if( Treat_Time1.data>0)
{
Treat_Time1.data --;
SetDisPara(Treat_Time1);
}
EEPROM_write(0xD0,Treat_Time1.data);
break;
case 12:
if( Treat_TimeA1.data>0)
{
Treat_TimeA1.data --;
SetDisPara(Treat_TimeA1);
}
EEPROM_write(0xC0,Treat_TimeA1.data);
break;
case 2:
if( Treat_Time2.data>0)
{
Treat_Time2.data --;
Treat_Time2.data --;
Treat_Time2.data --;
Treat_Time2.data --;
Treat_Time2.data --;
SetDisPara(Treat_Time2);
}
break;
case 3:
if (Treat_Time3.data>0)
{
Treat_Time3.data --;
Treat_Time3.data --;
Treat_Time3.data --;
Treat_Time3.data --;
Treat_Time3.data --;
SetDisPara(Treat_Time3);
}
EEPROM_write(0xF0, 25-Treat_Time3.data);
EEPROM_write(0xE0, Treat_Time3.data);
break;
// readdata10=99-Treat_Time3.data;
// readdata20=Treat_Time3.data;
}
break;
case 0x0013:
switch(set_flag)
{
case 4:
if (Treat_Time4.data<=99)
{
Treat_Time4.data ++;
SetDisPara(Treat_Time4);
}
EEPROM_write(0xD0,Treat_Time4.data);
break;
case 13:
if (Treat_Time4.data<=99)
{
Treat_Time4.data ++;
SetDisPara(Treat_Time4);
}
EEPROM_write(0xD0,Treat_Time4.data);
break;
case 14:
if (Treat_TimeB1.data<=60)
{
Treat_TimeB1.data ++;
SetDisPara(Treat_TimeB1);
}
EEPROM_write(0xC0,Treat_TimeB1.data);
break;
case 5:
if (Treat_Time5.data<=99)
{
Treat_Time5.data ++;
Treat_Time5.data ++;
Treat_Time5.data ++;
Treat_Time5.data ++;
Treat_Time5.data ++;
SetDisPara(Treat_Time5);
}
break;
case 6:
if (Treat_Time6.data<=20)
{
Treat_Time6.data ++;
Treat_Time6.data ++;
Treat_Time6.data ++;
Treat_Time6.data ++;
Treat_Time6.data ++;
SetDisPara(Treat_Time6);
}
EEPROM_write(0xF0,25-Treat_Time6.data);
EEPROM_write(0xE0,Treat_Time6.data);
//readdata10=99-Treat_Time3.data;
// readdata20=Treat_Time3.data;
break;
}
break;
case 0x0014:
switch(set_flag)
{
case 4:
if( Treat_Time4.data>0)
{
Treat_Time4.data --;
SetDisPara(Treat_Time4);
}
EEPROM_write(0xD0,Treat_Time4.data);
break;
case 13:
if( Treat_Time4.data>0)
{
Treat_Time4.data --;
SetDisPara(Treat_Time4);
}
EEPROM_write(0xD0,Treat_Time4.data);
break;
case 14:
if( Treat_TimeB1.data>0)
{
Treat_TimeB1.data --;
SetDisPara(Treat_TimeB1);
}
EEPROM_write(0xC0,Treat_TimeB1.data);
break;
case 5:
if( Treat_Time5.data>0)
{
Treat_Time5.data --;
Treat_Time5.data --;
Treat_Time5.data --;
Treat_Time5.data --;
Treat_Time5.data --;
SetDisPara(Treat_Time5);
}
break;
case 6:
if (Treat_Time6.data>0)
{
Treat_Time6.data --;
Treat_Time6.data --;
Treat_Time6.data --;
Treat_Time6.data --;
Treat_Time6.data --;
SetDisPara(Treat_Time6);
}
EEPROM_write(0xF0,25-Treat_Time6.data);
EEPROM_write(0xE0,Treat_Time6.data);
// readdata10=99-Treat_Time3.data;
// readdata20=Treat_Time3.data;
break;
}
break;
case 0x0015:
switch(set_flag)
{
case 7:
if (Treat_Time7.data<=99)
{
Treat_Time7.data ++;
SetDisPara(Treat_Time7);
}
EEPROM_write(0xD0,Treat_Time7.data);
break;
case 15:
if (Treat_Time7.data<=99)
{
Treat_Time7.data ++;
SetDisPara(Treat_Time7);
}
EEPROM_write(0xD0,Treat_Time7.data);
break;
case 16:
if (Treat_TimeC1.data<=60)
{
Treat_TimeC1.data ++;
SetDisPara(Treat_TimeC1);
}
EEPROM_write(0xC0,Treat_TimeC1.data);
break;
case 8:
if (Treat_Time8.data<=99)
{
Treat_Time8.data ++;
Treat_Time8.data ++;
Treat_Time8.data ++;
Treat_Time8.data ++;
Treat_Time8.data ++;
SetDisPara(Treat_Time8);
}
break;
case 9:
if (Treat_Time9.data<=20)
{
Treat_Time9.data ++;
Treat_Time9.data ++;
Treat_Time9.data ++;
Treat_Time9.data ++;
Treat_Time9.data ++;
SetDisPara(Treat_Time9);
}
EEPROM_write(0xF0,25-Treat_Time9.data);
EEPROM_write(0xE0,Treat_Time9.data);
break;
}
break;
case 0x0016:
switch(set_flag)
{
case 7:
Treat_Time7.data --;
if( Treat_Time7.data>0)
{
Treat_Time7.data --;
SetDisPara(Treat_Time7);
}
EEPROM_write(0xD0,Treat_Time7.data);
break;
case 15:
if( Treat_Time7.data>0)
{
Treat_Time7.data --;
SetDisPara(Treat_Time7);
}
EEPROM_write(0xD0,Treat_Time7.data);
break;
case 16:
if( Treat_TimeC1.data>0)
{
Treat_TimeC1.data --;
SetDisPara(Treat_TimeC1);
}
EEPROM_write(0xC0,Treat_TimeC1.data);
break;
case 8:
if( Treat_Time8.data>0)
{
Treat_Time8.data --;
Treat_Time8.data --;
Treat_Time8.data --;
Treat_Time8.data --;
Treat_Time8.data --;
SetDisPara(Treat_Time8);
}
break;
case 9:
if (Treat_Time9.data>0)
{
Treat_Time9.data --;
Treat_Time9.data --;
Treat_Time9.data --;
Treat_Time9.data --;
Treat_Time9.data --;
SetDisPara(Treat_Time9);
}
EEPROM_write(0xF0,25-Treat_Time9.data);
EEPROM_write(0xE0,Treat_Time9.data);
break;
}
break;
case 0x0017:
//Treat_Time18.data ++;
//SetDisPara(Treat_Time18);
// time1 ++;
break;
case 0x0018:
// Treat_Time18.data --;
//SetDisPara(Treat_Time18);
//time2 --;
break;
case 0x1000://准备工作按钮原来
Key_return = 256 * data_buffer[processed_data][3] + data_buffer[processed_data][4];
switch(Key_return)
{
case 0x01:
set_flag = 1;
DisCopyArea(5,400,80,650,190,400,80,0x12,0x00);
break;
case 0xA1:
set_flag = 1;
DisCopyArea(5,400,80,650,190,400,80,0x12,0x00);
break;
case 0xA2:
set_flag = 1;
DisCopyArea(5,400,80,650,190,400,80,0x12,0x00);
break;
case 0xA3:
set_flag = 1;
DisCopyArea(5,400,80,650,190,400,80,0x12,0x00);
break;
case 0xA4:
set_flag = 11;
DisCopyArea(11,400,80,650,190,400,80,0x12,0x00);
break;
case 0xA5:
set_flag = 12;
DisCopyArea(12,400,80,650,190,400,80,0x12,0x00);
break;
case 0x02:
set_flag = 2;
DisCopyArea(5,400,220,650,325,400,220,0x12,0x00);
break;
case 0x03:
set_flag = 3;
DisCopyArea(5,400,350,650,455,400,350,0x12,0x00);
break;
case 0x04:
set_flag = 4;
DisCopyArea(6,400,80,650,190,400,80,0x13,0x00);
break;
case 0xB1:
set_flag = 4;
DisCopyArea(6,400,80,650,190,400,80,0x13,0x00);
break;
case 0xB2:
set_flag = 4;
DisCopyArea(6,400,80,650,190,400,80,0x13,0x00);
break;
case 0xB3:
set_flag = 4;
DisCopyArea(6,400,80,650,190,400,80,0x13,0x00);
break;
case 0xB4:
set_flag = 13;
DisCopyArea(13,400,80,650,190,400,80,0x13,0x00);
break;
case 0xB5:
set_flag = 14;
DisCopyArea(14,400,80,650,190,400,80,0x13,0x00);
break;
case 0x05:
set_flag = 5;
DisCopyArea(6,400,220,650,325,400,220,0x13,0x00);
break;
case 0x06:
set_flag = 6;
DisCopyArea(6,400,350,650,455,400,350,0x13,0x00);
break;
case 0x07:
set_flag = 7;
DisCopyArea(7,400,80,650,190,400,80,0x14,0x00);
break;
case 0xC1:
set_flag = 7;
DisCopyArea(7,400,80,650,190,400,80,0x14,0x00);
break;
case 0xC2:
set_flag = 7;
DisCopyArea(7,400,80,650,190,400,80,0x14,0x00);
break;
case 0xC3:
set_flag = 7;
DisCopyArea(7,400,80,650,190,400,80,0x14,0x00);
break;
case 0xC4:
set_flag = 15;
DisCopyArea(15,400,80,650,190,400,80,0x14,0x00);
break;
case 0xC5:
set_flag = 16;
DisCopyArea(16,400,80,650,190,400,80,0x14,0x00);
break;
case 0x08:
set_flag = 8;
DisCopyArea(7,400,220,650,325,400,220,0x14,0x00);
break;
case 0x09:
set_flag = 9;
DisCopyArea(7,400,350,650,455,400,350,0x14,0x00);
break;
case 0x10:
DisPage(2);
DisWorkPage();
//relay2();
//hongguang();
//PWM1();
EEPROM_write(0x01,0x00);
EEPROM_write(0x02,0x00);
EEPROM_write(0x03,0x00);
EEPROM_write(0x04,0x00);
EEPROM_write(0x05,0x00);
EEPROM_write(0xF0,0x00);
EEPROM_write(0xE0,0x00);
EEPROM_write(0xD0,0x00);
EEPROM_write(0xFF,0x00);
Treat_Time1.data = 0;
Treat_TimeA1.data = 0;
Treat_Time2.data = 0;
Treat_Time3.data = 0;
SetDisPara(Treat_Time1);
SetDisPara(Treat_TimeA1);
SetDisPara(Treat_Time2);
SetDisPara(Treat_Time3);
//flag1=0;
//flag2=0;
//flag3=0;
//flag4=0;
//flag5=0;
//Watchdog_init();
break;
case 0x11:
DisPage(3);
DisWorkPage();
//ziwai();
//relay3();
//PWM1();
EEPROM_write(0x01,0x00);
EEPROM_write(0x02,0x00);
EEPROM_write(0x03,0x00);
EEPROM_write(0x04,0x00);
EEPROM_write(0x05,0x00);
EEPROM_write(0xF0,0x00);
EEPROM_write(0xE0,0x00);
Treat_Time4.data = 0;
Treat_TimeB1.data = 0;
Treat_Time5.data = 0;
Treat_Time6.data = 0;
SetDisPara(Treat_Time4);
SetDisPara(Treat_Time5);
SetDisPara(Treat_Time6);
SetDisPara(Treat_TimeB1);
//flag1=0;
//flag2=0;
//flag3=0;
//flag4=0;
//flag5=0;
//Watchdog_init();
break;
case 0x12:
DisPage(4);
DisWorkPage();
//hongwai();
//relay1();
//PWM1();
EEPROM_write(0x01,0x00);
EEPROM_write(0x02,0x00);
EEPROM_write(0x03,0x00);
EEPROM_write(0x04,0x00);
EEPROM_write(0x05,0x00);
EEPROM_write(0xF0,0x00);
EEPROM_write(0xE0,0x00);
Treat_Time7.data = 0;
Treat_TimeC1.data = 0;
Treat_Time8.data = 0;
Treat_Time9.data = 0;
SetDisPara(Treat_Time7);
SetDisPara(Treat_Time8);
SetDisPara(Treat_Time9);
SetDisPara(Treat_TimeC1);
//flag1=0;
//flag2=0;
//flag3=0;
//flag4=0;
//flag5=0;
//Watchdog_init();
break;
case 0x13:
DisCopyArea(5,20,185,95,405,20,185,0x11,0x00);
break;
// case 0x0B:
// set_flag = 10;
//DisCopyArea(2,340,100,610,230,400,80,0x15,0x00);
//break;
case 0xff:
Watchdog_init();
DisPage(1);
DisWorkPage();
break;
default:
break;
}
break;
//case 0x1101://准备工作按钮原来
// Key_return = 256 * data_buffer[processed_data][3] + data_buffer[processed_data][4];
// switch(Key_return)
// {
// case 0x01:
// DisPage(8);
// DisWorkPage();
// r = 1;
// PWM0();
//hongguang1();
//readdata();
//break;
//}