基于51單片機的直流電機轉(zhuǎn)速測量及控制_第1頁
基于51單片機的直流電機轉(zhuǎn)速測量及控制_第2頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-單片機原理與應(yīng)用課程設(shè)計院 系 信息工程學(xué)院 班 級 自動化121 學(xué)生 曉峰 學(xué) 號 日 期 2015/7/9任務(wù)要求基于51單片機的直流電機轉(zhuǎn)速測量與控制一、設(shè)計目的1.通過本次課程設(shè)計加深對單片機課程的全面認(rèn)識復(fù)習(xí)和掌握,對單片機課程的應(yīng)用有進(jìn)一步的了解。2.掌握定時器、終端的設(shè)置和變成原理。3.掌握單片機原理、構(gòu)造、指令、接口及應(yīng)用。4.通過此次課程設(shè)計能夠?qū)纹瑱C硬件結(jié)合起來,獲得單片機應(yīng)用系統(tǒng)設(shè)計的根本理論,根本只是和根本技能,掌握單片機應(yīng)用系統(tǒng)各主要環(huán)節(jié)的設(shè)計、調(diào)試方法。二、根本要求1.,以80C51的根本知識和方法為根底,通過系統(tǒng)擴展到達(dá)應(yīng)用單片機的目的。2.根據(jù)應(yīng)用系統(tǒng)構(gòu)造

2、規(guī)模的要求,掌握單片機外部擴展系統(tǒng)的硬件設(shè)計的根本過程,正確合理選擇期間,繪制應(yīng)用系統(tǒng)原理圖。3.根據(jù)設(shè)計任務(wù)和要求,畫出程序整體流程圖,然后進(jìn)展各程序模塊的設(shè)計,編寫控制程序。4.掌握如何應(yīng)用單片機仿真器或編程器來開發(fā)應(yīng)用及仿真調(diào)試的過程,反復(fù)修改測試直至完成任務(wù)。三、設(shè)計容設(shè)計并調(diào)試一個程序使其實現(xiàn)如下功能:1.在實驗平臺上通過鍵盤輸入一個轉(zhuǎn)速的設(shè)定值例如25rpm,并在數(shù)碼管上顯示;2.采用比例調(diào)節(jié)方法,使電機轉(zhuǎn)速穩(wěn)定在設(shè)定值;3.測量電機的轉(zhuǎn)速,并在實驗平臺數(shù)碼管上顯示;4.轉(zhuǎn)速穩(wěn)定后,可隨時修改轉(zhuǎn)速設(shè)定值;5.優(yōu)化比例調(diào)節(jié)系統(tǒng),使電機轉(zhuǎn)速的調(diào)節(jié)時間較短,并嘗試參加積分、微分環(huán)節(jié),改善

3、轉(zhuǎn)速的靜態(tài)和動態(tài)特性。電機轉(zhuǎn)速不允許出現(xiàn)振蕩。基于51單片機的直流電機轉(zhuǎn)速測量與控制摘要:本設(shè)計主要完成以AT89C51單片機為核心的直流電機的測速系統(tǒng),通過矩陣鍵盤給定轉(zhuǎn)速,并在數(shù)碼管上顯示設(shè)定值。采用霍爾傳感器進(jìn)展速度測量,利用PID控制和DAC0832進(jìn)展模數(shù)轉(zhuǎn)換使直流電機轉(zhuǎn)速穩(wěn)定在設(shè)定值。動態(tài)顯示實際轉(zhuǎn)速。電機可以快速的到達(dá)設(shè)定值,且不會出現(xiàn)震蕩現(xiàn)象。關(guān)鍵詞:直流電機,STC89C51,矩陣鍵盤,設(shè)定值,霍爾傳感器,DAC0832,PID正文1. 系統(tǒng)設(shè)計本設(shè)計主要完成以STC89C51單片機為核心的直流電機的測速系統(tǒng),通過矩陣鍵盤給定轉(zhuǎn)速,并在數(shù)碼管上顯示設(shè)定值。采用霍爾傳感器進(jìn)展速

