久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 11106|回復(fù): 4
收起左側(cè)

基于單片機(jī)的三相步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)分解

[復(fù)制鏈接]
ID:465317 發(fā)表于 2019-1-9 18:47 | 顯示全部樓層 |閱讀模式

摘要

1設(shè)計(jì)任務(wù)

2方案

2.1 設(shè)計(jì)思路與方案

2.2總體設(shè)計(jì)框圖

3系統(tǒng)實(shí)現(xiàn)的原理說(shuō)明

3.1 步進(jìn)電機(jī)控制工作原理

3.1.1步進(jìn)電機(jī)的工作原理

3.1.2 步進(jìn)電機(jī)的啟停控制

3.1.3 步進(jìn)電機(jī)的轉(zhuǎn)向控制

3.2步數(shù)顯示模塊原理

4硬件設(shè)計(jì)

4.1系統(tǒng)總原理圖

4.2各部分硬件原理圖設(shè)計(jì)

4.2.1 單片機(jī)控制模塊

4.2.2按鍵選擇工作狀態(tài)模塊

4.2.3步進(jìn)電機(jī)工作模塊

4.2.4工作狀態(tài)顯示模塊

4.2.5 4位數(shù)碼管顯示步數(shù)模塊

5軟件設(shè)計(jì)

5.1系統(tǒng)總體設(shè)計(jì)

5.2步進(jìn)電機(jī)工作模塊

5.2.1步進(jìn)電機(jī)的工作方式說(shuō)明

5.2.2設(shè)計(jì)說(shuō)明及流程圖

5.3數(shù)碼管步數(shù)顯示模塊

6仿真調(diào)試記錄

7心得體會(huì)

參考文獻(xiàn)

附錄:程序清單


摘要

本設(shè)計(jì)詳細(xì)介紹了基于單片機(jī)的三相步進(jìn)電機(jī)控制系統(tǒng)。步進(jìn)電機(jī)通過(guò)輸入脈沖信號(hào)進(jìn)行控制,即電機(jī)的總轉(zhuǎn)動(dòng)角度由輸入脈沖總數(shù)決定,因此,單片機(jī)通過(guò)向步進(jìn)電機(jī)發(fā)送控制信號(hào)就能實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的控制。

單片機(jī)實(shí)現(xiàn)的步進(jìn)電機(jī)控制系統(tǒng)具有成本低、使用靈活的特點(diǎn),該系統(tǒng)采用80C51單片機(jī)作為主控芯片,來(lái)完成對(duì)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)及LED顯示的控制。

本設(shè)計(jì)主要由單片機(jī)80C51,3相步進(jìn)電機(jī),7段數(shù)碼管,及一些其他相關(guān)元件設(shè)計(jì)而成,分為按鍵選擇工作狀態(tài)模塊、步進(jìn)電機(jī)工作模塊、LED二極管顯示工作狀態(tài)模塊以及4位數(shù)碼管顯示步數(shù)模塊。可以通過(guò)開(kāi)關(guān)來(lái)控制系統(tǒng)的啟/停工作,當(dāng)系統(tǒng)運(yùn)轉(zhuǎn)時(shí),用開(kāi)關(guān)來(lái)控制方向,并使相應(yīng)的指示燈亮起,同樣由開(kāi)關(guān)來(lái)選擇工作模式。運(yùn)轉(zhuǎn)時(shí),用4位7段數(shù)碼管來(lái)輸出步數(shù)。最后根據(jù)思路所設(shè)計(jì)出來(lái)的硬件圖設(shè)計(jì)相適應(yīng)的軟件。

電路結(jié)構(gòu)簡(jiǎn)單,設(shè)計(jì)思路清晰,同時(shí)利用Proteus進(jìn)行聯(lián)調(diào)仿真,結(jié)果比較直觀。仿真結(jié)果收到了預(yù)期的效果。


1設(shè)計(jì)任務(wù)

設(shè)計(jì)三相反應(yīng)式步進(jìn)電動(dòng)機(jī)脈沖分配器,接收脈沖輸入,要求三相單三拍、三相六拍運(yùn)行方式控制(電平),正反轉(zhuǎn)控制(電平)。

系統(tǒng)具有如下功能:用K0-K2做為通電方式選擇鍵,K0為三相單三拍,K1為三相雙三拍,K2為三相六拍;K3為啟動(dòng)/停止控制、K4方向控制;用4位LED數(shù)碼管顯示工作步數(shù)。用3個(gè)發(fā)光二極管顯示狀態(tài):正轉(zhuǎn)時(shí)紅燈亮,反轉(zhuǎn)時(shí)黃燈亮,不轉(zhuǎn)時(shí)綠燈亮;

(二)任務(wù)分析

步進(jìn)電動(dòng)機(jī)是一種用電脈沖信號(hào)進(jìn)行控制,并將電脈沖信號(hào)轉(zhuǎn)換成相應(yīng)的角位移的執(zhí)行器,每一個(gè)脈沖信號(hào)可使步進(jìn)電機(jī)旋轉(zhuǎn)一個(gè)固定的角度,這個(gè)角度稱(chēng)為步距角。由于受脈沖的控制,其轉(zhuǎn)子的角位移量和速度嚴(yán)格地與輸入脈沖的數(shù)量和脈沖頻率成正比。



