PID數(shù)字調(diào)節(jié)器的設(shè)計(LCD顯示)_第1頁
PID數(shù)字調(diào)節(jié)器的設(shè)計(LCD顯示)_第2頁
PID數(shù)字調(diào)節(jié)器的設(shè)計(LCD顯示)_第3頁
PID數(shù)字調(diào)節(jié)器的設(shè)計(LCD顯示)_第4頁
PID數(shù)字調(diào)節(jié)器的設(shè)計(LCD顯示)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

內(nèi)蒙古科技大學(xué)智能儀表綜合訓(xùn)練設(shè)計說明書題目:PID數(shù)字調(diào)節(jié)器的設(shè)計(LCD顯示)學(xué)生姓名:學(xué)號:專業(yè):測控技術(shù)與儀器班級:2009-1指導(dǎo)教師:李文濤(教授)摘要目前,在過程控制系統(tǒng)中大部分采用PID數(shù)字調(diào)節(jié)器,本設(shè)計的PID數(shù)字調(diào)節(jié)器硬件采用AT89C52單片機作為主控單元,ADC0832實現(xiàn)A/D轉(zhuǎn)換,LCD1602用于顯示,四個獨立鍵進行P、I、D參數(shù)的設(shè)定,硬件轉(zhuǎn)換電路實現(xiàn)電壓的放大。軟件上用定時器T0采樣,數(shù)字濾波,標度變換,限幅及防積分飽和的PID調(diào)節(jié),PWM輸出等。同時,文中還給出了此PID數(shù)字調(diào)節(jié)器的硬件電路設(shè)計及軟件流程和相關(guān)的調(diào)試程序等。關(guān)鍵詞:PID數(shù)字調(diào)節(jié)器;LCD1602顯示;A/D轉(zhuǎn)換;PWM輸出目錄第一章PID數(shù)字調(diào)節(jié)器的概述 1第二章總體設(shè)計方案 2第三章調(diào)節(jié)器的硬件設(shè)計 33.1單片機的選型 33.2I/V轉(zhuǎn)換電路 33.3ADC0832芯片簡介 53.3.1ADC0832芯片說明 53.3.2ADc0832與單片機的連接 63.4LCD顯示模塊 73.4.11602字符型LCD簡介 73.4.2引腳功能介紹 7第四章PID數(shù)字調(diào)節(jié)器的軟件設(shè)計 84.1PID數(shù)字調(diào)節(jié)器的軟件實現(xiàn) 84.2AD采樣及數(shù)字濾波模塊 84.2.1AD采樣部分 94.2.2數(shù)字濾波部分 94.3標度變換模塊 114.4鍵盤模塊 124.5PID控制模塊 124.6PWM輸出模塊 14第五章系統(tǒng)仿真與調(diào)試 16第六章總結(jié) 17參考文獻 18附錄A 19硬件原理圖 19附錄B 20源程序 20第一章PID數(shù)字調(diào)節(jié)器的概述隨著工業(yè)自動化的不斷發(fā)展,人們對于生產(chǎn)過程的要求越來越高,這就促使人們在生產(chǎn)實踐中不斷探求新的控制方案。而在控制方案的選擇中,控制規(guī)律的選擇尤為重要。PID調(diào)節(jié)具有原理簡單,使用方便,適應(yīng)性強,魯棒性強的特點而得到了廣泛的應(yīng)用。PID控制器(比例-積分-微分控制器),由比例單元P、積分單元I和微分單元D組成。通過Kp,Ti和Td三個參數(shù)進行設(shè)定。PID參數(shù)對系統(tǒng)的影響:(1)比例增益Kp能及時地反映控制系統(tǒng)的偏差信號,系統(tǒng)一旦出現(xiàn)了偏差,比例環(huán)節(jié)立即產(chǎn)生調(diào)節(jié)作用,使系統(tǒng)偏差快速向減小的趨勢變化。當比例增益Kp越大,PID控制器調(diào)節(jié)速度越快。但Kp不能太大,過大的比例增益會加大調(diào)節(jié)過程的超調(diào)量,從而降低系統(tǒng)的穩(wěn)定性,甚至可能造成系統(tǒng)的不穩(wěn)定。(2)積分環(huán)節(jié)可以消除系統(tǒng)穩(wěn)態(tài)誤差。積分作用的強弱取決于積分時間常數(shù)的大小,Ti越小,積分作用越強,反之則積分作用弱。積分作用的引入會使系統(tǒng)穩(wěn)定性下降,動態(tài)響應(yīng)變慢。(3)微分環(huán)節(jié)的引入,主要是為了改善控制系統(tǒng)的響應(yīng)速度和穩(wěn)定性。微分作用具有超前的控制作用,因此,微分作用可以改善系統(tǒng)的動態(tài)性能。微分作用的強弱取決于微分時間Td的大小,Td越大,微分作用越強,反之則越弱。數(shù)字PID調(diào)節(jié)器就是將模擬信號(包括電流、電壓)通過AD轉(zhuǎn)換變?yōu)閿?shù)字信號,微處理器(本設(shè)計采用單片機)再將數(shù)字信號通過一定的算法進行一定的處理,然后將處理過后的數(shù)字信號通過PWM輸出。