4、度測量,利用PID控制和DAC0832進(jìn)展模數(shù)轉(zhuǎn)換使直流電機轉(zhuǎn)速穩(wěn)定在設(shè)定值。動態(tài)顯示實際轉(zhuǎn)速。系統(tǒng)構(gòu)造圖如下列圖所示STC89C51單片機矩陣鍵盤數(shù)碼管顯示直流電機霍爾傳感器測速PID控制DAC0832圖1 系統(tǒng)構(gòu)造圖本系統(tǒng)主要使用了STC89C51單片機、霍爾傳感器測速、DC0832模數(shù)轉(zhuǎn)換進(jìn)展轉(zhuǎn)速控制?,F(xiàn)將主要模塊介紹如下:1.1 STC89C51STC89C51是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,引腳排列如下圖。圖2 STC89C51ALE:地址鎖存控制信號。在系統(tǒng)擴展時,ALE用于控制把P0口輸出的低8位地址鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。此外,由于ALE是以晶振1/6的固

5、定頻率輸出的正脈沖,因此,可作為外部時鐘或外部定時脈沖使用。 PSEN:外部程序存儲器讀選通信號。在讀外部ROM時,有效低電平,以實現(xiàn)外部ROM單元的讀操作。 EA :程序存儲控制信號。當(dāng)信號為低電平時,對ROM的讀操作限定在 外部程序存儲器;當(dāng)信號為高電平時,對ROM的讀操作是從部程序存儲器開場,并可延至外部程序存儲器。RST:復(fù)位信號。當(dāng)輸入的復(fù)位信號延續(xù)兩個機器周期以上的高電平時即為有效,用以完成單片機的復(fù)位初始化操作。*TAL1和*TAL2:外接晶體引線端。當(dāng)使用芯片部時鐘時,此二引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,用于接外部時鐘脈沖信號。VSS:地線。VCC:+5V電

6、源。1.1 DAC0832DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個DA芯片以其價格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點,在單片機應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC存放器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。圖3 DAC0832D0D7:8位數(shù)據(jù)輸入線,TTL電平,有效時間應(yīng)大于90ns(否則鎖存器的數(shù)據(jù)會出錯);ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效;CS:片選信號輸入線選通數(shù)據(jù)鎖存器,低電平有效;WR1:數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖脈寬應(yīng)大于500ns有效。由ILE、CS、WR1的邏輯組合產(chǎn)生LE1,當(dāng)LE1為高電平時,

7、數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負(fù)跳變時將輸入數(shù)據(jù)鎖存;*FER:數(shù)據(jù)傳輸控制信號輸入線,低電平有效,負(fù)脈沖脈寬應(yīng)大于500ns有效;WR2:DAC存放器選通輸入線,負(fù)脈沖脈寬應(yīng)大于500ns有效。由WR2、*FER的邏輯組合產(chǎn)生LE2,當(dāng)LE2為高電平時,DAC存放器的輸出隨存放器的輸入而變化,LE2的負(fù)跳變時將數(shù)據(jù)鎖存器的容打入DAC存放器并開場D/A轉(zhuǎn)換。IOUT1:電流輸出端1,其值隨DAC存放器的容線性變化;IOUT2:電流輸出端2,其值與IOUT1值之和為一常數(shù);Rfb:反響信號輸入線,改變Rfb端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度;Vcc:電源輸入端,Vcc的圍為+5V+15