三相反應(yīng)式步進(jìn)電動(dòng)機(jī)結(jié)構(gòu)如圖1.8所示。電機(jī)定子有六個(gè)磁極,相對(duì)的磁極為同一繞組勵(lì)磁,整個(gè)電機(jī)有三個(gè)繞組,按Y形接法接線。轉(zhuǎn)自為軟磁材料,無(wú)繞組。若繞組通電順序?yàn)棰?Ⅱ-Ⅲ-Ⅰ-Ⅱ-Ⅲ-…,則電動(dòng)機(jī)逆時(shí)針轉(zhuǎn)動(dòng);若繞組通電順序?yàn)棰?Ⅲ-Ⅱ-Ⅰ-Ⅲ-Ⅱ-…,則電動(dòng)機(jī)順時(shí)針轉(zhuǎn)動(dòng)。此種控制方式稱(chēng)為三相單三拍方式。 若通電順序?yàn)棰?ⅠⅡ-Ⅱ-ⅡⅢ-Ⅲ-ⅢⅠ-…(逆時(shí)針),稱(chēng)為三相六拍方式。


步進(jìn)電機(jī)控制裝置發(fā)出運(yùn)行方式、旋轉(zhuǎn)方向和旋轉(zhuǎn)角度(步數(shù)),前兩項(xiàng)一般由電平表示,后一項(xiàng)用脈沖個(gè)數(shù)表示。脈沖分配器根據(jù)步進(jìn)電機(jī)控制裝置發(fā)來(lái)的命令(電平信號(hào)和脈沖)使步進(jìn)電機(jī)按照要求的工作方式、旋轉(zhuǎn)方向及步數(shù)旋轉(zhuǎn)。步進(jìn)電機(jī)磁極的旋轉(zhuǎn)有速率限制,如果過(guò)快,電動(dòng)機(jī)會(huì)出現(xiàn)失步現(xiàn)象(轉(zhuǎn)自跟不上磁極的旋轉(zhuǎn)),特別是在電動(dòng)機(jī)的起停階段,要求有脈沖速率限制措施。

(三)系統(tǒng)硬件原理圖



(四)系統(tǒng)軟件設(shè)計(jì)

為防止輸入脈沖頻率過(guò)快導(dǎo)致電動(dòng)機(jī)失步,可將輸入脈沖在單片機(jī)緩存,之后在進(jìn)行脈沖分配,分配時(shí)注意脈沖速率。脈沖輸入模塊在每個(gè)輸入脈沖到來(lái)時(shí),將緩存單元進(jìn)行加1計(jì)數(shù);脈沖分配模塊時(shí)刻掃描緩存單元,當(dāng)緩存單元不為零時(shí),使步進(jìn)電機(jī)旋轉(zhuǎn)一步,之后緩存單元減1,減到0時(shí)停止分配脈沖。為使三相電平同時(shí)變化,程序中應(yīng)予以考慮。非同步分配脈沖可能導(dǎo)致電機(jī)錯(cuò)轉(zhuǎn)。

為使電動(dòng)機(jī)以最快速度運(yùn)行,脈沖分配速率應(yīng)按照梯形曲線分配,如圖1.10所示。圖示的含義是:開(kāi)始時(shí)(零轉(zhuǎn)速)脈沖分配要慢,當(dāng)電動(dòng)機(jī)旋轉(zhuǎn)起來(lái)后,脈沖速率逐漸加快,并達(dá)到最高速率;當(dāng)要停止時(shí),也不可馬上停止,必須先降低脈沖速率,最后降到零,電動(dòng)機(jī)停轉(zhuǎn)。


圖1.10 脈沖速率分配


2方案

2.1 設(shè)計(jì)思路與方案

本次設(shè)計(jì)是一個(gè)對(duì)于三相步進(jìn)電機(jī)的控制系統(tǒng),而單片機(jī)實(shí)現(xiàn)的步進(jìn)電機(jī)控制系統(tǒng)具有成本低、使用靈活的特點(diǎn),此系統(tǒng)選用51單片機(jī)即可。

根據(jù)要求整個(gè)設(shè)計(jì)大體可分為四塊:

一是5個(gè)按鍵K0~K4將用戶(hù)所需來(lái)選擇步進(jìn)電機(jī)的工作狀態(tài)。我們將開(kāi)關(guān)連入單片機(jī)的P1口,通過(guò)按鍵開(kāi)關(guān)的高低電平狀態(tài)來(lái)讀入我們所需的控制信號(hào)。硬件上直接把開(kāi)關(guān)分別接在單片機(jī)的接口上,通過(guò)查詢(xún)端口信號(hào)來(lái)動(dòng)作,將控制信號(hào)處理。在設(shè)計(jì)開(kāi)關(guān)部分時(shí),還考慮到機(jī)械抖動(dòng)的影響,采取硬件方式—并聯(lián)電容來(lái)去抖。

