895191585基于單片機(jī)及VC++的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)_第1頁(yè)
895191585基于單片機(jī)及VC++的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)_第2頁(yè)
895191585基于單片機(jī)及VC++的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)_第3頁(yè)
895191585基于單片機(jī)及VC++的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)_第4頁(yè)
895191585基于單片機(jī)及VC++的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1 引言步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€(xiàn)位移的開(kāi)環(huán)控制元件。在非超載的情況下, 電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即給 電機(jī)加一個(gè)脈沖信號(hào),電機(jī)則轉(zhuǎn)過(guò)一個(gè)步距角。這一線(xiàn)性關(guān)系的存在,加上步進(jìn)電機(jī)只有周 期性的誤差而無(wú)累積誤差,使得在速度、位置等控制領(lǐng)域,用步進(jìn)電機(jī)來(lái)控制變的非常的簡(jiǎn) 單1。本文設(shè)計(jì)了一種基于at89s52 單片機(jī)和vc+的步進(jìn)電機(jī)控制系統(tǒng),可以實(shí)現(xiàn)對(duì)步進(jìn) 電機(jī)的基本控制及狀態(tài)實(shí)時(shí)顯示。2 系統(tǒng)組成使用、控制步進(jìn)電機(jī)必須由環(huán)形脈沖源、功率放大電路等部分組成控制系統(tǒng),脈沖信號(hào) 一般由單片機(jī)或cpu產(chǎn)生,一般脈沖信號(hào)的占空比為0.3-0

2、.4左右,電機(jī)轉(zhuǎn)速越高,占空比則 越大。功率放大是驅(qū)動(dòng)系統(tǒng)最為重要的部分。步進(jìn)電機(jī)在一定轉(zhuǎn)速下的轉(zhuǎn)矩取決于它的動(dòng)態(tài) 平均電流而非靜態(tài)電流,平均電流越大,電機(jī)力矩越大,要達(dá)到平均電流大,這就需要驅(qū)動(dòng) 系統(tǒng)盡量克服電機(jī)的反電勢(shì)。因而不同的場(chǎng)合采取不同的驅(qū)動(dòng)方式。到目前為止,驅(qū)動(dòng)方式 一般有以下幾種:恒壓、恒壓串電阻、高低壓驅(qū)動(dòng)、恒流等2。本文設(shè)計(jì)系統(tǒng)中,脈沖信號(hào)由單片機(jī)at89s52產(chǎn)生并分配給步進(jìn)電機(jī)各相,功率放大部分由驅(qū)動(dòng)電路完成,系統(tǒng)結(jié)構(gòu)框圖如圖1所示。本文所設(shè)計(jì)系統(tǒng)中,步進(jìn)電機(jī)模塊采用35by48s03永磁式步進(jìn)電機(jī),用戶(hù)利用4*4鍵盤(pán)或上位機(jī)的控制界面實(shí)現(xiàn)指令輸入,采用上位機(jī)或1602字

3、符型液晶模塊實(shí)時(shí)顯示運(yùn)行狀態(tài)。3 硬件設(shè)計(jì)3.1 單片機(jī)最小系統(tǒng)電路單片機(jī)的最小系統(tǒng)電路包括時(shí)鐘電路和復(fù)位電路。本文所設(shè)計(jì)系統(tǒng)中,時(shí)鐘電路采用內(nèi) 部振蕩方式,所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)用電路中使用較多3。復(fù)位電路作用是使單片機(jī) 的片內(nèi)電路初始化,使單片機(jī)從一種確定的狀態(tài)開(kāi)始運(yùn)行。復(fù)位電路采用2種基本形式:上 電復(fù)位、開(kāi)關(guān)復(fù)位。3.2 鍵盤(pán)電路設(shè)計(jì)p1口接4*4鍵盤(pán),鍵盤(pán)電路圖如圖2所示:3.3 電機(jī)驅(qū)動(dòng)電路35by48s03型步進(jìn)電機(jī)接線(xiàn)圖如圖3所示,從圖中可以看出,電機(jī)共有四組線(xiàn)圈,四組線(xiàn)圈的一個(gè)端點(diǎn)連在一起引出,這樣一共有5根引出線(xiàn)。要使步進(jìn)電機(jī)轉(zhuǎn)動(dòng),只要以一定的 次序輪流給各引出端通電即

4、可,加電的方式可以有多種,包括單相驅(qū)動(dòng)、雙相驅(qū)動(dòng)、單雙 相驅(qū)動(dòng)等,相應(yīng)步進(jìn)角有整步和半步區(qū)分。在本文設(shè)計(jì)的系統(tǒng)中,采用單相驅(qū)動(dòng)和單雙相 驅(qū)動(dòng)兩種加電方式驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)轉(zhuǎn)。根據(jù)該電機(jī)參數(shù),不難設(shè)計(jì)出驅(qū)動(dòng)電路,因其工作電壓為12v,最大電流為0.26a,因 此用一塊開(kāi)路輸出達(dá)林頓驅(qū)動(dòng)器(uln2003)作為驅(qū)動(dòng),通過(guò)p2.7-p2.4來(lái)控制各線(xiàn)圈的接通與 切斷。如果要改變電機(jī)的轉(zhuǎn)動(dòng)速度只要改變兩次接通之間的時(shí)間,而要改變電機(jī)的轉(zhuǎn)動(dòng)方向, 只要改變各線(xiàn)圈接通的順序4。3.4 串行通信電路在pc機(jī)內(nèi)接有pc16550(和8250兼容)串行接口、eia-ttl的電平轉(zhuǎn)換器和rs-232c連 接器,除鼠標(biāo)