8、V;VREF:基準(zhǔn)電壓輸入線,VREF的圍為-10V+10V;AGND:模擬信號地;DGND:數(shù)字信號地。試驗箱DAC0832如下列圖所示圖4 實驗箱DAC08321.2 霍爾傳感器測速及轉(zhuǎn)速計算方法霍爾傳感器測速原理霍爾傳感器在測量機械設(shè)備的轉(zhuǎn)速時,被測量機械的金屬齒輪、齒條等運動部件會經(jīng)過傳感器的前端,引起磁場的相應(yīng)變化,當(dāng)運動部件穿過霍爾元件產(chǎn)生磁力線較為分散的區(qū)域時,磁場相對較弱,而穿過產(chǎn)生磁力線較為幾種的區(qū)域時,磁場就相對較強?;魻栟D(zhuǎn)速傳感器就是通過磁力線密度的變化,在磁力線穿過傳感器上的感應(yīng)元件時,產(chǎn)生霍爾電勢。霍爾傳感器的霍爾元件在產(chǎn)生霍爾電勢后,會將其轉(zhuǎn)換為交變電信號,最后傳感

9、器的置電路會將信號調(diào)整和放大,輸出矩形脈沖信號。另外,霍爾傳感器的測量必須配合磁場的變化,因此在霍爾傳感器測量非鐵磁材質(zhì)的設(shè)備時,需要事先在旋轉(zhuǎn)物體上安裝專門的磁鐵物質(zhì),用以改變傳感器周圍的磁場,這樣霍爾傳感器才能準(zhǔn)確的捕捉到物質(zhì)的運動狀態(tài)。本試驗箱的霍爾傳感器如下列圖所示圖5實驗箱霍爾傳感器測速方法由于直流電機轉(zhuǎn)速較小,所以采用T法測速,T發(fā)測速的原理如下T法是測量兩個脈沖之間的時間換算成周期,從而得到頻率。因存在半個時間單位的問題,可能會有1個時間單位的誤差。速度較高時,測得的周期較小,誤差所占的比例變大,所以T法宜測量低速。如要增加速度測量的上限,可以減小編碼器的脈沖數(shù),或使用更小更準(zhǔn)確

10、的計時單位,使一次測量的時間值盡可能大。計算公式為:T法測速的分辨率法測速誤差率 低速時,編碼器相鄰脈沖間隔時間長,測得的高頻時鐘脈沖個數(shù)M2多,所以誤差率小,測速精度高,故T法測速適用于低速段。測速流程圖如下列圖所示開場檢測外部中斷是否觸發(fā)開定時器1否否檢測下一脈沖是否到達(dá)計算兩脈沖時間間隔,計算轉(zhuǎn)速是否完畢圖6 轉(zhuǎn)速測量流程圖1.3 鍵盤掃描顯示使用6×4的小鍵盤,向列掃描碼地址逐列輸出低電平,然后從行碼地址讀回。圖7 6×4的鍵盤矩陣如果有鍵按下,則相應(yīng)行的值應(yīng)為低,如果無鍵按下,由于上拉的作用,行碼值為高。這樣就可以通過輸出的列碼和讀取的行碼來判斷按下的是什么鍵。在

11、判斷有鍵按下后,要有一定的延時,防止鍵盤抖動。初始化地址參數(shù)顯示緩沖區(qū)初始化輸出列掃描信號數(shù)碼管顯示列掃描信號移位有鍵輸入. 否讀入行信號 是讀取鍵值該列有鍵輸入. 是鍵值轉(zhuǎn)換為顯示數(shù)據(jù) 否6列掃描完. 否返回 是按照行列計算鍵值得鍵碼等待鍵盤釋放返回圖8 鍵盤掃秒流程圖1.3 PID控制本次的課程設(shè)計采用的PID控制,調(diào)速性能好,通過調(diào)節(jié)比例常數(shù)、積分常數(shù)、微分常數(shù)使得轉(zhuǎn)速控制到達(dá)想要的精度。PID參數(shù)的調(diào)節(jié)有試湊法和實驗法,本課程設(shè)計采用的是實驗法?,F(xiàn)介紹如下:實驗法的整定步驟為“先比例,再積分,最后微分。整定比例控制將比例控制作用由小變到大,觀察各次響應(yīng),直至得到反響快、超調(diào)小的響應(yīng)曲線

