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

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)任務(wù)書(shū)2課題介紹、主要內(nèi)容、主要器件、主要資料及參考文獻(xiàn)、預(yù)期設(shè)計(jì)(論文)成果2一.基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)6摘要61.1課程設(shè)計(jì)目的61.2 課程設(shè)計(jì)說(shuō)明61.3 步進(jìn)電機(jī)的變頻調(diào)速71.4系統(tǒng)軟硬件協(xié)同設(shè)計(jì)81.5 應(yīng)用實(shí)例10二.單片機(jī)的電機(jī)驅(qū)動(dòng)接口電路設(shè)計(jì)18 1.1 .軟件設(shè)計(jì)18三.單片機(jī)對(duì)電機(jī)轉(zhuǎn)向、轉(zhuǎn)速的控制18四.單片機(jī)對(duì)步進(jìn)電機(jī)的正、反轉(zhuǎn)控制 18五.利用單片機(jī)實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的運(yùn)動(dòng)控制211 引言 21 2 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì) 213 系統(tǒng)硬件電路設(shè)計(jì) 22六.結(jié)束語(yǔ) 301基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)摘要:本文應(yīng)用單片機(jī)、步進(jìn)

2、電機(jī)驅(qū)動(dòng)芯片、字符型LCD和鍵盤(pán)陣列,構(gòu)建了集步進(jìn)電機(jī)控制器和驅(qū)動(dòng)器為一體的步進(jìn)電機(jī)控制系統(tǒng)。二維工作臺(tái)作為被控對(duì)象通過(guò)步進(jìn)電機(jī)驅(qū)動(dòng)滾珠絲桿在X/Y軸方向聯(lián)動(dòng)。文中討論了一種以最少參數(shù)確定一條圓弧軌跡的插補(bǔ)方法和步進(jìn)電機(jī)變頻調(diào)速的方法。步進(jìn)電機(jī)控制系統(tǒng)的開(kāi)發(fā)采用了軟硬件協(xié)同仿真的方法,可以有效地減少系統(tǒng)開(kāi)發(fā)的周期和成本。最后給出了步進(jìn)電機(jī)控制系統(tǒng)的應(yīng)用實(shí)例。 關(guān)鍵詞: 步進(jìn)電機(jī)控制系統(tǒng),插補(bǔ)算法,變頻調(diào)速,軟硬件協(xié)同仿真1.1 課程設(shè)計(jì)目的1、熟悉和掌握單片機(jī)的結(jié)構(gòu)和工作原理。2、掌握單片機(jī)的接口技術(shù)和相關(guān)外圍芯片的特性及控制方法。3、掌握以單片機(jī)為核心的電路設(shè)計(jì)的基本方法和技術(shù),了解有關(guān)電路

3、參數(shù)的計(jì)算方法。4、通過(guò)實(shí)際程序設(shè)計(jì)和調(diào)試,逐步掌握模塊化程序設(shè)計(jì)方法和調(diào)試技術(shù)。5、通過(guò)完成一個(gè)包括電路設(shè)計(jì)和程序開(kāi)發(fā)的完整過(guò)程,為今后從事相關(guān)工作打下基礎(chǔ)。1.2 課程設(shè)計(jì)說(shuō)明(1) 作為一種數(shù)字伺服執(zhí)行元件,步進(jìn)電機(jī)具有結(jié)構(gòu)簡(jiǎn)單、運(yùn)行可靠、控制方便、控制性能好等優(yōu)點(diǎn),廣泛應(yīng)用在數(shù)控機(jī)床、機(jī)器人、自動(dòng)化儀表等領(lǐng)域。為了實(shí)現(xiàn)步進(jìn)電機(jī)的簡(jiǎn)易運(yùn)動(dòng)控制,一般以單片機(jī)作為控制系統(tǒng)的微處理器,通過(guò)步進(jìn)電機(jī)專用驅(qū)動(dòng)芯片實(shí)現(xiàn)步進(jìn)電機(jī)的速度和位置定位控制。(2) 圓弧插補(bǔ)改進(jìn)算法逐點(diǎn)比較插補(bǔ)算法因其算法簡(jiǎn)單、易實(shí)現(xiàn)且最大誤差不超過(guò)一個(gè)脈沖當(dāng)量,在步進(jìn)電機(jī)的位置控制中應(yīng)用的相當(dāng)廣泛1。圓弧插補(bǔ)中,為了確定一條

4、圓弧的軌跡,可采用:給出圓心坐標(biāo)、起點(diǎn)坐標(biāo)和終點(diǎn)坐標(biāo);給出半徑、起點(diǎn)和終點(diǎn)坐標(biāo);給出圓弧的三點(diǎn)坐標(biāo)等。在算法實(shí)現(xiàn)時(shí)這些參數(shù)若要存放在單片機(jī)內(nèi)部資源有限的數(shù)據(jù)存儲(chǔ)器(RAM)中,如果要經(jīng)過(guò)復(fù)雜的運(yùn)算才能確定一段圓弧,不但給微處理器帶來(lái)負(fù)擔(dān),而且要經(jīng)過(guò)多步運(yùn)算,往往會(huì)影響到算法的精確度。因此選取一種簡(jiǎn)單且精確度高的插補(bǔ)算法是非常必要的。本文提出了一種改進(jìn)算法:在圓弧插補(bǔ)中,無(wú)論圓弧在任何位置,是順圓或是逆圓,都以此圓弧的圓心作為原點(diǎn)來(lái)確定其他坐標(biāo)。因此只須給出圓弧的起點(diǎn)坐標(biāo)和圓弧角度就可以確定該圓弧。如果一個(gè)軸坐標(biāo)用4個(gè)字節(jié)存儲(chǔ)(如12.36),而角度用2個(gè)字節(jié)存儲(chǔ)(如45),則只需要10個(gè)字節(jié)即

5、可確定一段二維的圓弧。較之起其他方法,最多可節(jié)省14個(gè)存儲(chǔ)單元?,F(xiàn)以第I象限逆圓弧為例,計(jì)算其終點(diǎn)坐標(biāo)。如圖1所示,(X0,Y0)為圓弧的起點(diǎn)坐標(biāo),(Xe,Ye)為圓弧的終點(diǎn)坐標(biāo),為圓弧的角度。 圓弧半徑: 終點(diǎn)坐標(biāo): 終點(diǎn)坐標(biāo)相對(duì)X軸的角度:本系統(tǒng)要求輸入的角度精確到1度,輸入坐標(biāo)的分辨率是0.01,單片機(jī)C語(yǔ)言的浮點(diǎn)運(yùn)算能精確到0.,按照上面的公式算出的終點(diǎn)坐標(biāo)1%,能夠滿足所要求的精確,雖存在誤差,但這個(gè)誤差小于度。(3) 步進(jìn)電機(jī)的變頻調(diào)速 雖然步進(jìn)電機(jī)具有快速啟停能力強(qiáng)、精度高、轉(zhuǎn)速容易控制的特點(diǎn),但是在實(shí)際運(yùn)行過(guò)程中由于啟動(dòng)和停止控制不當(dāng),步進(jìn)電機(jī)仍會(huì)出現(xiàn)啟動(dòng)時(shí)抖動(dòng)和停止時(shí)過(guò)沖的現(xiàn)

6、象,從面影響系統(tǒng)的控制精度。尤其是步進(jìn)電機(jī)工作在頻繁啟動(dòng)和停止時(shí),這種現(xiàn)象就更為明顯2。為此本文提出了一種基于單片機(jī)控制的步進(jìn)電機(jī)加減速離散控制方法。加減速曲線如圖2 所示,縱坐標(biāo)是頻率 f,單位為脈沖/秒或步/秒。橫坐標(biāo)時(shí)間 t,單位為秒。步進(jìn)電機(jī)以 f0 啟動(dòng)后加速至 t1 時(shí)刻達(dá)到最高運(yùn)行頻率 f,然后勻速運(yùn)行,至 t2 時(shí)刻開(kāi)始減速,在 t5 時(shí)刻電機(jī)停轉(zhuǎn),總的步數(shù)為 N。其中電機(jī)從靜止加速至最高運(yùn)行頻率和從最高運(yùn)行頻率至停止至是步進(jìn)電機(jī)控制的關(guān)鍵,通常采用勻加速和勻減速方式。圖2 時(shí)間與頻率的函數(shù)圖 圖3 離散化的時(shí)間變頻圖采用單片機(jī)對(duì)步進(jìn)電機(jī)進(jìn)行加減速控制,實(shí)際上就是改變輸出脈沖的