二是3個(gè)LED發(fā)光二極管的顯示步進(jìn)電機(jī)工作狀態(tài)模塊。在設(shè)計(jì)要求中步進(jìn)電機(jī)正轉(zhuǎn)是紅燈亮,反轉(zhuǎn)是黃燈亮,停止不轉(zhuǎn)是綠燈亮。設(shè)計(jì)中將3個(gè)發(fā)光二極管分別接到單片機(jī)P3口,受到單片機(jī)的輸出信號(hào)控制。

三是步進(jìn)電機(jī)的工作模塊。要想步進(jìn)電機(jī)按照我們想要的方式運(yùn)轉(zhuǎn),將步進(jìn)電機(jī)一端接到+12V的電源,一端接到單片機(jī)P3口,受單片機(jī)的輸出信號(hào)控制。

四是4位數(shù)碼管顯示步數(shù)的模塊。設(shè)計(jì)中主要是利用軟件編程的算法來(lái)實(shí)現(xiàn)步數(shù)的累計(jì)和顯示,同樣,4位數(shù)碼管接到單片機(jī)的P0口和P2口受單片機(jī)輸出信號(hào)的控制,在硬件上使用的是動(dòng)態(tài)顯示的接法。

由此可知所需要設(shè)計(jì)一個(gè)系統(tǒng),可以通過(guò)不同按鍵來(lái)選擇步進(jìn)電機(jī)的工作方式,且有LED發(fā)光二極管來(lái)顯示電機(jī)對(duì)應(yīng)的工作狀態(tài),除此之外還能在數(shù)碼管上顯示出步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的步數(shù)。

2.2總體設(shè)計(jì)框圖

此系統(tǒng)主要由單片機(jī)、步進(jìn)電機(jī)、步數(shù)顯示模塊、工作狀態(tài)控制與顯示模塊組成。整體框圖如圖1。



圖1 系統(tǒng)整體框圖

3系統(tǒng)實(shí)現(xiàn)的原理說(shuō)明
3.1 步進(jìn)電機(jī)控制工作原理
3.1.1步進(jìn)電機(jī)的工作原理

步進(jìn)電機(jī)的不同驅(qū)動(dòng)方式,都是在工作時(shí),脈沖信號(hào)按一定順序輪流加到三相繞組上,從而實(shí)現(xiàn)不同的工作狀態(tài)。由于通電順序不同,其運(yùn)行方式有三相單三相拍、三相雙三拍和三相單、雙六拍三種(注意:上面“三相單三拍”中的“三相”指定子有三相繞組;“拍”是指定子繞組改變一次通電方式;“三拍”表示通電三次完成一個(gè)循環(huán)。“三相雙三拍”中的“雙”是指同時(shí)有兩相繞組通電)。

1.2.1三相單三拍運(yùn)行方式:下頁(yè)圖所示為反應(yīng)式步進(jìn)電動(dòng)機(jī)工作原理圖,若通過(guò)脈沖分配器輸出的第一個(gè)脈沖使A相繞組通電,B,C相繞組不通電,在A相繞組通電后產(chǎn)生的磁場(chǎng)將使轉(zhuǎn)子 上產(chǎn)生反應(yīng)轉(zhuǎn)矩,轉(zhuǎn)子的1、3齒將與定子磁極對(duì)齊,如果圖(a)所示。第二個(gè)脈沖到來(lái),使B相繞組通電,而A、C相繞組不通電;B相繞組產(chǎn)生的磁場(chǎng)將 使轉(zhuǎn)子的2、4齒與B相磁極對(duì)齊,如圖(b)所示,與圖(a)相比,轉(zhuǎn)子逆時(shí)針?lè)较蜣D(zhuǎn)動(dòng)了一個(gè)角度。第三個(gè)脈沖到來(lái)后,是C相繞組通電,而 A、B相不通電,這時(shí)轉(zhuǎn)子的1、3齒會(huì)與C組對(duì)齊,轉(zhuǎn)子的位置如圖(c)所示,與圖(b)比較,又逆時(shí)針轉(zhuǎn)過(guò)了一個(gè)角度。

圖1.1  反應(yīng)式步進(jìn)電機(jī)工作原理圖

當(dāng)脈沖不斷到來(lái)時(shí),通過(guò)分配器使定子的繞組按著A相--B相--C相--A相……的規(guī)律不斷地接通與斷開(kāi),這時(shí)步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)子就連續(xù)不停地一步步的逆時(shí) 針?lè)较蜣D(zhuǎn)動(dòng)。如果改變步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)動(dòng)方向,只要將定子各繞組通電的順序改為A相--C相--B相--A相,轉(zhuǎn)子轉(zhuǎn)動(dòng)方向即改為順時(shí)針?lè)较颉?/p>

    單三拍分配方式時(shí),步進(jìn)電動(dòng)機(jī)由A相通電轉(zhuǎn)換到B相通電,步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)子轉(zhuǎn)過(guò)一個(gè)角度,稱(chēng)為一步。這時(shí)轉(zhuǎn)子轉(zhuǎn)過(guò)的角度是30度。步進(jìn)電動(dòng)機(jī)每一步轉(zhuǎn)過(guò)的角度稱(chēng)為步距角。