12、。整定積分環(huán)節(jié)假設(shè)在比例控制下穩(wěn)態(tài)誤差不能滿足要求,需參加積分控制。先將步驟中選擇的比例系數(shù)減小偉原來的50%-80%,再將積分時間置一個較大值,觀測響應(yīng)曲線。然后減少積分時間,加大積分作用,并相應(yīng)調(diào)節(jié)比例系數(shù),反復(fù)試湊至得到較滿意的響應(yīng),確定比例和積分的參數(shù)。整定微分環(huán)節(jié)假設(shè)經(jīng)過步驟,PI控制只能消除穩(wěn)態(tài)誤差,而動態(tài)過程不能令人滿意,則應(yīng)參加微分控制,構(gòu)成PID控制。先置微分時間TD=0,逐漸加大TD,同時相應(yīng)地改變比例系數(shù)和積分時間,反復(fù)試湊至獲得滿意的控制效果和PID控制參數(shù)。2 硬件電路的連接和程序的調(diào)試本次的課程設(shè)計是基于SICElab-G2100實驗箱設(shè)計,采用模塊化構(gòu)造。實驗箱如

13、下列圖所示圖9 SICElab-G2100實驗箱硬件接線如下:把第17號模塊“并行數(shù)模轉(zhuǎn)換中的DAC0832輸出Aout孔連第23號模塊“直流電機的Dcin孔,數(shù)模轉(zhuǎn)換DAC0832的CS17孔和*fer孔連第38號模塊“片選信號中的YS2孔,WR1孔和WR2孔連第33號模塊“控制總線的/WR孔,CKM孔霍爾傳感器輸出孔連“Lab51CPU板的P3.2孔。第38號模塊“片選信號中YS00800H孔連第40號模塊“鍵盤+數(shù)碼管CS40孔。連線連線孔1連線孔2連線連線孔1連線孔21AoutDcin5WR2/WR2CS17*fer6CKMP3.23*ferYS27CS40YS04WR1孔WR2表1

14、硬件電路連線圖10 接線圖按圖中接線,編寫程序,調(diào)試PID參數(shù),經(jīng)過反復(fù)的實驗,轉(zhuǎn)速可以快速的到達(dá)設(shè)定值,且不會出現(xiàn)振蕩,運行結(jié)果如下列圖所示圖11 轉(zhuǎn)速為4r/s時運行結(jié)果 圖12 轉(zhuǎn)速為12r/s時運行結(jié)果圖13 轉(zhuǎn)速為45r/s時運行結(jié)果3 創(chuàng)新與改良實驗箱自帶的有RS232,可以利用串口通訊,將矩陣鍵盤輸入給定值改為通過串口通訊的方式,通過PC機鍵盤給定,或者編寫Labview程序,使用Labview串口給單片機送給定值。4 心得體會經(jīng)過1個星期的課程設(shè)計,留給我印象最深的是要設(shè)計一個成功的程序,必須要有要有扎實的理論根底,還要有堅持不懈的精神。本產(chǎn)品實現(xiàn)了對直流電機的調(diào)速和測速,個人

15、感覺其中還有許多不夠完善的地方,例如:對電機的驅(qū)動電路采用的DAC0832,直接將數(shù)字量轉(zhuǎn)為模擬量進(jìn)展控制,精度不高,不過作為學(xué)生實驗足夠了。此次的設(shè)計并不奢望一定能成功,但一定要對已學(xué)的各種知識能有一定的運用能力,我做設(shè)計的目的是希望能檢查下對所學(xué)知識的運用能力的好壞,并且開場慢慢走上創(chuàng)造的道路,這是非常可貴的一點。這次的課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多編程問題,最后在 教師的辛勤指導(dǎo)下,終于迎刃而解。同時,在教師的身上我學(xué)得到很多實用的知識,林教師在我們完成的根底上添加新的東西,轉(zhuǎn)速給定值可以通過串口通訊,PC機發(fā)送數(shù)據(jù),也可以編寫Labview程序,通過虛擬旋鈕給定轉(zhuǎn)速值,為此