5、占用一個(gè)串行口外,還留有兩個(gè)串行口給用戶(hù),這就是com1(地址3f8h-3ffh) 和com2(地址2f8h-2ffh),通過(guò)這兩個(gè)口,可以連接串行通信設(shè)備,如單片機(jī)、仿真機(jī) 等。由于單片機(jī)的串行發(fā)送和接收線(xiàn)txd和rxd是ttl電平,而pc的com1或com2的 rs-232c連接器(d型9針插座)是eia電平,因此單片機(jī)需加接max232芯片,通過(guò)串行電 纜線(xiàn)和pc相連接。本文所設(shè)計(jì)的串行通信電路如圖4所示。3.5 下位機(jī)顯示電路液晶采用顯示容量為2行16個(gè)字的1602液晶,1602采用標(biāo)準(zhǔn)的16腳接口,內(nèi)部的字符發(fā) 生存儲(chǔ)器(cgrom)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,每一個(gè)字符都

6、有一個(gè)固定的 代碼5。設(shè)計(jì)電路圖如圖5所示。4 軟件設(shè)計(jì)軟件設(shè)計(jì)可分為兩個(gè)部分:上位機(jī)軟件設(shè)計(jì)和下位機(jī)軟件設(shè)計(jì)。上位機(jī)軟件設(shè)計(jì)包括: 上位機(jī)控制環(huán)境設(shè)計(jì)、上位機(jī)通信程序設(shè)計(jì)以及上位機(jī)程序的封裝發(fā)布;下位機(jī)軟件設(shè)計(jì)包 括:鍵盤(pán)掃描程序、下位機(jī)通信程序、主驅(qū)動(dòng)程序、測(cè)試部分程序、顯示部分程序。4.1 上位軟件設(shè)計(jì)visual c+設(shè)計(jì)了一套基礎(chǔ)類(lèi)庫(kù)(microsoft foundation class library, mfc), mfc把編 程規(guī)范中的大多數(shù)內(nèi)容封裝成為各種類(lèi),使程序員從繁雜的編程中解脫出來(lái)6。根據(jù)系統(tǒng)設(shè) 計(jì)需要,設(shè)計(jì)一個(gè)基于對(duì)話(huà)框的應(yīng)用程序即可,如圖6所示。為實(shí)現(xiàn)上位機(jī)與下位機(jī)

7、通信,利用microsoft提供的串行通信activex控件。該控件的相 應(yīng)文件是mscomm32.ocx。在基于對(duì)話(huà)框的程序中使用控件,需要進(jìn)行以下幾方面操作: 拖動(dòng)控件圖標(biāo)到窗口上,創(chuàng)建控件id。在對(duì)話(huà)框頭文件中聲明cmscomm類(lèi)的變量及引用控 件類(lèi)頭文件。創(chuàng)建cmscomm類(lèi)的實(shí)例。建立控件事件響應(yīng)代碼框架7。在電機(jī)狀態(tài)改變后,由下位機(jī)將代表各狀態(tài)的數(shù)據(jù)發(fā)送給上位機(jī),上位機(jī)接收到后存入 一個(gè)數(shù)組內(nèi),根據(jù)此數(shù)組內(nèi)容刷新各編輯框內(nèi)容,以達(dá)到實(shí)時(shí)顯示的目的。此處共有五個(gè)數(shù) 據(jù),放入rxdata數(shù)組中,分別代表勵(lì)磁狀態(tài)、轉(zhuǎn)動(dòng)方向、速度、測(cè)試1計(jì)數(shù)、測(cè)試2計(jì)數(shù)。上 位機(jī)mscomm控件setrt

8、hreshold屬性設(shè)置為5,則當(dāng)下位機(jī)將五個(gè)數(shù)據(jù)發(fā)送完后,上位機(jī)立 即觸發(fā)oncomm事件,進(jìn)行接收8。當(dāng)我們安裝vc+6.0時(shí),如果選擇了activex控件項(xiàng)(自定義安裝),mscomm控件就 會(huì)自動(dòng)安裝在計(jì)算機(jī)上了,并在系統(tǒng)文件夾下多了3個(gè)文件:mscomm.srg,mscomm32.ocx, mscomm32.dep,即mscomm控件已經(jīng)過(guò)授權(quán),但要注意的是,如果程序移植到其它沒(méi)有安 裝vc軟件的pc機(jī)上,必須將其使用“執(zhí)照”license 在注冊(cè)表中登記注冊(cè),才可以正常運(yùn)行。 為了正常運(yùn)行, 還需要將vc開(kāi)發(fā)的可執(zhí)行文件與運(yùn)行所需的三個(gè)動(dòng)態(tài)鏈接文件 mfc42d.dll,mfco4