1.2.2三相雙三拍運(yùn)行方式三相雙三拍運(yùn)行方式:每次都有兩個(gè)繞組通電,通電方式是AB--BC--CA--AB……,如果通電順序改為AB--CA--BC--AB……則步進(jìn)電機(jī)反轉(zhuǎn)。雙三拍分配方式時(shí),步進(jìn)電動(dòng)機(jī)的步距角也是30度

   1.2.3三相單,雙六拍運(yùn)行方式:三相六拍分配方式就是每個(gè)周期內(nèi)有六個(gè)通電狀態(tài)。這六中通電狀態(tài)的順序可以使A--AB--B--BC--C--CA--A……或者A-- CA--C--BC--B--AB--A……六拍通電方式中,有一個(gè)時(shí)刻兩個(gè)繞組同時(shí)通電,這時(shí)轉(zhuǎn)子齒的位置將位于通電的兩相的中間位置。在三相六拍分配 方式下,轉(zhuǎn)子每一步轉(zhuǎn)過(guò)的角度只是三相三拍方式下的一半,步距角是15度。

單三拍運(yùn)行的突出問(wèn)題是每次只有一相繞組通電,在轉(zhuǎn)換過(guò)程中,一相繞組斷電,另一相繞組通電,容易發(fā)生失步;另外單靠一相繞組通電吸引轉(zhuǎn)子,穩(wěn)定性不好,容易在平衡位置附近震蕩,故用的較少。

    雙三拍運(yùn)行的特點(diǎn)是每次都有兩相繞組通電,且在轉(zhuǎn)換過(guò)程中始終有一相繞組保持通電狀態(tài),因此工作穩(wěn)定,且步距角與單三拍相同。

    六拍運(yùn)行方式轉(zhuǎn)換時(shí)始終有一相繞組通電,且步距角較小,故工作穩(wěn)定性好,但電源較復(fù)雜,實(shí)際應(yīng)用較多。

3.1.2 步進(jìn)電機(jī)的啟停控制

步進(jìn)電機(jī)由于其電氣特性,運(yùn)轉(zhuǎn)時(shí)會(huì)有步進(jìn)感 ,即振動(dòng)感。為了使電機(jī)轉(zhuǎn)動(dòng)平滑 ,減小振動(dòng) ,可在步進(jìn)電機(jī)控制脈沖的上升沿和下降沿采用細(xì)分的梯形波 ,可以減小步進(jìn)電機(jī)的步進(jìn)角 ,提高電機(jī)運(yùn)行的平穩(wěn)性。在步進(jìn)電機(jī)停轉(zhuǎn)時(shí) ,為了防止因慣性而使電機(jī)軸產(chǎn)生順滑 ,則需采用合適的鎖定波形 ,產(chǎn)生鎖定磁力矩 ,鎖定步進(jìn)電機(jī)的轉(zhuǎn)軸 ,使步進(jìn)電機(jī)的轉(zhuǎn)軸不能自由轉(zhuǎn)動(dòng)。

3.1.3 步進(jìn)電機(jī)的轉(zhuǎn)向控制

如果給定工作方式正序換相通電 ,步進(jìn)電機(jī)正轉(zhuǎn)。若步進(jìn)電機(jī)的勵(lì)磁方式為三相六拍 ,即 A-AB-B-BC-C-CA。如果按反序通電換相 ,即則電機(jī)就反轉(zhuǎn)。其他方式情況類(lèi)似。

3.2步數(shù)顯示模塊原理

步數(shù)顯示模塊和工作狀態(tài)顯示模塊,都是通過(guò)單片機(jī)輸出信號(hào)控制發(fā)光二極管LED的亮滅。其中步數(shù)顯示模塊中LED構(gòu)成數(shù)碼管,要求顯示4位十進(jìn)制數(shù),故用到4位數(shù)碼管。要控制多位的顯示電路,需要有字段控制和字位控制。控制方式分為靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。靜態(tài)顯示方式,每一位的顯示器都需要配一個(gè)8位輸出口來(lái)輸出該字位的七段碼,需要片外擴(kuò)展輸出口。而動(dòng)態(tài)顯示方式將各數(shù)碼管的對(duì)應(yīng)字段的引腳都并聯(lián)在一起,線路簡(jiǎn)單,減少接口,不需片外擴(kuò)展。這里選用動(dòng)態(tài)顯示方式。


4硬件設(shè)計(jì)
4.1系統(tǒng)總原理圖

圖3 系統(tǒng)總原理圖

根據(jù)設(shè)計(jì)要求用PROTEUS所做的硬件連線圖如圖3。

4.2各部分硬件原理圖設(shè)計(jì)
4.2.1 單片機(jī)控制模塊

單片機(jī)選用最經(jīng)典的80C51,其4個(gè)I/O口都要用到, P3接步進(jìn)電機(jī)驅(qū)動(dòng)電路及工作狀態(tài)顯示模塊,P0和P2分別接步數(shù)顯示中對(duì)數(shù)碼管的字段控制及數(shù)碼管片選,P1接工作狀態(tài)控制電路,,時(shí)鐘用內(nèi)部方式需外接晶體振蕩器。硬件圖如圖4所示。


圖4 單片機(jī)模塊原理圖