7、時(shí)間間隔,可采用軟件和硬件兩種方法。軟件方法依靠延時(shí)程序來(lái)改變脈沖輸出的頻率,其中延時(shí)的長(zhǎng)短是動(dòng)態(tài)的,該方法因?yàn)橐煌5禺a(chǎn)生控制脈沖,占用了大量的CPU時(shí)間;硬件方法是依靠單片機(jī)內(nèi)部的定時(shí)器來(lái)實(shí)現(xiàn)的,在每次進(jìn)入定時(shí)中斷后,改變定時(shí)常數(shù)(定時(shí)器裝載值),從而升速時(shí)使脈沖頻率逐漸增大,減速時(shí)使脈沖頻率逐漸減小。這種方法占用CPU時(shí)間較少,是一種效率比較高的步進(jìn)電機(jī)調(diào)速方法??紤]到單片機(jī)資源(字長(zhǎng))和編程的方便,不需要每步都計(jì)算定時(shí)器裝載值。如圖3所示,采用離散方法將加減速曲線離散化。離散化后速度是分臺(tái)階上升的,而且每上升一個(gè)臺(tái)階都要在該臺(tái)階保持一段時(shí)間,以克服由于步進(jìn)電機(jī)轉(zhuǎn)子轉(zhuǎn)動(dòng)慣量所引起的速度滯

8、后。只有當(dāng)實(shí)際運(yùn)行速度達(dá)到預(yù)設(shè)值后才能急速加速,實(shí)際上也是局部速度誤差的自動(dòng)糾正。(4) 系統(tǒng)軟硬件協(xié)同設(shè)計(jì) 對(duì)于51系列單片機(jī)的軟件開(kāi)發(fā),傳統(tǒng)的方法是在PC機(jī)上采用Keil等開(kāi)發(fā)工具進(jìn)行程序設(shè)計(jì)、編譯、調(diào)試,待程序調(diào)試通過(guò)之后生成目標(biāo)文件下載至單片機(jī)硬件電路再進(jìn)行硬件調(diào)試3。這種方法只有硬件電路完成之后才能進(jìn)行系統(tǒng)功能測(cè)試,若此時(shí)發(fā)現(xiàn)硬件電路存在設(shè)計(jì)問(wèn)題且必須進(jìn)行修改時(shí)就會(huì)顯著影響系統(tǒng)開(kāi)發(fā)的成本和周期。為此,本文采用了系統(tǒng)軟硬件協(xié)同仿真的開(kāi)發(fā)方法,使得硬件電路實(shí)現(xiàn)前的功能測(cè)試成為可能。同時(shí)硬件電路的軟件化仿真為硬件電路的設(shè)計(jì)與實(shí)現(xiàn)提供了有力的保障。其中在Keil uVision2集成開(kāi)發(fā)環(huán)境

9、下,實(shí)現(xiàn)步進(jìn)電機(jī)控制系統(tǒng)的程序設(shè)計(jì)、編譯、調(diào)試,并最終生成目標(biāo)文件 .hex,而由英國(guó)Proteus Labcenter electronics公司所提供的EDA工具Proteus則利用該目標(biāo)文件 .hex 實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)控制系統(tǒng)硬件電路功能的測(cè)試。 圖4 步進(jìn)電機(jī)控制系統(tǒng)硬件電路仿真如圖4所示,單片機(jī)AT89C55司職步進(jìn)電機(jī)控制器,通過(guò)運(yùn)行在Keil uVision2 環(huán)境下所開(kāi)發(fā)的程序來(lái)控制兩個(gè)步進(jìn)電機(jī)驅(qū)動(dòng)芯片L298,從而實(shí)現(xiàn)對(duì)AXIS_X / AXIS_Y兩軸步進(jìn)電機(jī)的聯(lián)動(dòng)控制。L298驅(qū)動(dòng)芯片的步進(jìn)脈沖輸入信號(hào)來(lái)自AT89C55 P0端口,使能信號(hào)ENABLE A與ENABLE B

10、并聯(lián)接到AT89C55的P3.0、P3.1口,由程序控制實(shí)現(xiàn)步進(jìn)電機(jī)的使能,從而避免電機(jī)線圈處于短路狀態(tài)而燒壞驅(qū)動(dòng)芯片。4 x 4鍵盤(pán)陣列接AT89C55的P1端口,通過(guò)程序設(shè)計(jì)定義每個(gè)按鍵的具體功能。LCD的數(shù)據(jù)端口DB0DB7接AT89C55的P2端口,控制端口RS, RW, E分別接單片機(jī)的P3.5, P3.6, P3.7口。相關(guān)的參數(shù)值、X/Y軸坐標(biāo)值可以通過(guò)LCD以文本方式顯示。本文采用軟硬件協(xié)同仿真的方法經(jīng)過(guò)設(shè)計(jì)測(cè)試修正再測(cè)試一次次迭代開(kāi)發(fā),在制作控制系統(tǒng)硬件電路之前即可實(shí)現(xiàn)對(duì)系統(tǒng)整機(jī)功能的測(cè)試。待系統(tǒng)程序和硬件電路設(shè)計(jì)方案最終完善之后便可以實(shí)際制作如圖5所示的硬件電路。顯然該種方

11、法可以顯著提高系統(tǒng)軟硬件開(kāi)發(fā)的成功率,從而有效降低系統(tǒng)的開(kāi)發(fā)周期和開(kāi)發(fā)成本。(5) 應(yīng)用實(shí)例圖5即是根據(jù)圖4進(jìn)行硬件電路仿真的最終結(jié)果所制作的步進(jìn)電機(jī)控制系統(tǒng)電路板。該電路驅(qū)動(dòng)X/Y軸步進(jìn)電機(jī)通過(guò)滾珠絲桿帶動(dòng)二維工作臺(tái)作聯(lián)動(dòng),并由一只鉛筆模擬加工刀具將所要加工的二維軌跡描繪出來(lái)。圖5步進(jìn)電機(jī)控制系統(tǒng)硬件電路 圖6 二維模擬工作平臺(tái)運(yùn)動(dòng)軌跡步進(jìn)電機(jī)在控制系統(tǒng)中具有廣泛的應(yīng)用。它可以把脈沖信號(hào)轉(zhuǎn)換成角位移,并且可用作電磁制動(dòng)輪、電磁差分器、或角位移發(fā)生器等。 有時(shí)從一些舊設(shè)備上拆下的步進(jìn)電機(jī)(這種電機(jī)一般沒(méi)有損壞)要改作它用,一般需自己設(shè)計(jì)驅(qū)動(dòng)器。此介紹為從一日本產(chǎn)舊式打印機(jī)上拆下的步進(jìn)電機(jī)而設(shè)計(jì)

12、的驅(qū)動(dòng)器。該先介紹該步進(jìn)電機(jī)的工作原理,然后介紹了其驅(qū)動(dòng)器的軟、硬件設(shè)計(jì)。1. 步進(jìn)電機(jī)的工作原理該步進(jìn)電機(jī)為一四相步進(jìn)電機(jī),采用單極性直流電源供電。只要對(duì)步進(jìn)電機(jī)的各相繞組按合適的時(shí)序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動(dòng)。圖1是該四相反應(yīng)式步進(jìn)電機(jī)工作原理示意圖。圖1 四相步進(jìn)電機(jī)步進(jìn)示意圖開(kāi)始時(shí),開(kāi)關(guān)SB接通電源,SA、SC、SD斷開(kāi),B相磁極和轉(zhuǎn)子0、3號(hào)齒對(duì)齊,同時(shí),轉(zhuǎn)子的1、4號(hào)齒就和C、D相繞組磁極產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和D、A相繞組磁極產(chǎn)生錯(cuò)齒。當(dāng)開(kāi)關(guān)SC接通電源,SB、SA、SD斷開(kāi)時(shí),由于C相繞組的磁力線和1、4號(hào)齒之間磁力線的作用,使轉(zhuǎn)子轉(zhuǎn)動(dòng),1、4號(hào)齒和C相繞組的磁極對(duì)齊。而0、