9、2d.dll,msvcrtd.dll放在同一個(gè)文件夾中。使用installshield軟 件進(jìn)行封裝實(shí)現(xiàn)以上要求即可。4.2 下位機(jī)軟件設(shè)計(jì)本文所設(shè)計(jì)系統(tǒng)中,采用單相驅(qū)動(dòng)和單雙相驅(qū)動(dòng)兩種加電方式驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)轉(zhuǎn),即 單相四拍和單雙相八拍驅(qū)動(dòng),分別為整步和半步運(yùn)轉(zhuǎn),步進(jìn)角分別為7.5度和3.75度,不同 的驅(qū)動(dòng)方式其狀態(tài)表不同,兩種驅(qū)動(dòng)方式的波形及狀態(tài)表如下,其中1代表高電平,表示驅(qū) 動(dòng)的磁極繞組通電;0代表低電平,表示驅(qū)動(dòng)的磁極繞組不通電。按照設(shè)計(jì)要求改變轉(zhuǎn)速,則只要改變p2.7-p2.4輪流改變電平的時(shí)間即可達(dá)到要求,這個(gè) 時(shí)間不應(yīng)采用延時(shí)來(lái)實(shí)現(xiàn),因?yàn)闀?huì)影響到其他功能的實(shí)現(xiàn)。這里以定時(shí)的方式

10、來(lái)實(shí)現(xiàn),晶振 頻率為11.0592m,采用t0方式1定時(shí)。主程序流程圖如圖7所示:系統(tǒng)上電后,首先進(jìn)行初始化,包括液晶屏初始化及將程序所用到的內(nèi)存單元(開(kāi)關(guān)機(jī) 狀態(tài)標(biāo)志位7fh、正反轉(zhuǎn)標(biāo)志位7eh、單相勵(lì)磁或單雙相勵(lì)磁標(biāo)志位7dh、測(cè)試標(biāo)志位7ch、 當(dāng)前速度寄存單元2eh)清零。然后檢測(cè)是否開(kāi)啟電機(jī),檢測(cè)到開(kāi)信號(hào)后,設(shè)置狀態(tài)位,7fh=1,7eh=1,7dh=1,2eh=10,代表起始狀態(tài)設(shè)置為:?jiǎn)坞p相勵(lì)磁正轉(zhuǎn),起始速度為10r/m。設(shè)置 t0 相關(guān)參數(shù)后,開(kāi)始定時(shí),同時(shí)檢測(cè)鍵盤(pán)是否有其它請(qǐng)求發(fā)生,如果有,則改變 相應(yīng)的狀態(tài)位,并改變單片機(jī)輸出波形,控制步進(jìn)電機(jī)運(yùn)行狀態(tài)改變。串行通信的編程方

11、式有兩種查詢(xún)方式:查ti 或ri 是否為“1”。中斷方式:如果預(yù)先開(kāi) 了中斷,當(dāng)ti、ri 為“1”,會(huì)自動(dòng)產(chǎn)生中斷。兩種方式中當(dāng)發(fā)送或接受數(shù)據(jù)后都要注意清 ti 或ri。本文所設(shè)計(jì)系統(tǒng)中,下位機(jī)采用查詢(xún)及中斷兩種接收方式,接收上位機(jī)的控制指 令;發(fā)送采用查詢(xún)方式,將當(dāng)前電機(jī)運(yùn)行狀態(tài)信息發(fā)給上位機(jī)實(shí)時(shí)顯示。5 功能驗(yàn)證利用示波器測(cè)量p2.7-p2.4口產(chǎn)生的波形,以測(cè)試電機(jī)的激勵(lì)脈沖是否與理論相符,所測(cè) 波形如圖8、9所示。圖8是在單-雙相八拍勵(lì)磁方式,轉(zhuǎn)速為10轉(zhuǎn)/分的情況下,測(cè)量出的p2.7 和p2.5波形,即a,/a的激勵(lì)波形。圖9是在單相四拍勵(lì)磁方式,轉(zhuǎn)速為30轉(zhuǎn)/分的情況下, 測(cè)量出的p2.7和p2.6波形,即a,/b的激勵(lì)波形。上位機(jī)控制操作和鍵盤(pán)控制操作可以單獨(dú)發(fā)出指令,也可以交互發(fā)出指令,該系統(tǒng)應(yīng)用 環(huán)境較廣。經(jīng)測(cè)試,所設(shè)計(jì)系統(tǒng)可以很好的達(dá)到設(shè)計(jì)要求,可以實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的基本控制 及狀態(tài)實(shí)時(shí)顯示。6 結(jié)論本文設(shè)計(jì)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論