void delay() {
unsigned int x; uchar xx=100;
for(x=0;x<1000;x++); }
void delayss(int xx) {
unsigned int x;
for(x=0;x void delay_run() { int j; for(j=0;j<300;j++); } void led(uint adt) { SHW=0; 31 LED=digivalue[adt/100] ; delay() ; SHW=1; GEW=0; LED=digivalue[adt/10]-0x20 ; delay() ; GEW=1; XIW=0; LED=digivalue[adt] ; delay() ; XIW=1; } /*uchar i=0; while(1) { for(i=0;i<8;i++) { SELECT=select[i]; DIGI=digivalue[i]; delay(); } } 32 void ADC_JJ() { AD_CS=0; AD_WR=0; delay(); AD_WR=1; AD_CS=1; AD_CS=0; AD_RD=0; indata=ADDATA; delay(); AD_RD=1; indata=indata+3; } void DAC_SS(uchar x) { DA_CS=0; DA_WR=0; DADATA=x; 33 delay_run(); DA_WR=1; DA_CS=1; } char code SST516[3] _at_ 0x003b; main() {int i; float kp,ki,kd; float e1,o1,o2; P0=0xff; P1=0xff; P2=0xff; P3=0xff; outdata=0; //InitUART(); kp=40.3; ki=0.275; kd=0.3; o1=0; o2=0; 34 Tset=30; while(1) { ADC_JJ(); advalue=(indata*2-40); e1=(Tset)-advalue/10; if((kp*e1-ki*o1+kd*o2)<0) outdata=0; else outdata=(unsigned char)(kp*e1-ki*o1+kd*o2); o2=o1; o1=outdata; if((Tset-advalue/10)>=2) { outdata=250; outdatao=250; } if(outdata<=0xf0) { if(Tset>advalue/10) 35