第二章總體設(shè)計方案PID調(diào)節(jié)器將變送器傳過來的4~20mA的電流信號,經(jīng)硬件濾波電路(RC)進行濾波,再接250歐姆的電阻轉(zhuǎn)換為1~5V,送入ADC0832進行轉(zhuǎn)化,AD轉(zhuǎn)換后的信號送入單片機進行PID運算,然后以PWM輸出(0~5V),同時用LCD1602進行顯示。此外用四個獨立按鍵(K1功能鍵、K2確定鍵、K3加法鍵、K4減法鍵)進行操作,以實現(xiàn)對PID參數(shù)的設(shè)定。總體流程圖如圖2.1所示。圖2.1總體流程圖第三章調(diào)節(jié)器的硬件設(shè)計3.1單片機的選型AT89C52是51系列單片機的一個型號,它是ATMEL公司生產(chǎn)的.它是一個低電壓,高性能CMOS8位單片機,片內(nèi)含8kbytes的可反復(fù)擦寫的Flash只讀程序存儲器和256bytes的隨機存取數(shù)據(jù)存儲(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強大的AT89C52單片機可實現(xiàn)較復(fù)雜的系統(tǒng)控制應(yīng)用場合。AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規(guī)方法進行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。其管腳圖如下圖3.1所示。圖3.1AT89C52管腳圖3.2I/V轉(zhuǎn)換電路在與電流輸出的傳感器接口的時候,為了把變送器輸出的4-20mA電流信號轉(zhuǎn)換成為電壓信號,最簡單的就是加250歐姆的電阻,僅使用一只I/V轉(zhuǎn)換取樣電阻,雖然簡單,但是有部分的電壓損失,首先,其實際意義是零點信號的時候,會有一個零點電流流過取樣電阻,如果按照4-20mA輸入電流轉(zhuǎn)換到最大5V電壓來分析,零點的時候恰好就是1V,這個1V在單片機資源足夠的時候,可以由單片機軟件去減掉它??墒沁@樣一來。其有用電壓就會剩下5-1=4V而不是5V了。由于單片機的A/D最大輸入電壓就是單片機的供電電壓,這個電壓通常就是5V,因此,處理這種簡單的輸入轉(zhuǎn)換電路時比較麻煩。為了達到A/D轉(zhuǎn)換的位數(shù),就會導(dǎo)致芯片成本增加。為了解決上面問題的,設(shè)計如圖3.2所示的電路。3.2I/V轉(zhuǎn)換電路其原理是:在單片機輸入之前配置一個由運算放大器組成的緩沖處理電路,增加這級運算放大器可以起到對零點的處理會變得更加方便,無需耗用單片機的內(nèi)部資源,尤其單片機是采用A/D接口來接受這種零點信號不為零電壓的輸入時,可以保證A/D轉(zhuǎn)換位數(shù)的資源能夠全部應(yīng)用于有用信號上。圖中的R是電流取樣電阻,其值的大小主要受變送器供電電壓的制約,當前級采用12V供電時,R經(jīng)常會使用200Ω的阻值,同時,線路輸入與主電路的隔離作用還可以起到保護單片機系統(tǒng)的作用。圖3.2采用的是廉價運放LM324,其對零點的處理是在反相輸入端上加入一個調(diào)整電壓,其大小恰好為輸入4mA時在R上的壓降。有了運算放大器,還使得R的取值可以更加小,因為這時信號電壓不夠大的部分可以通過配置運放的放大倍數(shù)來補足。這樣,就可以真正把4~20mA電流轉(zhuǎn)換成為0~5V電壓了。

雖然這部分的仿真成功了,但考慮到選擇的運放是最最廉價的,運放的失調(diào)與漂移,以及因為運放的供電與單片機電路供電的穩(wěn)定性,電源電壓是否可以保證足夠穩(wěn)定,運放的輸入阻抗是否對信號有分流影響,以及運放是否在整個信號范圍內(nèi)放大特性平坦,如此等等,造成這種廉價電路在真正使用時可能不盡人意。實際中,被控對象水箱的最低液位的一些實際特性,就放棄了這部分電路的使用,直接選用250Ω的電阻。3.3ADC0832芯片簡介3.3.1ADC0832芯片說明ADC0832是美國國家半導(dǎo)體公司生產(chǎn)的一種8位分辨率、雙通道A/D轉(zhuǎn)換芯片。由于它體積小,兼容性,性價比高而得到廣泛的應(yīng)用。ADC0832接口說明:

·CS_片選使能,低電平芯片使能。

·CH0模擬輸入通道0,或作為IN+/-使用。

·CH1模擬輸入通道1,或作為IN+/-使用。

·GND芯片參考0電位(地)。

·DI數(shù)據(jù)信號輸入,選擇通道控制。

·DO數(shù)據(jù)信號輸出,轉(zhuǎn)換數(shù)據(jù)輸出。

·CLK芯片時鐘輸入。

·Vcc/REF電源輸入及參考電壓輸入(復(fù)用)。一般情況下ADC0832與單片機的接口應(yīng)為4條數(shù)據(jù)線,分別是CS、CLK、DO、DI。但由于DO端與DI端在通信時并未同時有效并與單片機的接口是雙向的,所以電路設(shè)計時可以將DO和DI并聯(lián)在一根數(shù)據(jù)線上使用。當ADC0832未工作時其CS輸入端應(yīng)為高電平,此時芯片禁用,CLK和DO/DI的電平可任意。當要進行A/D轉(zhuǎn)換時,須先將CS端置于低電平并且保持低電平直到轉(zhuǎn)換完全結(jié)束。此時芯片開始轉(zhuǎn)換工作,同時由處理器向芯片時鐘輸入端CLK提供時鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數(shù)據(jù)信號。在第1個時鐘脈沖到來之前DI端必須是高電平,表示啟動位。在第2、3個時鐘脈沖到來之前DI端應(yīng)輸入2位數(shù)據(jù)用于選擇通道功能,其功能項見表3.3表3.3ADC0832配置位輸入形式配置位選擇通道CH0CH1CHOCH1差分輸入00+-01-+單端輸入10+11+當配置位2位數(shù)據(jù)為1、0時,只對CH0進行單通道轉(zhuǎn)換。當配置2位數(shù)據(jù)為1、1時,只對CH1進行單通道轉(zhuǎn)換。當配置2位數(shù)據(jù)為0、0時,將CH0作為正輸入端IN+,CH1作為負輸入端IN-進行輸入。當配置2位數(shù)據(jù)為0、1時,將CH0作為負輸入端IN-,CH1作為正輸入端IN+進行輸入。到第3個時鐘脈沖到來之后DI端的輸入電平就失去輸入作用,此后DO/DI端則開始利用數(shù)據(jù)輸出DO進行轉(zhuǎn)換數(shù)據(jù)的讀取。從第4個時鐘脈沖開始由DO端輸出轉(zhuǎn)換數(shù)據(jù)最高位D7,隨后每一個脈沖DO端輸出下一位數(shù)據(jù)。直到第11個脈沖時發(fā)出最低位數(shù)據(jù)D0,一個字節(jié)的數(shù)據(jù)輸出完成。也正是從此位開始輸出下一個相反字節(jié)的數(shù)據(jù),即從第11個時鐘脈沖輸出D0。隨后輸出8位數(shù)據(jù),到第19個脈沖時數(shù)據(jù)輸出完成,也標志著一次A/D轉(zhuǎn)換的結(jié)束。最后將CS置高電平禁用芯片,直接將轉(zhuǎn)換后的數(shù)據(jù)進行處理就可以了。圖3.4為ADC0832時序圖。圖圖3.4ADC0832時序圖3.3.2ADc0832與單片機的連接根據(jù)ADC0832的芯片原理,設(shè)計中DI,DO接P3.7信號既輸入又能輸出,CS的片選信號接P2.0。ADC0832與單片機的連接圖如圖3.5圖3.5ADC0832與單片機的連接3.4LCD顯示模塊3.4.11602字符型LCD簡介字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。一般1602字符型液晶顯示器實物見圖3.6所示。圖3.6LCD1602實物圖3.4.2引腳功能介紹1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明見表3.7。表3.7引腳接口說明表編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負極下圖是根據(jù)本設(shè)計要實現(xiàn)的功能來將其各引腳與單片機進行連接。連接圖見圖3.8。圖3.8LCD1602與單片機連接圖第四章PID數(shù)字調(diào)節(jié)器的軟件設(shè)計4.1PID數(shù)字調(diào)節(jié)器的軟件實現(xiàn)PID數(shù)字調(diào)節(jié)器首先通過定時器T1定時采樣,定時時間10MS,采樣之后,用去極值平均值濾波法進行數(shù)字濾波、上下限可設(shè)的標度變換,標度變換完之后送單片機進行處理,配合鍵盤進行PID參數(shù)的設(shè)定,之后以PWM輸出。軟件流程圖如圖4.1,源程序見附錄B。4.1軟件流程圖4.2AD采樣及數(shù)字濾波模塊4.2.1AD采樣部分設(shè)計中,對ADC0832進行操作時,前3個脈沖用于初始化,通道選擇,從第4個脈沖開始,對數(shù)據(jù)進行輸出,從高到低讀一次,再從低到高讀一次,以確認數(shù)據(jù)的準確。程序流程圖如圖4.2所示.圖4.2ADC0832子程序流程圖4.2.2數(shù)字濾波部分所謂的數(shù)字濾波,就是在計算機中通過軟件按照某種算法對輸入信號進行平滑加工等處理,以減少干擾在有用信號中的比重,提高信號的真實性。常用的數(shù)字濾波的方法有算術(shù)平均值濾波法、限幅濾波法、滑動平均濾波法、一階滯后濾波法、中值濾波法等。以下對幾種常用的方法做簡要的介紹。1.算術(shù)平均值濾波法:連續(xù)取N個采樣值進行算術(shù)平均運算。優(yōu)點:適用于對一般具有隨機干擾的信號進行濾波,這樣信號的特點是有一個平均值,信號在某一數(shù)值范圍附近上下波動。缺點:對于測量速度較慢或要求數(shù)據(jù)計算速度較快的實時控制不適用。2.限幅濾波法:根據(jù)經(jīng)驗判斷,確定兩次采樣允許的最大偏差值(設(shè)為A),每次檢測到新值時判斷:如果本次值與上次值之差<=A,則本次值有效,如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值。優(yōu)點:能有效克服因偶然因素引起的脈沖干擾。缺點:無法抑制那種周期性的干擾,平滑度差)3.滑動平均濾波法:把連續(xù)取N個采樣值看成一個隊列,隊列的長度固定為N,每次采樣到一個新數(shù)據(jù)放入隊尾,并扔掉原來隊首的一次數(shù)據(jù).把隊列中的N個數(shù)據(jù)進行算術(shù)平均運算,就可獲得新的濾波結(jié)果優(yōu)點:對周期性干擾有良好的抑制作用,平滑度高,適用于高頻振蕩的系統(tǒng)。缺點:靈敏度低,對偶然出現(xiàn)的脈沖性干擾的抑制作用較差,不易消除由于脈沖干擾所引起的采樣值偏差,不適用于脈沖干擾比較嚴重的場合。4.一階滯后濾波法:取a=0-1,本次濾波結(jié)果=(1-a)*本次采樣值+a*上次濾波結(jié)果。優(yōu)點:對周期性干擾具有良好的抑制作用,適用于波動頻率較高的場合缺點:相位滯后,靈敏度低,滯后程度取決于a值大小,不能消除濾波頻率高于采樣頻率的1/2的干擾信號。5.中值濾波法:連續(xù)采樣N次(N取奇數(shù)3-5),把N次采樣值按大小排列取中間值為本次有效值。優(yōu)點:能有效克服因偶然因素引起的波動干擾,對溫度、液位的變化緩慢的被測參數(shù)有良好的濾波效果缺點:對流量、速度等快速變化的參數(shù)不宜6.去極值平均值濾波法:對被測參數(shù)采樣N次,并按大小順序排列,從首尾各舍掉一個大數(shù)和一個小數(shù),再將剩余的進行平均,這種方法既能去掉脈沖干擾,又可以對采樣進行平滑加工,在快,慢系統(tǒng)中都能削弱干擾,提高控制質(zhì)量。綜上所述,考慮到是通用調(diào)節(jié)器要適應(yīng)性強,所以選用去極值平均值濾波法在設(shè)計中,用定時器T1進行采樣,采樣之后進行數(shù)字濾波,程序流程圖如圖4.3所示。4.3采樣濾波流程圖4.3標度變換模塊計算機控制系統(tǒng)的各種物理參數(shù)有不同的量綱,如溫度為℃;壓力采用Pa;流量用m/n等。這些參數(shù)經(jīng)A/D轉(zhuǎn)換后,變成數(shù)字量信息輸出,這個數(shù)字量雖然代表參數(shù)值的大小,但并不一定等于原來帶有量綱的參數(shù)值,必須將它轉(zhuǎn)換成原來參數(shù)的真實值才能進行顯示,打印或使用.而這就需要標度變換。線性標度變換公式:(4-1)Y實際測量值;Ymin儀表測量下限;Ymax儀表測量上限;NxY對應(yīng)的數(shù)字量;Nmin儀表測量下限對應(yīng)的數(shù)字量;Nmax儀表測量上限對應(yīng)的數(shù)字量;ADC0832是8為A/D轉(zhuǎn)換器,將4-20mA的電流信號轉(zhuǎn)化為1-5V電壓信號,A/D對應(yīng)的數(shù)字量為51-255。計算公式如下:(4-2)當進行顯示時,1-5v電壓對應(yīng)本設(shè)計液位0-500mm,即:(4-3)則從D/A數(shù)字量到顯示的實際物理量的對應(yīng)關(guān)系如下:(4-4)式中,Y為液位實際測量值;Ymin為液位測量下限;Ymax為液位測量測量上限;Vx為A/D轉(zhuǎn)換器所接收電壓值;Nx為A/D轉(zhuǎn)換器對應(yīng)的數(shù)字量(Ymin,Ymax可設(shè))。4.4鍵盤模塊PID調(diào)節(jié)器采用4個獨立建,K1接P1.4、K2接P1.5、K3接P1.6、K4接P1.7。K1是功能鍵,實現(xiàn)Sv、Kp、Ki、Kd四種模式選擇。K2是確認鍵,當鍵按下時可進行相應(yīng)參數(shù)設(shè)置,設(shè)置完后按下鍵即可確認保存相應(yīng)數(shù)據(jù)。K3是加計數(shù)鍵,K4是減計數(shù)鍵。程序流程圖如下4.4所示.4.4鍵盤流程圖4.5PID控制模塊在模擬系統(tǒng)中,PID算法的表達式為:(4-5)式中p(t)—調(diào)節(jié)器的輸出信號;e(t)—調(diào)節(jié)器的偏差信號,它等于給定值與測量值之差;kp—調(diào)節(jié)器的比例系數(shù);Ti—調(diào)節(jié)器的積分時間;TD—調(diào)節(jié)器的微分時間。由于計算機控制是一種采樣控制,它只能根據(jù)采樣時刻的偏差來計算控制量。因此,在計算機控制系統(tǒng)中,必須首先對式(4-5)進行離散化處理,用數(shù)字形式的差分方程代替連續(xù)系統(tǒng)的微分方程,得到離散化的PID表達式:(4-6)式中△t=T—采樣周期,必須使T足夠小,才能保證系統(tǒng)有一定的精度;E(k)—第k次采樣時的偏差值;E(k-1)—第(k-1)次采樣時的偏差值;k—采樣序號,k=0,1,2,….;p(k)—第k次采樣時的調(diào)節(jié)器的輸出。由于位置型的PID算法不僅計算煩瑣,而且為保存E(i)還要占用很多內(nèi)存。因此,采用增量型的PID算法=(4-7)由式(4-7)可知,要計算第k次輸出值p(k),只需知道p(k-1),E(k),E(k-1),E(k-2)即可。這種算法只需保留3個歷史數(shù)據(jù),占內(nèi)存少,誤動作影響小,且能實現(xiàn)自動與手動的無擾動切換。PID算法的程序流程圖如圖4.5.源程序見附錄B.4.5PID算法程序流程圖4.6PWM輸出模塊脈沖寬度調(diào)制(PWM)是一種對模擬信號電平進行數(shù)字編碼的方法,它無需進行數(shù)模轉(zhuǎn)換,讓信號保持為數(shù)字形式可將噪聲影響降到最小。設(shè)計中是通過與定時器T1的配合來改變占空比以實現(xiàn)電壓的輸出。程序流程圖如圖4.6.圖4.6PWM程序流程圖第五章系統(tǒng)仿真與調(diào)試設(shè)計中,軟件及硬件介紹見三、四章,針對變送部分設(shè)計如圖5.1的仿真原理圖進行仿真。仿真原理如下:在AD的輸入端輸入0~5V的電壓,用電壓表進行顯示,以便與LCD顯示值比較,驗證轉(zhuǎn)換正確與否。標度變換按如下公式計算,將AD對應(yīng)的數(shù)字量轉(zhuǎn)化為電壓量。仿真過程中能實現(xiàn)一一的對應(yīng)關(guān)系,因此驗證了AD轉(zhuǎn)化的正確。實際中要顯示的是對應(yīng)的水位,水位與電壓的轉(zhuǎn)化關(guān)系為(Y為液位實際測量值;Ymin為液位測量下限;Ymax為液位測量測量上限)這樣即將AD轉(zhuǎn)換的數(shù)字量與實際液位聯(lián)系起來,而這部分需要在實際中進行調(diào)試。AD仿真原理圖如下5.1,仿真程序見附錄B。圖5.1系統(tǒng)仿真原理圖第六章總結(jié)經(jīng)過五周的課程設(shè)計,我們認真的完成了任務(wù)。但這五周,時間非常的緊迫,首先,我必須得處理好考研與課設(shè)的關(guān)系,這確實是件不容易的事情,我時常感受到自己肩上壓力。課程設(shè)計是對之前所學(xué)專業(yè)課的運用,是件很必要的事情,剛開始我感覺無從下手,但經(jīng)過小組的討論,我的思路清晰了許多,對總體的方案,總體器件的選擇有了一定的認識,每次去見老師,都能解決掉自己的許多疑問,所以,我能感覺到自己在進步!首先是總體原理圖的繪制,我們組統(tǒng)一裝了DXP來畫原理圖,由于剛開始沒學(xué)過這個軟件,感覺難,后來經(jīng)過小組長的培訓(xùn),對于軟件的基本操作自己還是掌握了,接下來分完任務(wù)后,就要主攻自己的那部分設(shè)計了,我的部分是變送部分,我上網(wǎng)查了很多資料,自己用proteus仿真成功后,接下來的總體程序的調(diào)試就需要接口的問題,我們小組來回幾次的協(xié)作,總體設(shè)計有了進展,但還是有問題,小組的配合,使問題得到解決,這是我感受最深的一點,當今社會是一個合作的社會,只有合作,才能促進自己的發(fā)展!這是我們不得不承認的事實!另外,這次課設(shè),我們用到了很多的軟件,這對于自己今后的發(fā)展是很好的鍛煉,所以總的來說,課設(shè)很緊張,但我學(xué)到很多!參考文獻【1】潘新民.微型計算機控制技術(shù)[M],電子工業(yè)出版社,1988,03【2】李文濤.過程控制[M],科學(xué)出版社,2012.【3】李楠楠,璩柏青.一種新型PID調(diào)節(jié)器的硬件電路設(shè)計[J],2007,23【4】王燕芳,潘新民.微型計算機控制技術(shù)[M],電子工業(yè)出版社,2006.1【5】姚永平.STC89C51/RC+系列單片機器件手冊[J],宏晶科技.2007,11【6】董永祥.智能儀器的設(shè)計及發(fā)展[J].山西電子技術(shù),2006,1【7】郝長勝.C語言程序設(shè)計[M],內(nèi)蒙古大學(xué)出版社,2005,12【8】趙茂泰.智能儀器原理及應(yīng)用[M],電子工業(yè)出版社,2004,7【9】潘永雄.新編單片機原理與應(yīng)用[M],西安電子科技大學(xué)出版社,2007,02【10】蔡杏山.Protel99SE電路設(shè)計[M],人民郵電出版社,2007,07【11】雷力鳴.單片機在數(shù)字調(diào)節(jié)器中的應(yīng)用[M],西南自動化研究所,1997,3【11】html/p-89315298346.html附錄A硬件原理圖附錄B源程序#include<reg52.h>//LCD1602部分#include<intrins.h>#defineuintunsignedint#defineucharunsignedchar#definedelay4us(){_nop_();_nop_();_nop_();_nop_();}#define A0#defineB500sbitRS=P1^0;sbitRW=P1^1;sbitE=P1^2;sbitCS=P2^3;sbitCLK=P2^4;sbitDIO=P2^5;sbitenter=P1^5;//確定鍵ucharZKB1=0;ucharDisplay_Buffer[]="0000";voidinit_sys(void);/*系統(tǒng)初始化函數(shù)*/voidPWMOUT(void);voidbutton(void);voidSet_Disp_Pos(ucharpos);voidL1602_char(ucharrow,ucharcol,charsign);voidL1602_string(ucharrow,ucharcol,uchar*p);intyewei_PID(void);unsignedchard;externunsignedintiyewei_Feedback;externunsignedintiyewei;//當前測的液位值/*************************************************/voidDelayMS(uintms){ uchari; while(ms--) { for(i=0;i<120;i++); }}/*************************************************/bitLCD_Busy_Check(void){ bitresult; RS=0; RW=1; E=1; delay4us(); result=(bit)(P0&0x80); E=0; returnresult;}/*************************************************/voidLCD_Write_Command(ucharcmd){ while(LCD_Busy_Check()); RS=0; RW=0; E=0; _nop_(); _nop_(); P0=cmd; delay4us(); E=1; delay4us(); E=0;}/*************************************************voidSet_Disp_Pos(ucharpos){ LCD_Write_Command(pos|0x80);}/*************************************************/voidLCD_Write_Data(uchardat){ while(LCD_Busy_Check()); RS=1; RW=0; E=0; P0=dat; delay4us(); E=1; delay4us(); E=0;}/*************************************************/voidLCD_Initialise(void){ LCD_Write_Command(0x38);DelayMS(1); LCD_Write_Command(0x0c);DelayMS(1); LCD_Write_Command(0x06);DelayMS(1); LCD_Write_Command(0x01);DelayMS(1);}/*************************************************/voidL1602_char(ucharrow,ucharcol,charsign){uchara;if(row==1)a=0x80;if(row==2)a=0xc0;a=a+col-1;LCD_Write_Command(a);LCD_Write_Data(sign);}/***************顯示字符串******************/voidL1602_string(ucharrow,ucharcol,uchar*p){uchara,b=0;if(row==1)a=0x80;if(row==2)a=0xc0;a=a+col-1;while(1){LCD_Write_Command(a++); b++; if((*p=='\0')||(b==16))break; LCD_Write_Data(*p); p++;}}/*AD采樣函數(shù)*/ucharGet_AD_Result(void){ uchari,dat1=0,dat2=0; CS=0;//芯片開始轉(zhuǎn)換工作 CLK=0; DIO=1;_nop_();_nop_();//DIO=1,是起始信號 CLK=1;_nop_();_nop_(); CLK=0;DIO=1;_nop_();_nop_();//1 CLK=1;_nop_();_nop_(); CLK=0;DIO=1;_nop_();_nop_();//2 CLK=1;DIO=1;_nop_();_nop_(); CLK=0;DIO=1;_nop_();_nop_();//3(1、1)選擇通道1 for(i=0;i<8;i++) { CLK=1;_nop_();_nop_(); CLK=0;_nop_();_nop_();//輸出轉(zhuǎn)換數(shù)據(jù)的最高位(4-11)轉(zhuǎn)換完成 dat1=dat1<<1|DIO; } for(i=0;i<8;i++) { dat2=dat2<<((uchar)(DIO)<<i);//從高到低再讀一次 CLK=1;_nop_();_nop_(); CLK=0;_nop_();_nop_(); } CS=1; return(dat1==dat2)?dat1:0;}/*************************************//************主函數(shù)***************///d=Get_AD_Result()*500.0/255; /*d為0-5V的電壓值*/voidmain(void){ intecount=0;init_sys(); /*PWMOUT初始化函數(shù)*/ LCD_Initialise(); while(1) { /*標度變換后的實際液位值*/ iyewei=(int)((filter()-51)*(B-A))/204.0+A; button(); //DelayMS(10); /*按鍵調(diào)值*/ yewei_PID();/*液位PID計算*/ PWMOUT(); /*PWM輸出*/ } }#include<reg52.h>#include<intrins.h>#defineN12//排序采用冒泡法#defineuintunsignedint#defineucharunsignedcharvoidDelayMS(uintms);ucharGet_AD_Result(void);uintcc;charfilter()//采樣及濾波{ charcount,i,j,temp; charvalue_buf[N]; intsum=0; for(count=0;count<N;count++) { value_buf[count]=Get_AD_Result(); DelayMS(10); } for(j=0;j<N-1;j++) { for(i=0;i<N-j;i++) { if(value_buf[i]>value_buf[i+1]) { temp=value_buf[i];//實現(xiàn)從小到大的排列 value_buf[i]=value_buf[i+1]; value_buf[i+1]=temp; } } } for(count=1;count<N-1;count++)//取除去最大和最小后的值進行平均 sum+=value_buf[count]; return(char)(sum/(N-2));}/*********************************************/voidtimer1(void)interrupt3//定時器T1{TMOD=0x11;//方式1、16位的定時器(高4位)TH1=(65536-1000)/256;//定時器1初值定時1ms TL1=(65536-1000)%256;//T=2^16-a取高8位、取低8位ET1=1;TR1=1;//允許T1計數(shù) EA=1;//開啟總中斷cc++;if(cc==10){Get_AD_Result(); cc=0;}}#include<reg52.h>//PID部分#include<intrins.h>unsignedintKKp=120;unsignedintKKi=50;unsignedintKKd=0;unsignedintErr1=0;unsignedintErr2=0;unsignedintErr3=0;unsignedintpid_out_Last;unsignedintiyewei_Feedback;//pid計算后的液位值externun

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論