![單片機(jī)PID控制_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/28/03ea0827-7b40-4022-98f3-7ca3744c409f/03ea0827-7b40-4022-98f3-7ca3744c409f1.gif)
![單片機(jī)PID控制_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/28/03ea0827-7b40-4022-98f3-7ca3744c409f/03ea0827-7b40-4022-98f3-7ca3744c409f2.gif)
![單片機(jī)PID控制_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/28/03ea0827-7b40-4022-98f3-7ca3744c409f/03ea0827-7b40-4022-98f3-7ca3744c409f3.gif)
![單片機(jī)PID控制_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/28/03ea0827-7b40-4022-98f3-7ca3744c409f/03ea0827-7b40-4022-98f3-7ca3744c409f4.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、經(jīng)典 PID 調(diào)節(jié),恒溫控制。2009-08-11 20:37#include #include #include#include struct PID unsigned int SetPoint; / 設(shè)定目標(biāo) Desired Value unsigned int Proportion; / 比例常數(shù) Proportional Const unsigned int Integral; / 積分常數(shù) Integral Const unsigned int Derivative; / 微分常數(shù) Derivative Const unsigned int LastError; / Error-1
2、unsigned int PrevError; / Error-2 unsigned int SumError; / Sums of Errors ;struct PID spid; / PID Control Structure unsigned int rout; / PID Response (Output) unsigned int rin; / PID Feedback (Input)sbit data 仁 P1A0;sbit clk=P1Ai; sbit plus=P2A0;sbit subs=P2A1; sbit stop=P2A2; sbit output=P3A4; sbit
3、 DQ=P3A3; unsigned char flag,flag_1=0; unsigned char high_time,low_time,count=0;/ 占空比調(diào)節(jié)參數(shù) unsigned char set_temper=35;unsigned char temper; unsigned char i; unsigned char j=0; unsigned int s;/*延時(shí)子程序,延時(shí)時(shí)間以12M晶振為準(zhǔn),延時(shí)時(shí)間為30usX time*/void delay(unsigned char time)unsigned char m,n; for(n=0;ntime;n+) for(
4、m=0;m2;m+)/*寫一位數(shù)據(jù)子程序*/void write_bit(unsigned char bitval)EA=0;DQ=0; /* 拉低 DQ 以開始一個(gè)寫時(shí)序 */ if(bitval=1)_nop_();DQ=1; /* 如要寫 1,則將總線置高 */delay(5); /* 延時(shí) 90us 供 DA18B20 采樣 */DQ=1;/*釋放 DQ 總線 */_nop_();_nop_();EA=1;/* 寫一字節(jié)數(shù)據(jù)子程序*/void write_byte(unsigned char val)unsigned char i;unsigned char temp;EA=0;TR0
5、=0;for(i=0;ii; /*移位操作,將本次要寫的位移到最低位 */ temp=temp&1;write_bit(temp); /* 向總線寫該位 */ delay(7); /* 延時(shí) 120us 后 */ TR0=1;EA=1;/* 讀一位數(shù)據(jù)子程序*/unsigned char read_bit()unsigned char i,value_bit;EA=0;DQ=0;/*拉低 DQ ,開始讀時(shí)序 */_nop_();_nop_();DQ=1; /* 釋放總線 */for(i=0;i2;i+) value_bit=DQ;EA=1;return(value_bit);/* 讀一字節(jié)數(shù)據(jù)
6、子程序*/unsigned char read_byte()unsigned char i,value=0;EA=0;for(i=0;i8;i+)if(read_bit() /* 讀一字節(jié)數(shù)據(jù),一個(gè)時(shí)序中讀一次,并作移位處理 */ value|=0x01i;delay(4);/*延時(shí) 80us 以完成此次都時(shí)序,之后再讀下一數(shù)據(jù)*/EA=1;return(value);/*復(fù)位子程序* unsigned char reset()unsigned char presence;EA=0;DQ=0; /* 拉低 DQ 總線開始復(fù)位 */ delay(30); /* 保持低電平 480us*/DQ=1
7、; /* 釋放總線 */delay(3);presence=DQ;/* 獲取應(yīng)答信號(hào) */delay(28); /* 延時(shí)以完成整個(gè)時(shí)序 */EA=1;return(presence);/* 返回應(yīng)答信號(hào),有芯片應(yīng)答返回0,無芯片則返回 1*/* 獲取溫度子程序* void get_temper()unsigned char i,j;doi=reset(); /* 復(fù)位 */while(i!=0); /*1 為無反饋信號(hào) */i=0xcc; /* 發(fā)送設(shè)備定位命令 */ write_byte(i);i=0x44; /* 發(fā)送開始轉(zhuǎn)換命令 */ write_byte(i);delay(180);
8、 /*延時(shí) */doi=reset(); /* 復(fù)位 */while(i!=0);i=0xcc; /* 設(shè)備定位 */ write_byte(i);i=0xbe; /* 讀出緩沖區(qū)內(nèi)容 */ write_byte(i);j=read_byte();i=read_byte();i=(i4;temper=i|j; /* 獲取的溫度放在 temper 中 */ /*=Initialize PID Structure =*/ void PIDInit (struct PID *pp)memset ( pp,0,sizeof(struct PID);/*=PID 計(jì)算部分=*/ unsigned int
9、 PIDCalc( struct PID *pp, unsigned int NextPoint ) unsigned int dError,Error;Error = pp-SetPoint - NextPoint; / 偏差 pp-SumError += Error; / 積分 dError = pp-LastError - pp-PrevError; / 當(dāng)前微分 pp-PrevError = pp-LastError; pp-LastError = Error;return (pp-Proportion * Error / 比例項(xiàng) + pp-Integral * pp-SumEror
10、/ 積分項(xiàng) + pp-Derivative * dError); / 微分項(xiàng) /* 溫度比較處理子程序*/ compare_temper() unsigned char i;if(set_tempertemper) if(set_temper-temper1) high_time=100; low_time=0; else for(i=0;i10;i+) get_temper(); rin = s; / Read Input rout = PIDCalc ( &spid,rin ); / Perform PID Interation if (high_time=100) high_time=(
11、unsigned char)(rout/800);else high_time=100;low_time= (100-high_time);else if(set_temper0) high_time=0; low_time=100;else for(i=0;i10;i+) get_temper();rin = s; / Read Inputrout = PIDCalc ( &spid,rin ); / Perform PID Interation if (high_time100)high_time=(unsigned char)(rout/10000);else high_time=0;l
12、ow_time= (100-high_time);/ else/ /*T0 中斷服務(wù)子程序,用于控制電平的翻轉(zhuǎn) ,40us*100=4ms 周期 */ void serve_T0() interrupt 1 using 1if(+count=(high_time) output=1;else if(count=100)output=0;elsecount=0;TH0=0x2f;TL0=0xe0;/* 串行口中斷服務(wù)程序,用于上位機(jī)通訊 */ void serve_sio() interrupt 4 using 2/* EA=0;RI=0;i=SBUF;if(i=2) while(RI=0) RI=0; set_temper=SBUF; SBUF=0x02; while(TI=0) TI=0;else if(i=3)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘教版七年級(jí)數(shù)學(xué)下冊(cè)第6章6.1.2中位數(shù)聽評(píng)課記錄
- 人教版歷史七年級(jí)上冊(cè)第5課《青銅器與甲骨文》聽課評(píng)課記錄
- 人教版地理七年級(jí)上冊(cè)1.2《地球的公轉(zhuǎn)》聽課評(píng)課記錄
- 湘教版數(shù)學(xué)八年級(jí)下冊(cè)2.2.2《平行四邊形的判定定理》聽評(píng)課記錄1
- 陜教版道德與法治九年級(jí)上冊(cè)第五課第二課時(shí)《點(diǎn)滴做起成就不凡》聽課評(píng)課記錄
- 人教部編版歷史八年級(jí)下冊(cè):第17課《外交事業(yè)的發(fā)展》聽課評(píng)課記錄2
- 蘇科版數(shù)學(xué)八年級(jí)下冊(cè)10.2《分式的基本性質(zhì)》聽評(píng)課記錄3
- 人教版(部編版)歷史八年級(jí)上聽課評(píng)課記錄《 辛亥革命》
- 浙教版數(shù)學(xué)七年級(jí)下冊(cè)1.2《同位角、內(nèi)錯(cuò)角、同旁內(nèi)角》聽評(píng)課記錄
- 湘教版數(shù)學(xué)九年級(jí)上冊(cè)4.4《解直角三角形的應(yīng)用》(第2課時(shí))聽評(píng)課記錄
- 統(tǒng)編版三年級(jí)語文下冊(cè)第三單元《綜合性學(xué)習(xí):中華傳統(tǒng)節(jié)日》教案
- 兒童注意力測(cè)試表
- 大學(xué)生預(yù)征對(duì)象登記表
- EN50317-2002-鐵路應(yīng)用集電系統(tǒng)受電弓和接觸網(wǎng)的動(dòng)力交互
- 人教版美術(shù)八下課程綱要
- 項(xiàng)目部組織機(jī)構(gòu)框圖(共2頁)
- 機(jī)動(dòng)車登記證書
- 彈性力學(xué)第十一章彈性力學(xué)的變分原理
- 鉭鈮礦開采項(xiàng)目可行性研究報(bào)告寫作范文
- 小升初數(shù)學(xué)銜接班優(yōu)秀課件
- 出口食品生產(chǎn)企業(yè)備案自我評(píng)估表
評(píng)論
0/150
提交評(píng)論