רҵ
while(setsx!=1){ setsx=1; xianshi(); } }
void shaomiaoqueren() { unsigned char i; key1=~key1; if(key1){ for(i=0;i<3;i++){ key2[i]=w6[i]; } } else{ for(i=0;i<3;i++){ w6[i]=key2[i]; } t=0; } while(queren==0){ queren=1; xianshi(); } }
void ifqueren() { P3=0xff; if(queren==0){ shaomiaoqueren(); } }
void setflux(){ do{
xianshi(); P3=0xff; ifqueren(); P3=0xff; if(key1){ shangxia(); P3=0xff; zhuoyou();
wordʽ
רҵ
P3=0xff;
rk=100*w6[2]+10*w6[1]+w6[0]; } }
while(key1); }
//*********************************************** //ִв
void delay(unsigned int t)
{ unsigned int k; while(t--) {
for(k=0; k<100; k++); } }
void csp0(){ //趨ʱ delay(1); ET1=1; TH1=0xFB; TL1=0x7C; TR1=1;
while(n1>0){ xianshi(); }
f48=1;
while(n>0){ xianshi(); }
TR1=0; }
void zxbj()
{ if(ek0>5||ek0<-5){ ENABLE=1; f48=0; if(n<0){ CW=1; n=-n;
for(m=0;m<5;m++); } else{ CW=0;
for(m=0;m<5;m++); }
wordʽ
רҵ
delay(1); csp0();
ENABLE=0; ok=1; } }
//********************************************** //PID㷨 void Pid() {
rk=100*w6[2]+10*w6[1]+w6[0]; yk=uk*255/100; w6[3]=yk;
w6[4]=(yk0)/10; w6[5]=yk/100; ek0=rk-yk;
if(ek0>5||ek0<-5){ if(ek0>20||ek0<-20){ ek1=0; ek2=0; puk=ek0/2; }
else if(ek0>10||ek0<-10){ ek2=0;
puk=ek0/2-ek1/2; ek1=ek0; } else{ ek2=ek1; ek1=ek0;
puk=ek0/2-ek1/2+ek2/5; }
uk=puk+uk; if(uk>100){
puk=100+puk-uk; uk=100; }
else if(uk<0){ puk=puk-uk; uk=0; }
n=8192/100*puk; }
wordʽ
רҵ
else{ n=0;
ENABLE=0; f48=0; ek0=0; ek1=0; ek2=0; } }
//*********************************************** void main() { initxianshisetflux(); initpid(); initzxbj(); while(1){ xianshi(); rk=100*w6[2]+10*w6[1]+w6[0]; setflux(); Pid(); zxbj(); while(ok){ xianshi(); setflux(); ENABLE=0; } } }
//************************************************* //ʱ0
void timer0() interrupt 1 using 0 { TH0=0xF6; TL0=0xF8; i++; if(i>=200){ if(key1){ switch(a){ case 0:w6[t]=10;a=1;break; case 1:w6[t]=key2[t];a=0;break; } } if(ENABLE==0){
wordʽ