此設(shè)計(jì)中接的是12MHZ的晶振,故一個(gè)機(jī)器周期為1/12us。根據(jù)經(jīng)驗(yàn)數(shù)據(jù),與晶振一起的兩個(gè)電容設(shè)為15PF。單片機(jī)的VCC和GROUD都隱藏了,已自動(dòng)接好,VCC應(yīng)設(shè)為+5V。

4.2.2按鍵選擇工作狀態(tài)模塊

首先我們來(lái)考慮所有機(jī)械觸點(diǎn)式按鍵在狀態(tài)輸出時(shí)的共性問(wèn)題就是按鍵抖動(dòng)問(wèn)題,由于機(jī)械觸點(diǎn)的彈性振動(dòng),按鍵在按下時(shí)不會(huì)馬上穩(wěn)定地接通而在彈起時(shí)也不能一下子完全地?cái)嚅_(kāi),因而在按鍵閉合和斷開(kāi)的瞬間均會(huì)出現(xiàn)一連串的抖動(dòng),這稱(chēng)為按鍵的抖動(dòng)干擾。

這種抖動(dòng)可能會(huì)造成按一次鍵產(chǎn)生的開(kāi)關(guān)狀態(tài)被CPU誤讀幾次。為了使CPU能正確地讀取按鍵狀態(tài),本次設(shè)計(jì)中我們采用并聯(lián)電容消抖法,利用電容的放電延時(shí)來(lái)實(shí)現(xiàn)。

如圖5所示,這是唯一的一塊輸入模塊的設(shè)計(jì)。5個(gè)按鍵開(kāi)關(guān)一端通過(guò)電阻接高電平,另一端全部接到地,其中接高電平的一端對(duì)應(yīng)也接到單片機(jī)的P1口分別為P1.0~P1.4。當(dāng)開(kāi)關(guān)斷開(kāi),就是輸入到單片機(jī)對(duì)應(yīng)端口高電平,而開(kāi)關(guān)閉合,是使端口接地,輸入低電平。所以這個(gè)設(shè)計(jì)中開(kāi)關(guān)斷開(kāi)時(shí)才是有效的。各按鍵功能:

(1)K0-K2為工作模式控制開(kāi)關(guān),KO接電時(shí),為步進(jìn)電機(jī)單三拍工作模式;K1接電時(shí),為步進(jìn)電機(jī)雙三拍工作模式;K2接電時(shí),步進(jìn)電機(jī)工作模式為三相六拍。

(2)K3為啟/停控制開(kāi)關(guān),控制整個(gè)系統(tǒng)的開(kāi)啟和關(guān)閉。

(3)K4為正/反轉(zhuǎn)控制開(kāi)關(guān),控制步進(jìn)電機(jī)的轉(zhuǎn)向。


圖5 按鍵模塊原理圖

4.2.3步進(jìn)電機(jī)工作模塊

將三相步進(jìn)電機(jī)三個(gè)端口直接接到單片機(jī)P3.0~P3.2即可,另三個(gè)端口接到+12V的高電平給步進(jìn)電機(jī)供電。只需在軟件編寫(xiě)上控制算法便可以調(diào)節(jié)這三個(gè)端口的高低電平來(lái)控制步進(jìn)電機(jī)的開(kāi)啟與停止,正反轉(zhuǎn)以及工作模式。步進(jìn)電機(jī)硬件接線圖如圖6所示。


圖6 步進(jìn)電機(jī)模塊原理圖

4.2.4工作狀態(tài)顯示模塊

LED發(fā)光二極管顯示步進(jìn)電機(jī)的工作狀態(tài),它們分別接到單片機(jī)的P3.3~P3.5。如圖7,讓單片機(jī)輸出通過(guò)一個(gè)反相器再接到LED陰極,LED陽(yáng)極接VCC。這樣可以提高電流,有利于二極管的導(dǎo)通,我們可以通過(guò)控制P3口的數(shù)據(jù),實(shí)現(xiàn)LED的亮滅。


圖7 工作狀態(tài)顯示模塊原理圖

4.2.5 4位數(shù)碼管顯示步數(shù)模塊

LED數(shù)碼管實(shí)際上是由七個(gè)發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個(gè)。這些段分別由字母a,b,c,d,e,f,g,dp來(lái)表示。當(dāng)數(shù)碼管特定的段加上電壓后,這些特定的段就會(huì)發(fā)亮,以形成我們眼睛看到的字樣了。通過(guò)分時(shí)輪流控制各個(gè)LED數(shù)碼管的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。

P0口和P2口的前四個(gè)分別接步數(shù)顯示中對(duì)數(shù)碼管的字段控制及數(shù)碼管片選,如圖8所示,這里主要是由軟件算法來(lái)實(shí)現(xiàn)單片機(jī)輸出的控制。



圖8 數(shù)碼管顯示模塊原理圖


5軟件設(shè)計(jì)5.1系統(tǒng)總體設(shè)計(jì)


圖9 系統(tǒng)總流程圖

