freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的pid控制器整體方案設(shè)計(jì)畢業(yè)論文(參考版)

2025-05-15 23:34本頁面
  

【正文】 sptrLastErro。 //增量計(jì)算 iIncpid = sptrProportion * iError //E[k]項(xiàng) sptrIntegral * sptrLastError //E[k-1]項(xiàng) + sptrDerivative * sptrPrevError。 }/*==================================================================================================== 增量式PID計(jì)算部分 =====================================================================================================*/ int IncPIDCalc(int NextPoint) { register int iError, iIncpid。 //積分常數(shù)Integral Const sptrDerivative = 0。 //Error[2] sptrProportion = 0。 sptrLastError = 0。sPID。static PID sPID。 //Error[1] int PrevError。 //積分常數(shù) Integral Const double Derivative。 //誤差累計(jì) double Proportion。}}增量式PID控制算法C51程序/*==================================================================================================== PID Function The PID (比例、積分、微分) function is used in mainly control applications. PIDCalc performs one iteration of the PID algorithm. While the PID function works, main is just a dummy program showing a typical usage. =====================================================================================================*/ typedef struct PID { int SetPoint。P1=adtab。j++)。for(j=0。 main() {ad=0x0f000。uchar data adtab。 sbit io_key_4 = P1^7 。 sbit io_key_2 = P1^5 。 return KEY_NULL 。 if(io_key_3 == 0)return KEY_VALUE_3 。 if(io_key_1 == 0)return KEY_VALUE_1 。 根據(jù)第一章所描述的按鍵檢測原理,我們可以很容易的得出如下的代碼: static uint8 KeyScan(void) { io_key_4 = 1 。 io_key_2 = 1 。 //定時(shí)器0開始計(jì)數(shù);} 按鍵程序下面的程序代碼初始化引腳為輸入。 //開總中斷; ET0=1。 //預(yù)置計(jì)數(shù)初值; TL0=(65536500)%256。 //初始化p1口,全設(shè)為0; TMOD=0x01。 delay(1000)。 wei04 = 0。 delay(1000)。 wei04 = 1。 j++)。 i++) for(j =0。 for(i =0。 sbit wei04 = P1^3。 sbit wei02 = P1^1。Cui Shan。 參考文獻(xiàn)[1] 周潤景、張麗娜、(第二版).北京: 航空航天大學(xué)出版社,2010[2] ,2011[3] (第二版).[4] 郭一楠、??×帧?009[5] 張毅剛、彭喜源、2000[6] ,2008[7] ,2000[8] 齊志才、:中國建筑工業(yè)出版社, 2005[9] 高金源、2007[10] :機(jī)械工業(yè)出版社,1998[11] [M].北京:電子工業(yè)出版社,2003[12] 吳占雄。本設(shè)計(jì)基本上符合預(yù)期的目標(biāo),但設(shè)計(jì)不完美,存在很多問題,比如怎樣使電路更加簡單,更加能符合使用者的要求,讓使用者能簡單的操作。該設(shè)計(jì)充分利用了8051單片機(jī)的功能,通過電源電路、按鍵電路、顯示電路、復(fù)位和晶振等電路來使數(shù)碼管顯示出PID參數(shù)的選擇和參數(shù)數(shù)值。 式中 ,計(jì)算e(k)計(jì)算e(k)計(jì)算e(k1)計(jì)算e(k)+e(k1)計(jì)算e(k2)計(jì)算?u(k)更新e(k1),e(k2)返回 圖 增量式PID算法流程圖賦給e(k)一個(gè)給定值32,=2,=3,=1,通過按鍵改變后的=3,=2,=2,e(k1)是前一次輸出的值,e(k2)是前兩次輸出的值。(2)控制從手動(dòng)切換到自動(dòng)時(shí),位置式PID算法必須先將計(jì)算機(jī)的輸出值置為原始閥門開時(shí),才能保證無沖擊切換。它與位置式PID相比,有下列優(yōu)點(diǎn):(1)位置式PID算法每次輸出與整個(gè)過去狀態(tài)有關(guān),計(jì)算式中要用到過去誤差的累加值,因此,容易產(chǎn)生較大的累積計(jì)算誤差。 圖 參數(shù)設(shè)置程序流程圖 PID算法子程序PID控制的算法有兩種,增量式PID算法和位置式PID算法。 圖 按鍵流程圖 PID參數(shù)設(shè)置子程序在實(shí)際調(diào)試中,只能先大致設(shè)定一個(gè)經(jīng)驗(yàn)值,然后根據(jù)調(diào)節(jié)效果修改。 本系統(tǒng)采用軟件消抖,當(dāng)單片機(jī)第一次檢測到有鍵按下時(shí),即檢測到與按鍵連接的I/O口為低電平是,等待10ms,再去確認(rèn)該I/O口是否仍舊為低電平,如果還是低電平,就一般的機(jī)械按鍵而言,已經(jīng)是出于穩(wěn)定期了,按鍵的抖動(dòng)被消除了。為了確保CPU對一次按鍵動(dòng)作只確認(rèn)一次按鍵,提高按鍵處理的可靠性,應(yīng)在程序中做按鍵消抖處理。按鍵的抖動(dòng)時(shí)間的長短由按鍵的機(jī)械特性決定,一般為5~10ms,這是一個(gè)很重要的參數(shù)。表2 數(shù)字字型碼共陰字型碼所顯字符共陰字型碼所顯字符3FH07DH606H107H75BH27FH84FH36FH966H477HA6DH5本文中數(shù)碼管顯示出PID參數(shù),字型碼分別為73H,06H,3fH. 按鍵子程序當(dāng)按鍵被按下時(shí),I/O口電平為低;松開時(shí),I/O口電平為高。先輸入一個(gè)給定輸入值,通過參數(shù)選擇再通過PID整定顯示出參數(shù)和參數(shù)的整定輸出值,再將輸出值賦給前一時(shí)刻的輸入值再進(jìn)行循環(huán)。在程序設(shè)計(jì)上,先使數(shù)碼管第一位顯示出PID參數(shù)中的一個(gè),在通過按鍵和程序設(shè)計(jì)使后三位顯示出PID參數(shù)的設(shè)定值,通過加減按鍵來調(diào)節(jié)這些參數(shù)的數(shù)值。 設(shè)計(jì)思路 程序設(shè)計(jì)根據(jù)系統(tǒng)功能,可以將系統(tǒng)設(shè)計(jì)分為若干個(gè)子程序進(jìn)行設(shè)計(jì),如按鍵子程序、顯示子程序、參數(shù)設(shè)置子程序、PID算法子程序。 * 仿真器上的復(fù)位按鈕只復(fù)位仿真芯片,不復(fù)位目標(biāo)系統(tǒng)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。然后分別由C51及C51編譯器編譯生成目標(biāo)文件(.OBJ)。 Keil C51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu) C51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。運(yùn)行Keil軟件需要WIN9NT、WIN2000、WINXP等操作系統(tǒng)。軟件仿真的缺點(diǎn)是無法完全真與硬件相關(guān)的部分,因此最終還要通過硬件仿真來完成最后的設(shè)計(jì); Keil軟件Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。 軟件仿真這種方法主要是使用計(jì)算機(jī)軟件來模擬實(shí)際的單片機(jī)運(yùn)因此仿真與硬件無關(guān)的系統(tǒng)具有一定的優(yōu)點(diǎn)??傊?,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),所以在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。Proteus ISIS是英國Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。前臺(tái)也可以叫做中斷級(jí)。中斷服務(wù)程序處理異步事件,這部分可以看成是前臺(tái)行為(foreground)。 5 軟件設(shè)計(jì) Proteus軟件簡介很多的單片機(jī)軟件系統(tǒng)都是采用前、后臺(tái)系統(tǒng)(也稱超循環(huán)系統(tǒng))。 圖 晶振電路XTAL1和XTAL2是片內(nèi)振蕩電路輸入線,這兩個(gè)端子用來外接石英晶體和微調(diào)電容,即用來連接8051片內(nèi)OSC的定時(shí)反饋回路。圖 復(fù)位電路晶振電路晶振是為電路提供頻率基準(zhǔn)的元器件,通常分成有源晶振和無源晶振兩個(gè)大類,無源晶振需要芯片內(nèi)部有振蕩器,并且晶振的信號(hào)電壓根據(jù)起振電路而定,允許不同的電壓,但無源晶振通常信號(hào)質(zhì)量和精度較差,需要精確匹配外圍電路(電感、電容、電阻等),如需更換晶振時(shí)要同時(shí)更換外圍的電路。上電時(shí),考慮到振蕩器有一定的起振時(shí)間,該引腳上高電平必須持續(xù)10 ms以上才能保證有效復(fù)位。 圖 單片機(jī)與DAC0832連接圖 復(fù)位電路和晶振電路在51單片機(jī)中RST/VPD是復(fù)位/備用電源線,可以使8051處于復(fù)位(即初始化)工作狀態(tài)。③ 雙緩沖方式:所謂雙緩沖方式,就是將DAC0832內(nèi)部的兩個(gè)寄存器 都連接成獨(dú)立受控鎖存方式。直通方式常用于不需要單 片機(jī)控制的系統(tǒng)。① 直通方式:若和均為高電平,則DI7~DI0輸入的數(shù)據(jù)便可 直通地到達(dá)8位DAC寄存器進(jìn)行D/A轉(zhuǎn)換。其它引腳:DGND為數(shù)字地;AGND為模擬地;Vcc為芯片主電源,電壓范圍為+5V~+15V。⑩ VREF:基準(zhǔn)電壓輸入端。⑨ Rfb:反饋電阻端。與外接運(yùn)放器同相輸入端相連。與外接運(yùn)放器反相輸入端相連, 當(dāng)輸入數(shù)據(jù)為全“1”時(shí),輸出電流最大,當(dāng)輸入數(shù)據(jù)為全 “0”時(shí),輸出電流最小。⑥ /XFER :數(shù)據(jù)傳輸控制信號(hào),輸入低電平有效。 ④ /WR1:輸入寄存器寫信號(hào),低電平有效 。② ILE:輸入鎖存允許端,高電平有效時(shí),數(shù)據(jù)輸入DAC0832 的輸入寄存器并鎖存?;鶞?zhǔn)電壓的范圍為177。DAC0832是一個(gè)8位D/A轉(zhuǎn)換器。因此,D/A轉(zhuǎn)換器內(nèi)部必須要有一個(gè)解碼網(wǎng)絡(luò),以實(shí)現(xiàn)按權(quán)值分別進(jìn)行D/A轉(zhuǎn)換。 圖 單片機(jī)與A/D連接圖D/A轉(zhuǎn)換電路D/A轉(zhuǎn)換的原理可以總結(jié)為“按權(quán)展開,相加求和”。如果作為由IN+與IN輸入的輸入時(shí),可是將電壓值設(shè)定在某一個(gè)較大范圍之內(nèi),從而提高轉(zhuǎn)換的寬度。在第1個(gè)時(shí)鐘脈沖的下沉之前DI端必須是高電平,表示啟始信號(hào)。當(dāng)要進(jìn)行A/D轉(zhuǎn)換時(shí),須先將CS使能端置于低電平并且保持低電平直到轉(zhuǎn)換完全結(jié)束。但由于DO端與DI端在通信時(shí)并未同時(shí)有效并與單片機(jī)的接口是雙向的,所以電路設(shè)計(jì)時(shí)可以將DO和DI并聯(lián)在一根數(shù)據(jù)線上使用。通過DI數(shù)據(jù)輸入端,可以輕易的實(shí)現(xiàn)通道功能的選擇。芯片轉(zhuǎn)換時(shí)間僅為32μS,據(jù)有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗(yàn),以減少數(shù)據(jù)誤差,轉(zhuǎn)換速度快且穩(wěn)定性能強(qiáng)。ADC0832為8位分辨率A/D轉(zhuǎn)換芯片,其最高分辨可達(dá)256級(jí),可以適應(yīng)一般的模擬量轉(zhuǎn)換要求。VREF——參考電源參考電壓用來與輸入的模擬信號(hào)進(jìn)行比較,作為逐次逼近的基準(zhǔn)。ADC0832的內(nèi)部沒有時(shí)鐘電路,所需時(shí)鐘信號(hào)由外界提供,因此有時(shí)鐘信號(hào)引腳。DO:數(shù)據(jù)信號(hào)輸出,轉(zhuǎn)換數(shù)據(jù)輸出。GND:芯片參考0電位(地)。CH0:模擬輸入通道0,或作為IN+/使用。學(xué)習(xí)并使用 ADC0832 可是使我們了解 A/D 轉(zhuǎn)換器的原理,有助于我們單片機(jī)技術(shù)水平的提高。ADC0832是美國國家半導(dǎo)體公司生產(chǎn)的一種 8 位分辨率、雙通道 A/D 轉(zhuǎn)換芯片。高速模數(shù)轉(zhuǎn)換的整個(gè)過程均需要使用硬件。復(fù)雜的硬件或具有合適的軟件指令的簡單硬件都可能實(shí)現(xiàn)模數(shù)轉(zhuǎn)換。實(shí)際的轉(zhuǎn)換過程
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1