資源描述:
《模糊pid控制溫控系統(tǒng)設(shè)計(jì)c語(yǔ)言程序代碼》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、/********************************************************************模糊PID控制溫控系統(tǒng)仿真設(shè)計(jì)C程序代碼********************************************************************/#include#defineucharunsignedchar#defineuintunsignedint#definePULSE200#definenumber0.035sbitSDO=P2^0;sbitS
2、DI=P2^1;sbitCS=P2^2;sbitCLK=P2^3;sbitEOC=P2^4;sbitRS=P2^5;sbitRW=P2^6;sbitEN=P2^7;sbitKEY1=P3^0;sbitKEY2=P3^1;sbitKEY3=P3^2;sbitKEY4=P3^3;sbitKEY5=P3^4;sbitIN1=P3^5;sbitIN2=P3^6;sbitENA=P3^7;ucharflag;ucharflag_start;floatS_temp=60.0;floatP_temp=20.0;floatKp;floatKi;float
3、Kd;floatErr=0.0;floatLast_Err=0.0;floatD_Err=0.0;floatSum_Err=0.0;floatU=0.0;/******************************函數(shù)功能:延時(shí)******************************/voiddelay_ms(ucharz){uchari;ucharj;for(i=z;i>0;i--)for(j=360;j>0;j--);}voiddelay_us(ucharz){uchari;for(i=z;i>0;i--);}voidLCD_W
4、riteData(ucharDat){RS=1;P1=Dat;delay_us(10);EN=1;delay_us(10);EN=0;}voidLCD_WriteCOM(ucharcom){RS=0;P1=com;delay_us(10);EN=1;delay_us(10);EN=0;}voidShow_Num(ucharx,uchary,ucharn,floatnum){uchara[3];uchari;uintTemp;Temp=(int)num;for(i=0;i5、if(y%2==1)LCD_WriteCOM(0x80+x);elseLCD_WriteCOM(0x80+0x40+x);for(i=n;i>0;i--)LCD_WriteData(a[i-1]+0x30);}voidShow_Ki(ucharnum_Ki){ucharTemp;num_Ki=Ki*100;Temp=(uchar)num_Ki;Show_Num(10,2,1,Temp%10);Temp=Temp/10;Show_Num(9,2,1,Temp%10);Temp=Temp/10;Show_Num(7,2,1,Temp);}vo
6、idShow_char(ucharx,uchary,ucharch){if(y%2==1)LCD_WriteCOM(0x80+x);elseLCD_WriteCOM(0x80+0x40+x);LCD_WriteData(ch);}voidLCD_Init(void){RW=0;EN=0;LCD_WriteCOM(0x38);LCD_WriteCOM(0x0c);LCD_WriteCOM(0x06);LCD_WriteCOM(0x01);}/***********************************函數(shù)功能:顯示函數(shù)******
7、*******************************/voidLCD_display(void){Show_char(1,1,'T');delay_us(10);Show_char(0,1,'P');delay_us(10);Show_char(1,1,'T');delay_us(10);Show_char(2,1,':');delay_us(10);Show_Num(3,1,3,P_temp);delay_us(10);Show_char(10,1,'S');delay_us(10);Show_char(11,1,'T');d
8、elay_us(10);Show_char(12,1,':');delay_us(10);Show_Num(13,1,3,S_temp);delay_us(10);Show_char(0,2,