設(shè)計(jì)說(shuō)明:首先是數(shù)碼管顯示清零,單片機(jī)再讀入P1口輸入的按鍵狀態(tài),先判斷是否啟動(dòng),如果沒(méi)有啟動(dòng)則是綠燈亮并再判斷,如果啟動(dòng)了,就接著判斷所需的電機(jī)工作模式,再讀入P1口狀態(tài)判斷電機(jī)的轉(zhuǎn)向,輸出控制信號(hào)為正轉(zhuǎn)紅燈亮,反轉(zhuǎn)黃燈亮,由此可以讓步進(jìn)電機(jī)按照指定的方式運(yùn)轉(zhuǎn),并且累計(jì)步數(shù)再顯示到數(shù)碼管上。最后檢驗(yàn)P1口是否狀態(tài)改變,如果改變則步數(shù)清零重新開(kāi)始判斷,不改變則繼續(xù)轉(zhuǎn)動(dòng)。

5.2步進(jìn)電機(jī)工作模塊
5.2.1步進(jìn)電機(jī)的工作方式說(shuō)明

(1)三相單三拍工作方式

在這種工作方式下,A、B、C三相輪流通電,電流切換三次,磁場(chǎng)旋轉(zhuǎn)一周,轉(zhuǎn)子向前轉(zhuǎn)過(guò)一個(gè)齒距角。因此這種通電方式叫做三相單三拍工作方式。這時(shí)步距角(度)為:
                                                        

式中:m──定子相數(shù); z ──轉(zhuǎn)子齒數(shù)

表1 單三拍的相位控制


步序

             控制位

工作
狀態(tài)

控制
模型
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
C相
P1.1
B相
P1.0
A相
1
0
0
0
0
0
0
0
1
A
01H
2
0
0
0
0
0
0
1
0
B
02H
3
0
0
0
0
0
1
0
0
C
04H

(2)三相雙三拍工作方式

這種工作方式每次都是有兩相導(dǎo)通,兩相繞組處在相同電壓之下,以AB─BC─CA─AB (或反之)方式通電,故稱(chēng)為雙三拍工作方式。以這種方式通電,轉(zhuǎn)子齒所處的位置相當(dāng)于六拍控制方式中去掉單三拍后的三個(gè)位置。它的步距角計(jì)算公式與單三拍時(shí)的公式相同。


表2 雙三拍的相位控制


步序

控制位

工作
狀態(tài)

控制
模型
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
C相
P1.1
B相
P1.0
A相
1
0
0
0
0
0
0
1
1
AB
03H
2
0
0
0
0
0
1
1
0
BC
06H
3
0
0
0
0
0
1
0
1
CA
05H

(3)三相六拍工作方式

在這種工作方式下,繞組以A—AB—B—BC—C—CA—A時(shí)序(或反時(shí)序)轉(zhuǎn)換6次,磁場(chǎng)旋轉(zhuǎn)一周,轉(zhuǎn)子前進(jìn)一個(gè)齒距,每次切換均使轉(zhuǎn)子轉(zhuǎn)動(dòng)1. 5°,故這種通電方式稱(chēng)為三相六柏工作方式。其步距角為:
                                               

表3 六拍的數(shù)學(xué)模型


步序

控制位

工作
狀態(tài)

控制
模型
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
C相
P1.1
B相
P1.0
A相
1
0
0
0
0
0
0
0
1
A
01H
2
0
0
0
0
0
0
1
1
AB
03H
3
0
0
0
0
0
0
1
0
B
02H
4
0
0
0
0
0
1
1
0
BC
06H
5
0
0
0
0
0
1
0
0
C
04H
6
0
0
0
0
0
1
0
1
CA
05H

5.2.2設(shè)計(jì)說(shuō)明及流程圖

設(shè)計(jì)說(shuō)明:在此設(shè)計(jì)中,采用的是三相步進(jìn)電機(jī),對(duì)于步進(jìn)電機(jī)模塊的程序設(shè)計(jì)采用循環(huán)程序設(shè)計(jì)方法。先把正反轉(zhuǎn)向的控制模型存放在內(nèi)存單元中,然后再逐一從單元中取出控制模塊并輸出。首先啟動(dòng),通過(guò)P1口讀入所需的工作方式,即選擇步進(jìn)電機(jī)的拍數(shù),然后讀入正反轉(zhuǎn)的控制,再來(lái)輸出對(duì)應(yīng)的控制模型來(lái)驅(qū)動(dòng)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。

   三相步進(jìn)電機(jī)工作的流程圖:


圖10 三相步進(jìn)電機(jī)工作流程圖

5.3數(shù)碼管步數(shù)顯示模塊

設(shè)計(jì)說(shuō)明:步數(shù)顯示模塊是整個(gè)程序里的一個(gè)子程序。其是用4位八段數(shù)碼管來(lái)顯示工作步數(shù)。先將要顯示的數(shù)化為10進(jìn)制數(shù),每位分別儲(chǔ)存,從P0口輸出顯示碼,P2口輸入位選碼,需要一定的延時(shí),讓此位數(shù)字顯示閃爍出來(lái)。然后修改數(shù)組地址,求下一位位選碼繼續(xù)顯示,直至輸出四位數(shù)。這個(gè)掃描過(guò)程重復(fù)50次,保證人眼能觀察到步數(shù)顯示。

