单片机控制5路PWM

118 阅读36分钟

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; 
			
			//}