資源描述:
《模糊pid控制溫控系統(tǒng)設(shè)計(jì)c語言程序代碼》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、WORD文檔下載可編輯/********************************************************************模糊PID控制溫控系統(tǒng)仿真設(shè)計(jì)C程序代碼********************************************************************/#include#defineucharunsignedchar#defineuintunsignedint#definePULSE200#definenumber0.035sbitSD
2、O=P2^0;sbitSDI=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;
3、floatKi;floatKd;floatErr=0.0;floatLast_Err=0.0;floatD_Err=0.0;floatSum_Err=0.0;floatU=0.0;/******************************函數(shù)功能:延時(shí)******************************/voiddelay_ms(ucharz){專業(yè)技術(shù)資料分享WORD文檔下載可編輯uchari;ucharj;for(i=z;i>0;i--)for(j=360;j>0;j--);}voiddelay_us(ucharz){u
4、chari;for(i=z;i>0;i--);}voidLCD_WriteData(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;i<
5、n;i++){a[i]=Temp%10;Temp=Temp/10;}if(y%2==1)LCD_WriteCOM(0x80+x);專業(yè)技術(shù)資料分享WORD文檔下載可編輯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_Nu
6、m(9,2,1,Temp%10);Temp=Temp/10;Show_Num(7,2,1,Temp);}voidShow_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(0x0
7、1);}/***********************************函數(shù)功能:顯示函數(shù)*************************************/voidLCD_display(void){Show_char(1,1,'T');delay_us(10);Show_char(0,1,'P');專業(yè)技術(shù)資料分享WORD文檔下載可編輯delay_us(10);Show_char(1,1,'T');delay_us(10);Show_char(2,1,':');delay_us(10);Show_Num(3,1,3,
8、P_temp);delay_us(10);Show_char(10,1,'S');delay_us(10);Show_char(11,1,'T');delay_us(10);Show_char(12,1,'