流程圖如圖11:



圖11 數(shù)碼管顯示模塊流程圖


6仿真調(diào)試記錄

如圖12所示,當(dāng)選擇電機(jī)工作在單三拍,反轉(zhuǎn)的模式下,K0斷開(kāi),K1、K2、K4、閉合,系統(tǒng)啟動(dòng),K3斷開(kāi),電機(jī)開(kāi)始轉(zhuǎn)動(dòng)。LED四位顯示屏顯示工作步數(shù),LED指示燈黃燈亮顯示電機(jī)反轉(zhuǎn)的狀態(tài)。


圖12 仿真圖

如圖13所示,此種工作方式下步進(jìn)電機(jī)的旋轉(zhuǎn)角度:


圖13 步進(jìn)電機(jī)旋轉(zhuǎn)角度

7心得體會(huì)

本次課設(shè)為期一周,所以時(shí)間比較緊張,給課設(shè)的順利完成增加了難度。單片機(jī)原理是一門(mén)應(yīng)用性很強(qiáng)綜合性很強(qiáng)的學(xué)科,在這次課設(shè)中,我充分感受到了這一點(diǎn),在老師給的課題之中,是來(lái)自于各個(gè)方面各個(gè)領(lǐng)域的應(yīng)用,不得不說(shuō),計(jì)算機(jī)控制很強(qiáng)大,確實(shí)改變了我們的生活。

課設(shè)里最困難的部分就是編寫(xiě)程序和仿真調(diào)試,也許硬件連接沒(méi)問(wèn)題,程序運(yùn)行沒(méi)問(wèn)題,但是,當(dāng)把程序?qū)耄l(fā)現(xiàn)電動(dòng)機(jī)就是不轉(zhuǎn),燈就是不亮,數(shù)碼管就是亂跳,這是很考驗(yàn)?zāi)托牡臅r(shí)候,一遍一遍地去調(diào)試程序,修改連接部分,有時(shí)真的看著很崩潰,但是當(dāng)你不放棄地調(diào)試,才有仿真成功的可能,在這種反復(fù)中,對(duì)我們自身的能力是提高很多的。另一個(gè)收獲就是關(guān)于軟件的使用了。PROTEUS,KEIL51,以前好像也用過(guò),但是平時(shí)較少接觸,這次的課設(shè)讓我比較熟練的掌握了這兩個(gè)學(xué)習(xí)軟件強(qiáng)大的功能,而且發(fā)現(xiàn)從PROTEUS里導(dǎo)出來(lái)的電路圖特別漂亮和清晰。

單片機(jī)原理一直是自己比較喜歡的一門(mén)學(xué)科,拿到課程設(shè)計(jì)的題目也想著可以好好檢驗(yàn)自己的學(xué)習(xí)成果,一直認(rèn)為,期末考試是所謂的應(yīng)試教育,而課程設(shè)計(jì)似乎更加地考驗(yàn)所學(xué)的知識(shí),所謂實(shí)踐與理論相結(jié)合就是這個(gè)道理吧。課程設(shè)計(jì)總能讓我有一種我站在山面前的感覺(jué),看上去比較陌生高大,但是攀登的技巧早已在平時(shí)的學(xué)習(xí)中習(xí)得,不斷地去攀登,不斷地在回味課堂上老師講的東西,書(shū)本上的東西,這是一種奇妙的體驗(yàn)。

我明白遇到的電路或者課題并不一定在你的知識(shí)范圍之內(nèi),而面對(duì)新的東西,我們要冷靜地去尋求解決之道,去搜尋網(wǎng)絡(luò)資源,圖書(shū)館資源以及和同學(xué)們的討論之中,再結(jié)合自己所學(xué)過(guò)的知識(shí)來(lái)吃透理解那些未知的東西,擴(kuò)寬知識(shí)面,這樣就會(huì)覺(jué)得學(xué)到了遠(yuǎn)遠(yuǎn)超過(guò)課堂的東西,但是卻源于課堂,想必這就是課設(shè)的意義吧,很有收獲。