13、3號(hào)齒和A、B相繞組產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和A、D相繞組磁極產(chǎn)生錯(cuò)齒。依次類推,A、B、C、D四相繞組輪流供電,則轉(zhuǎn)子會(huì)沿著A、B、C、D方向轉(zhuǎn)動(dòng)。四相步進(jìn)電機(jī)按照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉(zhuǎn)動(dòng)力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,八拍工作方式既可以保持較高的轉(zhuǎn)動(dòng)力矩又可以提高控制精度。單四拍、雙四拍與八拍工作方式的電源通電時(shí)序與波形分別如圖2.a、b、c所示: 圖2.步進(jìn)電機(jī)工作時(shí)序波形圖 圖3 步進(jìn)電機(jī)驅(qū)動(dòng)器系統(tǒng)電路原理圖AT89C2051將控制脈沖從P1口的P1.4P1.7輸出,經(jīng)74LS14反相后進(jìn)

14、入9014,經(jīng)9014放大后控制光電開(kāi)關(guān),光電隔離后,由功率管TIP122將脈沖信號(hào)進(jìn)行電壓和電流放大,驅(qū)動(dòng)步進(jìn)電機(jī)的各相繞組。使步進(jìn)電機(jī)隨著不同的脈沖信號(hào)分別作正轉(zhuǎn)、反轉(zhuǎn)、加速、減速和停止等動(dòng)作。圖中L1為步進(jìn)電機(jī)的一相繞組。AT89C2051選用頻率22MHz的晶振,選用較高晶振的目的是為了在方式2下盡量減小AT89C2051對(duì)上位機(jī)脈沖信號(hào)周期的影響。圖3中的RL1RL4為繞組內(nèi)阻,50電阻是一外接電阻,起限流作用,也是一個(gè)改善回路時(shí)間常數(shù)的元件。D1D4為續(xù)流二極管,使電機(jī)繞組產(chǎn)生的反電動(dòng)勢(shì)通過(guò)續(xù)流二極管(D1D4)而衰減掉,從而保護(hù)了功率管TIP122不受損壞。在50外接電阻上并聯(lián)一

15、個(gè)200F電容,可以改善注入步進(jìn)電機(jī)繞組的電流脈沖前沿,提高了步進(jìn)電機(jī)的高頻性能。與續(xù)流二極管串聯(lián)的200電阻可減小回路的放電時(shí)間常數(shù),使繞組中電流脈沖的后沿變陡,電流下降時(shí)間變小,也起到提高高頻工作性能的作用。3.軟件設(shè)計(jì)該驅(qū)動(dòng)器根據(jù)撥碼開(kāi)關(guān)KX、KY的不同組合有三種工作方式供選擇:方式1 中斷方式:P3.5(INT1)為步進(jìn)脈沖輸入端,P3.7為正反轉(zhuǎn)脈沖輸入端。上位機(jī)(PC機(jī)或單片機(jī))與驅(qū)動(dòng)器僅以2條線相連。方式2 串行通訊方式:上位機(jī)(PC機(jī)或單片機(jī))將控制命令發(fā)送給驅(qū)動(dòng)器,驅(qū)動(dòng)器根據(jù)控制命令自行完成有關(guān)控制過(guò)程。方式3 撥碼開(kāi)關(guān)控制方式:通過(guò)K1K5的不同組合,直接控制步進(jìn)電機(jī)。當(dāng)上

16、電或按下復(fù)位鍵KR后,AT89C2051先檢測(cè)撥碼開(kāi)關(guān)KX、KY的狀態(tài),根據(jù)KX、KY 的不同組合,進(jìn)入不同的工作方式。以下給出方式1的程序流程框圖與源程序。在程序的編制中,要特別注意步進(jìn)電機(jī)在換向時(shí)的處理。為使步進(jìn)電機(jī)在換向時(shí)能平滑過(guò)渡,不至于產(chǎn)生錯(cuò)步,應(yīng)在每一步中設(shè)置標(biāo)志位。其中20H單元的各位為步進(jìn)電機(jī)正轉(zhuǎn)標(biāo)志位;21H單元各位為反轉(zhuǎn)標(biāo)志位。在正轉(zhuǎn)時(shí),不僅給正轉(zhuǎn)標(biāo)志位賦值,也同時(shí)給反轉(zhuǎn)標(biāo)志位賦值;在反轉(zhuǎn)時(shí)也如此。這樣,當(dāng)步進(jìn)電機(jī)換向時(shí),就可以上一次的位置作為起點(diǎn)反向運(yùn)動(dòng),避免了電機(jī)換向時(shí)產(chǎn)生錯(cuò)步。圖4 方式1程序框圖方式1源程序:MOV 20H,#00H ;20H單元置初值,電機(jī)正轉(zhuǎn)位置

17、指針MOV 21H,#00H ;21H單元置初值,電機(jī)反轉(zhuǎn)位置指針MOV P1,#0C0H ;P1口置初值,防止電機(jī)上電短路MOV TMOD,#60H ;T1計(jì)數(shù)器置初值,開(kāi)中斷MOV TL1,#0FFHMOV TH1,#0FFHSETB ET1SETB EASETB TR1SJMP $;*計(jì)數(shù)器1中斷程序* IT1P: JB P3.7,FAN ;電機(jī)正、反轉(zhuǎn)指針;*電機(jī)正轉(zhuǎn)*JB 00H,LOOP0JB 01H,LOOP1JB 02H,LOOP2JB 03H,LOOP3JB 04H,LOOP4JB 05H,LOOP5JB 06H,LOOP6JB 07H,LOOP7LOOP0: MOV P1,

18、#0D0HMOV 20H,#02HMOV 21H,#40HAJMP QUITLOOP1: MOV P1,#090HMOV 20H,#04HMOV 21H,#20HAJMP QUITLOOP2: MOV P1,#0B0HMOV 20H,#08HMOV 21H,#10HAJMP QUITLOOP3: MOV P1,#030HMOV 20H,#10HMOV 21H,#08HAJMP QUITLOOP4: MOV P1 ,#070HMOV 20H,#20HMOV 21H,#04HAJMP QUITLOOP5: MOV P1,#060HMOV 20H,#40HMOV 21H,#02HAJMP QUITL

19、OOP6: MOV P1,#0E0HMOV 20H,#80HMOV 21H,#01HAJMP QUITLOOP7: MOV P1,#0C0HMOV 20H,#01HMOV 21H,#80HAJMP QUIT;*電機(jī)反轉(zhuǎn)*FAN: JB 08H,LOOQ0JB 09H,LOOQ1JB 0AH,LOOQ2JB 0BH,LOOQ3JB 0CH,LOOQ4JB 0DH,LOOQ5JB 0EH,LOOQ6JB 0FH,LOOQ7LOOQ0: MOV P1,#0A0HMOV 21H,#02HMOV 20H,#40HAJMP QUITLOOQ1: MOV P1,#0E0HMOV 21H,#04HMOV 20

20、H,#20HAJMP QUITLOOQ2: MOV P1,#0C0HMOV 21H,#08HMOV 20H,#10HAJMP QUITLOOQ3: MOV P1,#0D0HMOV 21H,#10HMOV 20H,#08HAJMP QUITLOOQ4: MOV P1,#050HMOV 21H,#20HMOV 20H,#04HAJMP QUITLOOQ5: MOV P1,#070HMOV 21H,#40HMOV 20H,#02HAJMP QUITLOOQ6: MOV P1,#030HMOV 21H,#80HMOV 20H,#01HAJMP QUITLOOQ7: MOV P1,#0B0HMOV 21