16、給我們培訓(xùn)了一下虛擬儀器及檢測技術(shù),對Labview做了簡單介紹,給我們?nèi)肓碎T。對林教師專業(yè)知識的淵博表示敬仰,在此我表示感!同時,和同學(xué)的互相交流,使我有新的創(chuàng)意,新的理解,在此表示感!5 附錄*include "reg52.h"*include "absacc.h"*define LEDLen 6unsigned char count;unsigned char TS;float DA;long int n;unsigned int t;unsigned char Key_temp;unsigned char k_TEMP2;*data unsign

17、ed char CS0832 _at_ 0*A000;*data unsigned char OUTBIT _at_ 0*8002; *data unsigned char OUTSEG _at_ 0*8004; *data unsigned char IN _at_ 0*8001; char code d*5163 _at_ 0*0023;unsigned char LEDBufLEDLen; code unsigned char LEDMAP = 0*3f, 0*06, 0*5b, 0*4f, 0*66, 0*6d, 0*7d, 0*07, 0*7f, 0*6f, 0*77, 0*7c,

18、0*39, 0*5e, 0*79, 0*71;code unsigned char KeyTable = 0*16, 0*15, 0*14, 0*ff, 0*13, 0*12, 0*11, 0*10, 0*0d, 0*0c, 0*0b, 0*0a, 0*0e, 0*03, 0*06, 0*09, 0*0f, 0*02, 0*05, 0*08, 0*00, 0*01, 0*04, 0*07;int PID(); /PID函數(shù)聲明void Init(); /初始化函數(shù)聲明void delay(unsigned char ms) /延時函數(shù)unsigned char *,y;for(*=ms;*&g

19、t;0;*-)for(y=110;y>0;y-);unsigned char TestKey()/檢測是否有鍵值鍵入 OUTBIT = 0; return (IN & 0*0f); unsigned char GetKey()/獲取鍵值 unsigned char Pos; unsigned char i; unsigned char k; i = 6; Pos = 0*20; do OUTBIT = Pos; Pos >>= 1; k = IN & 0*0f; while (-i != 0) && (k = 0); if (k != 0) i

20、 *= 4; if (k & 2) i += 1; else if (k & 4) i += 2; else if (k & 8) i += 3; OUTBIT = 0; do delay(10); while (TestKey(); return(KeyTablei); else return(0*ff);void DisplayLED() /顯示轉(zhuǎn)速 unsigned char i; unsigned char Pos; unsigned char LED; Pos = 0*20; for (i = 0; i < LEDLen; i+) OUTBIT = 0;

21、 LED = LEDBufi; OUTSEG = LED; OUTBIT = Pos; delay(5); Pos >>= 1; OUTBIT = 0; void t0() interrupt 1 /PID控制,采樣周期500msTS+; TH0=256-50000/256;TL0=256-50000%256;if(TS=10) TS=0; DA=PID();void time1_int(void) interrupt 3 /計算脈沖周期TH1=256-50000/256;TL1=256-50000%256;t+; void e*0() interrupt 0 n=1000/(50*t+(TH1-61)*256+TL1-176)/1000);/計算轉(zhuǎn)速 TR1=1; /啟動定時器1 t=0; TH1=256-50000/256; TL1=256-50000%256; int PID() /PID控制函數(shù)unsigned char P=1.4;/比例常數(shù)unsigned char I=2.2;/積分常數(shù)unsigned char D=0.2;/微分常數(shù)unsigned int LastError=0;/Error-1unsigned int PrevError=0;/Error-2unsigne

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論