單片機(jī)源碼:

  1. #include<reg51.h>
  2. #include<stdio.h>
  3. void delay1(void);
  4. void delay2(void);
  5. void display(int);
  6. int bs=0;
  7. main()
  8.   { char  a,b,c,d,j,*q,
  9.           done1[8]={0x01,0x02,0x04,0x00,0x01,0x04,0x02,0x00},
  10.           done2[8]={0x03,0x06,0x05,0x00,0x03,0x05,0x06,0x00},        done3[14]={0x01,0x03,0x02,0x06,0x04,0x05,0x00,0x01,0x05,0x04,0x06,0x02,0x03,0x00};
  11.               L:  a=P1;   
  12.                    while(!(a&0x08))    //判斷是否啟動(dòng),若沒(méi)啟動(dòng)則重新判斷
  13.                             {  P3=0x08;
  14.                           delay1();
  15.                   a=P1; }
  16.      //...............................................判斷工作模式
  17.               if(a&0x01)                     //方式1模型
  18.               q=done1;
  19.               else if(a&0x02)                 //方式2模型
  20.               q=done2;
  21.               else if(a&0x04)                 //方式3模型
  22.               q=done3;
  23.      //...............................................判斷電機(jī)轉(zhuǎn)向
  24.               if(a&0x10)                 //判斷電機(jī)是否要正轉(zhuǎn)
  25.               { P3=0x10;                //P1.4口為1,電機(jī)正轉(zhuǎn),紅燈亮
  26.                  b=0;}
  27.               else
  28.               { P3=0x20;               //P1.4口為0,電機(jī)反轉(zhuǎn),黃燈亮
  29.                  if(a&0x04)b=7;         //反轉(zhuǎn)時(shí)將b置數(shù),使指針指到數(shù)組反相序部分
  30.            else b=4; }
  31.    //....................................................
  32. d=b;
  33.                 while(1)
  34.                 { c=*(q+b);               //判斷電機(jī)步數(shù)是否走完
  35.                  if(c==0)b=d;               //步數(shù)走完,電機(jī)重新再走
  36.                  else
  37.                  {  P3=c;                 //從P3輸出電機(jī)控制信號(hào)
  38.                               b++;
  39.                               bs++;                 //總步數(shù)加1
  40.                               display(bs);              //顯示步數(shù)
  41.                               j=a;
  42.                               a=P1;
  43.                               if(a!=j)                     //判斷P1口狀態(tài)信號(hào)是否改變
  44.                               {              if(!(a&0x08))bs=0;         //若為停止信號(hào),總步數(shù)清零
  45.                               goto L; }           //狀態(tài)信號(hào)改變,返回到開(kāi)始,重新對(duì)電機(jī)控制
  46.                               }
  47.                             }
  48.               }            
  49. void delay1()      //延時(shí)5ms子程序
  50.               { int i,j;
  51.                  for(i=0;i<200;i++)
  52.                  for(j=0;j<300;j++);
  53.                                }
  54. void delay2()    //延時(shí)50us子程序
  55.               {   int i,j;
  56.                    for(i=0;i<10;i++)
  57.                             for(j=0;j<60;j++);
  58.                             }
  59. void display(int n)
  60.               {unsigned char tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
  61.                 unsigned char i,k,t,num[4];
  62.                 num[0]=n%10;                //將總步數(shù)的各位分別存在num數(shù)組中
  63.                 num[1]=(n/10)%10;
  64.                 num[2]=(n/100)%10;
  65.                 num[3]=(n/1000)%10;
  66.                 for(t=0;t<50;t++)             //掃描50次
  67.                 {  k=0x08;                //位選碼指向最左一位,第四位
  68.                  for(i=0;i<4;i++)
  69.                 {  P2=k;                    //從P2口輸入位選碼
  70.                    P0=~(tab[num[i]]);      //取出顯示碼,并從P0口輸出顯示碼
  71.                             k=k>>1;                //求下一個(gè)位選碼
  72.                             delay2();
  73.                 }
  74.                 }
  75. }
復(fù)制代碼
完整的Word格式文檔51黑下載地址:

基于單片機(jī)的三相步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)分解.doc (759.01 KB, 下載次數(shù): 76)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:214796 發(fā)表于 2019-3-19 17:04 | 顯示全部樓層
非常感謝樓主的分享,解了燃眉之急。
回復(fù)

使用道具 舉報(bào)

ID:298008 發(fā)表于 2020-2-15 15:53 | 顯示全部樓層
謝謝樓主分享!!!
回復(fù)

使用道具 舉報(bào)

ID:298008 發(fā)表于 2020-2-15 20:16 | 顯示全部樓層
謝謝樓主分享!!!!
回復(fù)

使用道具 舉報(bào)

ID:756512 發(fā)表于 2020-6-8 08:56 來(lái)自手機(jī) | 顯示全部樓層
想問(wèn)一下仿真文件和其他文件可以發(fā)嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人免费视频观看 | 成人av影院| 中文字幕国产精品 | 久久国产高清视频 | 国产精品久久久久久一区二区三区 | 毛片视频网站 | 久久久久久免费免费 | 色婷婷综合久久久久中文一区二区 | 国产一区二区三区四区五区加勒比 | 国产成人99久久亚洲综合精品 | 国产男女视频 | 男女羞羞免费网站 | 天天弄天天操 | 黄色一级特级片 | 国产三级一区二区三区 | 伊人伊成久久人综合网站 | 免费一区二区三区 | 精品久久成人 | 日日天天 | 日韩精品在线一区 | 成年人精品视频 | 视频一区在线 | 国产乱码精品一区二区三区中文 | 久久久青草 | 免费观看的黄色网址 | 国产精品永久 | 99久久婷婷国产亚洲终合精品 | 99久久精品免费看国产四区 | 精品日韩一区二区三区av动图 | 人人操日日干 | 色视频在线播放 | 高清国产午夜精品久久久久久 | 亚洲日韩视频 | 婷婷丁香在线视频 | 91精品一区二区三区久久久久久 | 久久久久久久亚洲精品 | 日韩精品一区二区三区视频播放 | 精品亚洲一区二区三区 | 午夜视频一区二区三区 | 久久久久亚洲精品 | 欧美精品久久久 |