21、H,#01HMOV 20H,#80HQUIT: RETIEND4.結(jié)論:器經(jīng)實(shí)驗(yàn)驗(yàn)證能驅(qū)動(dòng)0.5N.m的步進(jìn)電機(jī)。將驅(qū)動(dòng)部分的電阻、電容及續(xù)流二極管的有關(guān)參數(shù)加以調(diào)整,可驅(qū)動(dòng)1.2N.m的步進(jìn)電機(jī)。該驅(qū)動(dòng)器電路簡(jiǎn)單可靠,結(jié)構(gòu)緊湊,對(duì)于I/O口線與單片機(jī)資源緊張的系統(tǒng)來(lái)說(shuō)特別適用。2. 單片機(jī)的電機(jī)驅(qū)動(dòng)接口電路設(shè)計(jì)IO接口的電流不夠維持達(dá)林頓的導(dǎo)通狀態(tài)造成的,可以給大功率管加一個(gè)9018或9013的前級(jí)放大,最好不要直接使用單片機(jī)驅(qū)動(dòng),建議使用光耦。達(dá)林頓管又稱復(fù)合管。它將二只三極管適當(dāng)?shù)倪B接在一起,以組成一只等效的新的三極管。這等于效三極管的放大倍數(shù)是二者之積。在電子學(xué)電路設(shè)計(jì)中,達(dá)林頓接法常

22、用于功率放大器和穩(wěn)壓電源中。 達(dá)林頓電路有四種接法:NPN+NPN,PNP+PNP,NPN+PNP,PNP+NPN. 前二種是同極性接法,后二種是異極性接法。同極性接法,一樓樓主已經(jīng)介紹過(guò),這里說(shuō)一下異極性接法。以NPN+PNP為例。設(shè)前一三極管T1的三極為C1B1E1,后一三極管T2的三極為C2B2E2。達(dá)林頓管的接法應(yīng)為:C1B2應(yīng)接一起,E1C2應(yīng)接一起。等效三極管CBE的管腳,C=E1,B=B1,E=E1(即C2)。等效三極管極性,與前一三極管相同。即為NPN型。 PNP+NPN的接法與此類同。3. 單片機(jī)對(duì)電機(jī)轉(zhuǎn)向、轉(zhuǎn)速的控制如果只有一個(gè)轉(zhuǎn)向的話就比較容易了,如果要有正反兩個(gè)轉(zhuǎn)向,就

23、需要一個(gè)H橋,并且兩個(gè)I/O口輸出高低電頻控制,現(xiàn)在就來(lái)說(shuō)說(shuō)一個(gè)轉(zhuǎn)向的控制方式吧。比如用P1口的P1.0,P1.1,P1.2三個(gè)I/O口接按鍵,P3.4口接電頻輸出,編個(gè)定時(shí)程序及按鍵程序,如果是快(全速運(yùn)行),那就P3.4口直接輸出高電頻“1”;中(50%),那就讓P3.4口050ms輸出高電頻“1”,50ms100ms輸出低電頻“0”,后面就一直以50ms進(jìn)行一次取反;慢(就用10%吧),040ns輸出高電頻“1”,41ns400ns輸出低電頻“0”,這樣為一個(gè)周期,后面就一直循環(huán)吧。如果按鍵P1.0按下,執(zhí)行方式1,全速運(yùn)行,否則以默認(rèn)方式運(yùn)行;按鍵P1.1按下,執(zhí)行方式2,改變占空比,

24、以50%的速度運(yùn)行,否則,不作改變;按鍵P1.2按下,執(zhí)行方式3,改變占空比,以10%的速度運(yùn)行,否則,不作改變。當(dāng)然,占空比及定時(shí)時(shí)間可以根據(jù)個(gè)人需要進(jìn)行改變,這只跟定時(shí)程序有關(guān)了,定時(shí)程序跟按鍵程序這邊就不說(shuō)了,別忘了按鍵去抖,咔咔,不然可能會(huì)亂掉。4. 單片機(jī)對(duì)步進(jìn)電機(jī)的正、反轉(zhuǎn)控制單4拍正轉(zhuǎn) zheng=0x01,0x08,0x04,0x02單4拍反轉(zhuǎn) fang=0x01,0x02,0x04,0x08雙4拍正轉(zhuǎn) zheng=0x09,0x0c,0x06,0x03雙4拍反轉(zhuǎn) fang=0x03,0x06,0x0c,0x09單雙8拍正轉(zhuǎn) zheng=0x01,0x09,0x08,0x0c,

25、0x04,0x06,0x02,0x03單雙8拍反轉(zhuǎn) fang=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09*/#includereg51.h#includeintrins.h#define uchar unsigned char#define uint unsigned intbit front_move,back_move;uchar jzaj(void); /單4拍正轉(zhuǎn) zheng=0x01,0x08,0x04,0x02; 單4拍反轉(zhuǎn) fang=0x01,0x02,0x04,0x08;void ajcl(uchar jz);void delay(uchar

26、 del); uchar code zheng=0x01,0x09,0x08,0x0c,0x04,0x06,0x02,0x03;uchar code fang=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09;void timer0() interrupt 1static uchar jz;TH0=0xfc;TL0=0x18;jz=jzaj();if(jz)ajcl(jz);void main()uchar count=0;TMOD=0x01;TH0=0xFC;TL0=0x18;TR0=1;ET0=1;EA=1;while(1)if(front_move)P2=z

27、hengcount;delay(100);count+;if(count=8) count=0;if(back_move)P2=fangcount;delay(100);count+;if(count=8) count=0;uchar jzaj(void)uchar hz,lz;P1=0xf0; /置所有行為低電平,行掃描,列線輸入(此時(shí))if(P1&0xf0)!=0xf0) /判斷是否有有鍵按下(讀取列的真實(shí)狀態(tài),若第4列有鍵按下則P1的值會(huì)變成0111 0000),有往下執(zhí)行delay(10); /延時(shí)去抖動(dòng)(10ms)if(P1&0xf0)!=0xf0) /再次判斷列中是否是干擾信號(hào),不

28、是則向下執(zhí)行hz=0xfe; /逐行掃描初值(即先掃描第1行) while(hz&0x10)!=0) /行掃描完成時(shí)(即4行已經(jīng)全部掃描完成)sccode為1110 1111 停止while程序 P1=hz; /輸出行掃描碼if (P1&hz)!=hz) /*(P2&0xf0)!=0xf0*也可這樣 本行有鍵按下(即P1(真實(shí)的狀態(tài))的高四位不全為1)lz=(P1&0xf0)|0x0f; /列while(P1&0xf0)!=0xf0);return(hz)|(lz); /返回行和列break; /有按鍵返回 提前退出循環(huán)else /所掃描的行沒(méi)有鍵按下,則掃描下一行,直到4行都掃描,此時(shí)scc

29、ode值為1110 1111 退出while程序hz=_crol_(hz,1);/行掃描碼左移一位elsereturn 0; /無(wú)鍵按下,返回0 void ajcl(uchar jz)if(jz=0x11)back_move=0;front_move=1; if(jz=0x21)front_move=0;back_move=1;if(jz=0x41)P2=0x00;front_move=0;back_move=0;void delay(uchar del)uchar i;for(;del0;del-)for(i=0;i125;i+);5. 利用單片機(jī)實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的運(yùn)動(dòng)控制1 引言數(shù)控技術(shù)是一

30、種采用計(jì)算機(jī)對(duì)機(jī)械加工過(guò)程中各種控制信息進(jìn)行數(shù)字化運(yùn)算處理,并通過(guò)高性能的驅(qū)動(dòng)單元對(duì)機(jī)械執(zhí)行構(gòu)件進(jìn)行自動(dòng)化控制的高新技術(shù)?,F(xiàn)代機(jī)械加工業(yè)逐步向柔性化、集成化、智能化方向發(fā)展,因此新一代數(shù)控技術(shù)就必需強(qiáng)調(diào)具有開(kāi)放式、智能化、網(wǎng)絡(luò)化的特征1。本文采用新型微處理器、高性能集成電路,研究開(kāi)發(fā)智能步進(jìn)電機(jī)控制卡。2 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)通過(guò)對(duì)步進(jìn)電機(jī)控制器關(guān)鍵技術(shù)進(jìn)行分析、研究和比較,并綜合國(guó)內(nèi)外運(yùn)動(dòng)控制器產(chǎn)品智能化、集成化、開(kāi)放化的發(fā)展趨勢(shì),我們提出的步進(jìn)電機(jī)運(yùn)動(dòng)控制器總體結(jié)構(gòu)如圖1所示。圖1 系統(tǒng)總體結(jié)構(gòu)3 系統(tǒng)硬件電路設(shè)計(jì)3.1 脈沖分頻電路設(shè)計(jì)本系統(tǒng)的主要控制對(duì)象為步進(jìn)電機(jī)。步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)

31、化為角位移的執(zhí)行機(jī)構(gòu),因此產(chǎn)生符合系統(tǒng)要求的步進(jìn)電機(jī)驅(qū)動(dòng)脈沖為整個(gè)系統(tǒng)設(shè)計(jì)中的關(guān)鍵。本系統(tǒng)的脈沖分頻電路由圖2所示。整個(gè)電路采用3片8254來(lái)產(chǎn)生X,Y,Z三個(gè)軸的驅(qū)動(dòng)脈沖信號(hào),鑒于Y,Z軸的電路與X軸相同,因此圖中只表示了X軸脈沖數(shù)輸出的電路原理。Inte18254是可編程定時(shí)/計(jì)數(shù)器,片內(nèi)包含3個(gè)獨(dú)立通道,每個(gè)通道均為功能相同的16位計(jì)數(shù)器,每個(gè)計(jì)數(shù)器的工作方式和計(jì)數(shù)長(zhǎng)度分別由軟件編程選擇。8254是8253的改進(jìn)型,操作方式及引腳與8253完全相同。8253計(jì)數(shù)頻率為2.6MHz,8254的計(jì)數(shù)頻率則更高,可達(dá)到6MHz。本系統(tǒng)選擇8254作為脈沖分頻電路的主控芯片。圖2 脈沖分頻電路圖

32、3.2 RS-232通信接口電路設(shè)計(jì)在單片機(jī)系統(tǒng)的通信中,RS-232和RS-485標(biāo)準(zhǔn)總線應(yīng)用最為成熟。為了使運(yùn)動(dòng)控制器的適用范圍更加廣泛,配合PC的現(xiàn)有接口,我們選用RS- 232標(biāo)準(zhǔn)總線來(lái)實(shí)現(xiàn)控制器和PC的通信,其接口電路如圖3所示。在圖3中,選用MAX232作為系統(tǒng)的通信接口芯片。MAX232是MAXIM公司生產(chǎn)的低功耗、單電源雙RS-232發(fā)送/接收發(fā)器,適用于各種EIA-232E和V.28/V.24的通信接口。MAX232芯片可以把輸入的+5V電源變換成RS-232輸出電平所需的10V電壓,所以采用此芯片接口的串行通信系統(tǒng)只要單一的+5V電源就可以。圖3 通信接口電路MAX232外

33、圍需要4個(gè)電解電容C1,C2,C3,C4是內(nèi)部電源轉(zhuǎn)換所需電容,其取值均為0.1F/25V。C44為0.1F的去耦電容。MAX232的引腳T1IN,T2IN,R1OUT,R2OUT為接TTL/CMOS電平的引腳。引腳T1OUT,T2OUT,R1IN,R2IN為接RS-232C電平的引腳。因此TTL/CMOS電平的T1IN,T2IN引腳應(yīng)接MCS-51 的串行發(fā)送引腳TXD;R1OUT,R2OUT應(yīng)接MCS-51的串行接收引腳RxD。與之對(duì)應(yīng)的RS-232C電平的T1OUT,T2OUT應(yīng)接PC機(jī)的接收端RD;R1IN,R2IN應(yīng)接PC機(jī)的發(fā)送端。3.3 D/A轉(zhuǎn)換與V/I轉(zhuǎn)換電路設(shè)計(jì)本運(yùn)動(dòng)控制器

34、需要對(duì)電主軸的轉(zhuǎn)速進(jìn)行控制,對(duì)電主軸的控制通過(guò)其驅(qū)動(dòng)器來(lái)實(shí)現(xiàn)。電主軸驅(qū)動(dòng)器根據(jù)輸入的電壓或電流的大小來(lái)確定主軸的轉(zhuǎn)速,因此系統(tǒng)需要輸出05V的電壓或020mA的電流,必須將系統(tǒng)處理過(guò)的數(shù)字量經(jīng)D/A轉(zhuǎn)換變成模擬量輸出。本控制器的D/A轉(zhuǎn)換主要由DAC0832芯片實(shí)現(xiàn)。 DAC0832是8位微處理器兼容型數(shù)/模轉(zhuǎn)換器芯片,是DAC0830系列的一種。DAC0832與微機(jī)接口方便,可以充分利用微處理器的控制能力實(shí)現(xiàn)對(duì)D/A轉(zhuǎn)換的控制,因此在實(shí)際中得到了廣泛的應(yīng)用。不同的電主軸驅(qū)動(dòng)器對(duì)輸入的信號(hào)有不同的要求,有的需要05V的電壓信號(hào),有的需要020mV的電流信號(hào),因此我們同樣設(shè)計(jì)了V/I轉(zhuǎn)換電路,使

35、系統(tǒng)具備了電流信號(hào)的輸出,增強(qiáng)了系統(tǒng)的適應(yīng)性。3.4 開(kāi)關(guān)信號(hào)輸入電路設(shè)計(jì)在步進(jìn)電機(jī)運(yùn)動(dòng)過(guò)程中,常采用機(jī)械式開(kāi)關(guān)和光電開(kāi)關(guān)構(gòu)成開(kāi)關(guān)信號(hào)輸入回路,通過(guò)開(kāi)關(guān)的閉合或斷開(kāi),以電平的形式反映步進(jìn)電機(jī)的工況。這包括X,Y,Z軸限位;加工過(guò)程中對(duì)刀,X,Y,Z軸電機(jī)的回零操作等等2-3。由于開(kāi)關(guān)的機(jī)械式設(shè)計(jì),觸點(diǎn)閉合或斷開(kāi)時(shí)伴有機(jī)械抖動(dòng),會(huì)使輸出信號(hào)波形出現(xiàn)振蕩。若將該信號(hào)輸入到微控制器的計(jì)數(shù)器中,會(huì)造成錯(cuò)誤的計(jì)數(shù)而導(dǎo)致系統(tǒng)控制混亂。開(kāi)關(guān)量的輸入干擾是系統(tǒng)設(shè)計(jì)中客觀存在的問(wèn)題。因此在獲得開(kāi)關(guān)信號(hào)后,我們必須對(duì)開(kāi)關(guān)信號(hào)進(jìn)行處理,使其成為單片機(jī)可以識(shí)別的數(shù)字信號(hào)后才能做出相應(yīng)的反應(yīng)。系統(tǒng)共提供了12路的開(kāi)關(guān)信

36、號(hào)接口,限位開(kāi)關(guān)信號(hào)處理如圖4所示。圖4 限位開(kāi)關(guān)信號(hào)處理電路原理圖在開(kāi)關(guān)信號(hào)輸入CPU之前,首先用電容對(duì)其進(jìn)行濾波,抑制信號(hào)中的高頻分量。TPL光耦隔離實(shí)現(xiàn)了光電開(kāi)關(guān)、限位開(kāi)關(guān)信號(hào)和控制器之間的電平轉(zhuǎn)換,并實(shí)現(xiàn)了兩個(gè)不同回路間的隔離,保證了控制器電路不受來(lái)自開(kāi)關(guān)信號(hào)電路的干擾。3.5 硬件抗干擾技術(shù)為了克服可能發(fā)生的各種干擾,保證系統(tǒng)能夠可靠的運(yùn)行,現(xiàn)有的抗干擾技術(shù)在硬件方面采取如下措施4:抑制電源干擾。傳導(dǎo)干擾通常由交流電源端引入系統(tǒng)內(nèi)部。為了抑制這種干擾,系統(tǒng)通常在交流進(jìn)線端串接入低通LC濾波器。這種方法在實(shí)際中己經(jīng)取得明顯效果,但為了抑制電源浪涌電壓的沖擊,系統(tǒng)還必須在電源線之間及電源

37、線對(duì)地之間分別裝壓敏電阻。抑制傳輸線干擾。對(duì)于系統(tǒng)中傳輸距離較長(zhǎng)的線路通常選用屏蔽電纜來(lái)實(shí)現(xiàn)系統(tǒng)各部分的連接,以達(dá)到抗干擾的目的。在一些應(yīng)用環(huán)境比較惡劣的系統(tǒng)中,為了進(jìn)一步抑制干擾,可采用光電隔離方式將系統(tǒng)控制部分與I/O口部分分開(kāi),并采用雙電源供電。盡量減小干擾造成的影響。通常的做法有:1)增加硬件看門(mén)狗電路。2)增加電壓監(jiān)測(cè)電路。3)選擇抗干擾能力較強(qiáng)的單片機(jī)系列。4)盡可能使用單片機(jī)的內(nèi)部程序存儲(chǔ)器和內(nèi)部數(shù)據(jù)存儲(chǔ)器而不使用外部總線連接這些器件。5)協(xié)調(diào)好電路中不同類型IC的電平匹配。6)數(shù)據(jù)總線和控制總線間形成板與板連接時(shí),應(yīng)加總線驅(qū)動(dòng)器。4 系統(tǒng)軟件設(shè)計(jì)系統(tǒng)的主程序由消息循環(huán)和初始化程

38、序構(gòu)成,其流程如圖5所示。在系統(tǒng)的主程序中,初始化程序的功能是在系統(tǒng)復(fù)位后完成單片機(jī)各個(gè)特殊功能寄存器的設(shè)置、各數(shù)據(jù)區(qū)的初始化、外部硬件設(shè)備的設(shè)置等操作;系統(tǒng)的消息循環(huán)則用來(lái)實(shí)現(xiàn)消息合法性的判斷及消息處理功能模塊的調(diào)用。圖5 系統(tǒng)主程序流程圖為了能夠?qū)ο⒌暮戏ㄐ赃M(jìn)行判斷,我們?yōu)橄⒔M中的每個(gè)消息定義了對(duì)應(yīng)的合法性判斷標(biāo)識(shí)位。如果某消息所對(duì)應(yīng)的合法性判斷標(biāo)識(shí)位為“1”,則表示該消息是合法的消息,系統(tǒng)應(yīng)該調(diào)用相應(yīng)的消息處理功能模塊對(duì)消息進(jìn)行處理;為“0”則表示該消息是非法的消息,系統(tǒng)應(yīng)該忽略該消息。為了實(shí)現(xiàn)“看門(mén)狗”功能,我們還在消息循環(huán)中加入了喂狗輸出操作。值得注意的是,在系統(tǒng)的串行通信處理模

39、塊中,根據(jù)接收到的數(shù)據(jù)進(jìn)行判斷是自動(dòng)加工,或是手動(dòng)加工,還是參數(shù)設(shè)置,分別對(duì)消息序列中的標(biāo)志位進(jìn)行置位,以保證主程序能夠正確實(shí)現(xiàn)各處理模塊的調(diào)用6. 基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)論文單片機(jī)控制技術(shù)應(yīng)用十分廣泛,其核心技術(shù)是單片機(jī)控制系統(tǒng)的設(shè)計(jì)。介紹了對(duì)單片機(jī)控制系統(tǒng)的構(gòu)成、硬件設(shè)計(jì)、軟件設(shè)計(jì)和系統(tǒng)調(diào)試等各環(huán)節(jié)并進(jìn)行了討論,根據(jù)工作經(jīng)驗(yàn)給出了調(diào)試方法。 關(guān)鍵詞:?jiǎn)纹瑱C(jī);系統(tǒng)設(shè)計(jì);系統(tǒng)調(diào)試 隨著材料科學(xué)、工藝技術(shù)、計(jì)算機(jī)技術(shù)的發(fā)展與進(jìn)步,電路系統(tǒng)向著集成度極高的方向發(fā)展。CPU的生產(chǎn)制造技術(shù),也朝著綜合性、技術(shù)性、實(shí)用性發(fā)展。如CPU的運(yùn)算位數(shù)從4位、8位 到32位機(jī)的發(fā)展,運(yùn)算速度從8 MH

40、z、32 MHz到1.6 GHz??梢哉f(shuō)是日新月異的發(fā)展著。其中單片機(jī)在控制系統(tǒng)中的應(yīng)用是越來(lái)越普遍了。單片機(jī)控制系統(tǒng)是以單片機(jī)(CPU)為核心部件,擴(kuò)展一些外部接口和設(shè)備,組成單片機(jī)工業(yè)控制機(jī),主要用于工業(yè)過(guò)程控制。要進(jìn)行單片機(jī)系統(tǒng)設(shè)計(jì)首先必須具有一定的硬件基礎(chǔ)知識(shí);其次,需要具有一定的軟件設(shè)計(jì)能力,能夠根據(jù)系統(tǒng)的要求,靈活地設(shè)計(jì)出所需要的程序;第三,具有綜合運(yùn)用知識(shí)的能力。最后,還必須掌握生產(chǎn)過(guò)程的工藝性能及被測(cè)參數(shù)的測(cè)量方法,以及被控對(duì)象的動(dòng)、靜態(tài)特性,有時(shí)甚至要求給出被控對(duì)象的數(shù)學(xué)模型。 單片機(jī)系統(tǒng)設(shè)計(jì)主要包括以下幾個(gè)方面的內(nèi)容:控制系統(tǒng)總體方案設(shè)計(jì),包括系統(tǒng)的要求、控制方案的選擇,以

41、及工藝參數(shù)的測(cè)量范圍等;選擇各參數(shù)檢測(cè)元件及變送器;建立數(shù)學(xué)模型及確定控制算法;選擇單片機(jī),并決定是自行設(shè)計(jì)還是購(gòu)買成套設(shè)備;系統(tǒng)硬件設(shè)計(jì)1,包括接口電路,邏輯電路及操作面板;系統(tǒng)軟件設(shè)計(jì),包括管理、監(jiān)控程序以及應(yīng)用程序的設(shè)計(jì),應(yīng)用系統(tǒng)設(shè)計(jì)包含有硬件設(shè)計(jì)與軟件設(shè)計(jì)兩部分2;系統(tǒng)的調(diào)試與試驗(yàn)。 1 單片機(jī)控制系統(tǒng)總體方案的設(shè)計(jì) 確定單片機(jī)控制系統(tǒng)總體方案,是進(jìn)行系統(tǒng)設(shè)計(jì)最重要、最關(guān)鍵的一步。總體方案的好壞,直接影響整個(gè)控制系統(tǒng)的性能及實(shí)施細(xì)則??傮w方案的設(shè)計(jì)主要是根據(jù)被控對(duì)象的任務(wù)及工藝要求而確定的。設(shè)計(jì)方法大致如下:根據(jù)系統(tǒng)的要求,首先確定出系統(tǒng)是采用開(kāi)環(huán)系統(tǒng)還是閉環(huán)系統(tǒng),或者是數(shù)據(jù)處理系統(tǒng)。

42、選擇檢測(cè)元件,在確定總體方案時(shí),必須首先選擇好被測(cè)參數(shù)的測(cè)量元件,它是影響控制系統(tǒng)精度的重要因素之一。選擇執(zhí)行機(jī)構(gòu),執(zhí)行機(jī)構(gòu)是微型機(jī)控制系統(tǒng)的重要組成部件之一。執(zhí)行機(jī)構(gòu)的選擇一方面要與控制算法匹配,另一方面要根據(jù)被控對(duì)象的實(shí)際情況確定。選擇輸入/輸出通道及外圍設(shè)備。選擇時(shí)應(yīng)考慮以下幾個(gè)問(wèn)題:被控對(duì)象參數(shù)的數(shù)量;各輸入/輸出通道是串行操作還是并行操作;各通道數(shù)據(jù)的傳遞速率;各通道數(shù)據(jù)的字長(zhǎng)及選擇位數(shù);對(duì)顯示、打印有何要求;畫(huà)出整個(gè)系統(tǒng)原理圖。 單片機(jī)控制系統(tǒng)中控制算法的選用一般有: (1) 直接數(shù)字控制 當(dāng)被控對(duì)象的數(shù)學(xué)模型能夠確定時(shí),可采用直接數(shù)字控制。所謂數(shù)學(xué)模型就是系統(tǒng)動(dòng)態(tài)特性的數(shù)學(xué)表達(dá)式

43、,它表示系統(tǒng)輸入輸出及其內(nèi)部狀態(tài)之間的關(guān)系。一般多用實(shí)驗(yàn)的方法測(cè)出系統(tǒng)的特性曲線,然后再由此曲線確定出其數(shù)學(xué)模型。現(xiàn)在經(jīng)常采用的方法是計(jì)算機(jī)仿真及計(jì)算機(jī)輔助設(shè)計(jì),由計(jì)算機(jī)確定出系統(tǒng)的數(shù)學(xué)模型,因而加快了系統(tǒng)模型的建立。當(dāng)系統(tǒng)模型建立后,即可選定上述某一種算法,設(shè)計(jì)數(shù)字控制器,并求出差分方程。計(jì)算機(jī)的主要任務(wù)就是按此差分方程計(jì)算并輸出控制量,進(jìn)而實(shí)現(xiàn)控制。 (2) 數(shù)字化PID控制 由于被控對(duì)象是復(fù)雜的,因此并非所有的系統(tǒng)均可求出數(shù)學(xué)模型,有些即使可以求出來(lái),但由于被控對(duì)象環(huán)境的影響,許多參數(shù)經(jīng)常變化,因此很難進(jìn)行直接數(shù)字控制。此時(shí)最好選用數(shù)字化PID(比例積分微分)控制。在PID控制算法中,以

44、位置型和增量型2種PID為基礎(chǔ),根據(jù)系統(tǒng)的要求,可對(duì)PID控制進(jìn)行必要的改進(jìn)。通過(guò)各種組合,可以得到更圓滿的控制系統(tǒng),以滿足各種不同控制系統(tǒng)的要求。例如串級(jí)PID就是人們經(jīng)常采用的控制方法之一。 所謂串級(jí)控制就是第一級(jí)數(shù)字PID的輸出不直接用來(lái)控制執(zhí)行機(jī)構(gòu),而是作為下一級(jí)數(shù)字PID的輸入值,并與第二級(jí)的給定值進(jìn)行比較,其偏差作為第二級(jí)數(shù)字PID的控制量。當(dāng)然,也可以用多級(jí)PID嵌套。 2 單片機(jī)系統(tǒng)硬件設(shè)計(jì) 盡管單片機(jī)集成度高,內(nèi)部含有I/O控制線,ROM,RAM和定時(shí)/計(jì)數(shù)器。但在組成單片機(jī)系統(tǒng)時(shí),擴(kuò)展若干接口仍是設(shè)計(jì)者必不可少的任務(wù)。擴(kuò)展接口有2種方案,一種是購(gòu)置現(xiàn)成的接口板,另一種是根據(jù)

45、系統(tǒng)實(shí)際需要,選用適合的芯片進(jìn)行設(shè)計(jì)控制系統(tǒng)。就后一種而言,主要包括以下幾個(gè)方面的內(nèi)容。 基本系統(tǒng)的構(gòu)成:一個(gè)獨(dú)立的單片機(jī)核心系統(tǒng),一般由時(shí)鐘電路、地址鎖存器電路、地址譯碼器、存儲(chǔ)器擴(kuò)展、模擬量輸入通道的擴(kuò)展、模擬量輸出通道的擴(kuò)展、開(kāi)關(guān)量的I/O接口設(shè)計(jì)、鍵盤(pán)輸入和顯示電路等組成。 (1)存儲(chǔ)器擴(kuò)展 由于單片機(jī)有4種不同的存儲(chǔ)器,且程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器是分別編址的,所以單片機(jī)的存儲(chǔ)器容量與同樣位數(shù)的微型機(jī)相比擴(kuò)大了一倍多。擴(kuò)展時(shí),首先要注意單片機(jī)的種類;另一方面要把程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)。 (2)模擬量輸入通道的擴(kuò)展 主要有以下2個(gè)問(wèn)題:一個(gè)是數(shù)據(jù)采集通道的結(jié)構(gòu)形式,一般單片機(jī)控制系統(tǒng)都

46、是多通道系統(tǒng)。因此選用何種結(jié)構(gòu)形式采集數(shù)據(jù),是進(jìn)行模擬量輸入通道設(shè)計(jì)首先要考慮的問(wèn)題。多數(shù)系統(tǒng)都采用共享A/D和S/H形式。但是當(dāng)被測(cè)參數(shù)為幾個(gè)相關(guān)量時(shí),則需選用多路S/H,共享A/D形式。對(duì)于那些參數(shù)比較多的分布式控制系統(tǒng),可把模擬量先就地進(jìn)行A/D轉(zhuǎn)換,然后再送到主機(jī)中處理。對(duì)于那些被測(cè)參數(shù)相同(或相似)的多路數(shù)據(jù)采集系統(tǒng),為減少投資,可采用模擬量多路轉(zhuǎn)換,共享儀用放大器、S/H和A/D的所謂地電平多路切換形式。另外一個(gè)問(wèn)題是A/D轉(zhuǎn)發(fā)器的選擇,設(shè)計(jì)時(shí)一定要根據(jù)被控對(duì)象的實(shí)際要求選擇A/D轉(zhuǎn)換器,在滿足系統(tǒng)要求的前提下,盡量選用位數(shù)比較低的A/D轉(zhuǎn)換器。 (3)模擬量輸出通道的擴(kuò)展 模擬量

47、輸出通道是單片機(jī)控制系統(tǒng)與執(zhí)行機(jī)構(gòu)(或控制設(shè)備)連接的紐帶和橋梁。設(shè)計(jì)時(shí)要根據(jù)被控對(duì)象的通道數(shù)及執(zhí)行機(jī)構(gòu)的類型進(jìn)行選擇。對(duì)于那些可直接接受數(shù)字量的執(zhí)行機(jī)構(gòu),可由單片機(jī)直接輸出數(shù)字量,如步進(jìn)電機(jī)或開(kāi)關(guān)、繼電器系統(tǒng)等。對(duì)于那些需要接收模擬量的執(zhí)行機(jī)構(gòu),則需要用D/A轉(zhuǎn)化,即把數(shù)字量變成模擬量后,再帶動(dòng)執(zhí)行機(jī)構(gòu)。 (4)開(kāi)關(guān)量的I/O接口設(shè)計(jì) 由于開(kāi)關(guān)量只有2種狀態(tài)“1”或“0”,所以,每個(gè)開(kāi)關(guān)量只需一位二進(jìn)制數(shù)表示即可。因?yàn)镸CS51系列單片機(jī)設(shè)有一個(gè)專用的布爾處理機(jī),因而對(duì)于開(kāi)關(guān)量的處理尤為方便。為了提高系統(tǒng)的抗干擾能力,通常采用光電隔離器把單片機(jī)與外部設(shè)備隔開(kāi)。 (5)操作面板 操作面板是人機(jī)

48、對(duì)話的紐帶,它根據(jù)具體情況,可大可小。為了便于現(xiàn)場(chǎng)操作人員操作,單片機(jī)控制系統(tǒng)設(shè)計(jì)一個(gè)操作面板的要求:操作方便、安全可靠、并具有自保功能,即使是誤操作也不會(huì)給生產(chǎn)帶來(lái)惡果。 (6)系統(tǒng)速度匹配 在不影響系統(tǒng)總功率的前提下,時(shí)鐘頻率選得低一些較好,這樣可降低系統(tǒng)對(duì)其他元器件工作速度的要求,從而降低成本和提高系統(tǒng)的可靠性。但系統(tǒng)頻率選的比較高時(shí),要設(shè)法使其他元器件與主機(jī)匹配。 (7)系統(tǒng)負(fù)載匹配 系統(tǒng)中各個(gè)器件之間的負(fù)載匹配問(wèn)題,主要表現(xiàn)在以下幾個(gè)方面。 邏輯電路間的接口及負(fù)載:在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),有時(shí)需要采用TTL和CMOS混合電路,由于二者要求的電平不一樣,因此一定要注意電流及負(fù)載的匹配問(wèn)題。

49、MCS51系列單片及負(fù)載:8031的外部擴(kuò)展功能是很強(qiáng)的,但是8031的P0口和P2口以及控制信號(hào)ALE的負(fù)載能力都是有限的,P0口能驅(qū)動(dòng)8個(gè)LSTTL電路,P2口能驅(qū)動(dòng)4個(gè)LSTTL電路。硬件設(shè)計(jì)時(shí)應(yīng)仔細(xì)核對(duì)8031的負(fù)載,使其不超過(guò)總的負(fù)載能力的70%。 3 單片機(jī)控制系統(tǒng)的軟件設(shè)計(jì) 單片機(jī)控制系統(tǒng)的軟件設(shè)計(jì)一般分2類,系統(tǒng)軟件和應(yīng)用軟件設(shè)計(jì)。系統(tǒng)軟件的主要任務(wù)是:管理整個(gè)控制系統(tǒng)的全過(guò)程,比如,POWERUP自診斷功能,KEY INPIT 的管理功能,PRINTER OUTPUT報(bào)表功能,DISPLAY功能等等。是控制系統(tǒng)的核心程序,也稱之為MONITER監(jiān)控管理程序其作用類似PC機(jī)的D

50、OS 系統(tǒng)。軟件設(shè)計(jì)的幾個(gè)方面如下: (1)可靠性設(shè)計(jì)為保證系統(tǒng)軟件的可靠性,通常設(shè)計(jì)一個(gè)自診斷程序,定時(shí)對(duì)系統(tǒng)進(jìn)行診斷。在可靠性要求較高的場(chǎng)合,可以設(shè)計(jì)看門(mén)狗電路,也可以設(shè)計(jì)軟件陷阱,防止程序跑飛。(2)軟件設(shè)計(jì)與硬件設(shè)計(jì)的統(tǒng)一性在單片機(jī)系統(tǒng)設(shè)計(jì)中,通常一個(gè)同樣的功能,通過(guò)硬件和軟件都可以實(shí)現(xiàn),確定那些由硬件完成,那些由軟件完成,這就是軟件、硬件的折衷問(wèn)題。一般來(lái)說(shuō),在系統(tǒng)可能的情況下,盡量采用軟件,因?yàn)檫@樣可以節(jié)省經(jīng)費(fèi)。若系統(tǒng)要求實(shí)時(shí)性比較強(qiáng),則可采用硬件。 (3)應(yīng)用軟件的特點(diǎn) 實(shí)時(shí)性:由于工業(yè)過(guò)程控制系統(tǒng)是實(shí)時(shí)控制系統(tǒng),所以對(duì)應(yīng)用軟件的執(zhí)行速度都有一定的要求,即能夠在被控對(duì)象允許的時(shí)間

51、間隔內(nèi)對(duì)系統(tǒng)進(jìn)行控制、計(jì)算和處理。換言之,要求整個(gè)應(yīng)用軟件必須在一個(gè)采樣周期內(nèi)處理完畢。所以一般都采用匯編語(yǔ)言編寫(xiě)應(yīng)用軟件。但是,對(duì)于那些計(jì)算工作量比較大的系統(tǒng),也可以采用高級(jí)語(yǔ)言和匯編語(yǔ)言混合使用的辦法,即數(shù)據(jù)采集、判斷、及控制輸出程序用匯編語(yǔ)言,而對(duì)于那些較為復(fù)雜的計(jì)算可采用高級(jí)語(yǔ)言。為了提高系統(tǒng)的實(shí)時(shí)性,對(duì)于那些需要隨機(jī)間斷處理的任務(wù),通常采用中斷系統(tǒng)來(lái)完成。 通用性:在應(yīng)用程序設(shè)計(jì)中,為了節(jié)省內(nèi)存和具有較強(qiáng)的適應(yīng)能力,通常要求程序有一定的靈活性和通用性。為此,可以采用模塊結(jié)構(gòu),盡量將共用的程序編寫(xiě)成子程序,如算術(shù)和邏輯運(yùn)算程序、A/D、D/A轉(zhuǎn)換程序、延時(shí)程序、PID運(yùn)算程序、數(shù)字濾波

52、程序、標(biāo)度變換程序、報(bào)警程序等。 (4)軟件開(kāi)發(fā)步驟軟件開(kāi)發(fā)大體包括:劃分功能模塊及安排程序結(jié)構(gòu);畫(huà)出各程序模塊詳細(xì)流程圖;選擇合適的語(yǔ)言編寫(xiě)程序;將各個(gè)模塊連接成一個(gè)完整的程序。 4 單片機(jī)控制系統(tǒng)的調(diào)試 (1)硬件調(diào)試 根據(jù)設(shè)計(jì)的原理電路做好實(shí)驗(yàn)樣機(jī),便進(jìn)入硬件調(diào)試階段。調(diào)試工作的主要任務(wù)是排除樣機(jī)故障,其中包括設(shè)計(jì)錯(cuò)誤和工藝性故障。 脫機(jī)檢查:用萬(wàn)能表或邏輯測(cè)試筆逐步按照邏輯圖檢查機(jī)中各器件的電源及各引腳的連接是否正確,檢查數(shù)據(jù)總線、地址總線和控制總線是否有短路等故障。有時(shí)為保護(hù)芯片,先對(duì)各管座的電位(或電源)進(jìn)行檢查,確定其無(wú)誤后再插入芯片檢查。 仿真調(diào)試:暫時(shí)排除目標(biāo)板的CPU和EP

53、ROM,將樣機(jī)接上仿真機(jī)的40芯仿真插頭進(jìn)行調(diào)試,調(diào)試各部分接口電路是否滿足設(shè)計(jì)要求。這部分工作是一種經(jīng)驗(yàn)性很強(qiáng)的工作,一般來(lái)說(shuō),設(shè)計(jì)制作的樣機(jī)不可能一次性完好,總是需要調(diào)試的。通常的方法是,先編調(diào)試軟件,逐一檢查調(diào)試硬件電路系統(tǒng)設(shè)計(jì)的準(zhǔn)確性。其次是調(diào)試MONITOR程序,只有MONITOER程序正常工作才可以進(jìn)行下面的應(yīng)用軟件調(diào)試。 硬件電路調(diào)試的一般順序是: 檢查CPU的時(shí)鐘電路。通過(guò)測(cè)試ALE信號(hào),如沒(méi)有ALE信號(hào),則判斷是晶體或CPU故障,這稱之為“心臟”檢查。 檢查ABUS/DBUS的分時(shí)復(fù)用功能的地址鎖存是否正常。 檢查I/O地址分配器。一般是由部分譯碼或全譯碼電路構(gòu)成,如是部分譯

54、碼設(shè)計(jì),則排除地址重疊故障。 對(duì)擴(kuò)展的RAM、ROM進(jìn)行檢查調(diào)試。一般先后寫(xiě)入55H、AAH,再讀出比較,以此判斷是否正常。因?yàn)檫@樣RAM、ROM的各位均寫(xiě)入過(guò)0、1代碼。 用戶級(jí)I/O設(shè)備調(diào)試。如面板、顯示、打印、報(bào)警等等。 (2)軟件調(diào)試 軟件調(diào)試根據(jù)開(kāi)發(fā)的設(shè)備情況可以有以下方法: 交叉匯編:用IBM PC/XT機(jī)對(duì)MCS51系列單片機(jī)程序進(jìn)行交叉匯編時(shí),可借助IBM PC/XT機(jī)的行編輯和屏幕編輯功能,將源程序按規(guī)定的格式輸入到PC機(jī),生成MCS51 HEX目標(biāo)代碼和LIST文件。 用匯編語(yǔ)言:現(xiàn)在有些單片STD工業(yè)控制機(jī)或者開(kāi)發(fā)系統(tǒng),可直接使用匯編語(yǔ)言,借助CRT進(jìn)行匯編語(yǔ)言調(diào)試。 手工匯編:這種方法是最原始,但又是一種

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論