歩進馬達定位控制之研究 - fcu.edu.t · 2011-06-07 · 中文摘要 步進馬達(Stepper...

38
自動控制工程學系專題製作 歩進馬達定位控制之研究 The Study of Position Control by Stepper Motor 指導教授:賴啟智 生:林智高 高東軒 中華民國九十四年五月三十日

Transcript of 歩進馬達定位控制之研究 - fcu.edu.t · 2011-06-07 · 中文摘要 步進馬達(Stepper...

  • 逢 甲 大 學

    自動控制工程學系專題製作

    專 題 論 文

    歩進馬達定位控制之研究 The Study of Position Control

    by Stepper Motor

    指導教授:賴啟智

    學 生:林智高 高東軒

    中華民國九十四年五月三十日

  • 感謝

    首先要感謝我們的指導教授賴啟智老師,總是在我們有疑問無法有所進展的

    時候給予指導、指引方向等寶貴意見。還有系上的老師、助教提供給我們的資料

    以及各種資源,讓我們可以順利完成專題。另外特別感謝在醫工實驗室裡的學長

    同學們,因為有你們的指點提示使這個專題更趨完整性,在實驗室裡的互相琢

    磨,使我們更加了解研究的精神,與一起探討問題的必要性,總之感謝自控系的

    師長及同學,這些年來讓我們得到不少,謝謝大家。

    ii

  • 中文摘要

    步進馬達(Stepper motor)不像一般傳統的馬達般連續運轉,它是逐步的轉動,

    其動作是由數位信號控制馬達內的激磁線圈而達成的。典型的步進馬達用在軟式

    磁碟機讀寫頭的定位,印表機印字頭及換行處裡,機器人等領域都極具效率。

    與 PID 控制器比較,單晶片控制器具有電腦的計算能力和記憶能力,與個

    人電腦比較,單晶片控制器的優點為其較輕、薄、短、小。在這前提之下,本研

    究提出利用 8051 單晶片輸入時序脈波,來控制步進馬達,並由相關實驗來驗證

    其具有順應與可靠之定位功能。

    iii

  • Abstract

    A stepper motor makes its rotation in steps instead of a smooth, continuous

    motion as with conventional motors. The stepper action is controlled by digital levels

    that energize magnetic coils within the motor. Typical applications are floppy disk

    Read/Write head positioning, printer type head and line feed control, and robotics.

    The single chip controller has more computation efficiency and more available

    memory than the PID controller. The size of single chip is slighter, thinner, shorter

    and smaller than the personal computer. For the premise, in this paper, we propose a

    method of single chip controller based 8051 clock pulse digital signal. The results of

    simulation and experiment verify the performances of single chip is robust and

    adaptive.

    iv

  • 目錄

    感謝………………………………………………………………………………….ii

    中文摘要…………………………………………………………………………….iii

    英文摘要…………………………………………………………………………….iv

    目錄…………………………………………………………………………………..v

    圖目錄………………………………………………………………………………..vi

    表目錄………………………………………………………………………………..vii

    第一章 前言………………………………………………………………………….1

    第二章 硬體說明…………………………………………………………………….2

    2.1 單晶片簡介………………………………………………………………2

    2.2 MCS-8051 單晶片系統架構…………………………………………….4

    2.2.1 指令解碼器( Instruction Decoder )………………………………...5

    2.2.2 程式計數器( Program Counter,PC )……………………………..5

    2.2.3 算術術/邏輯單元( Arithmetic & Logic Unit,ALU )…………......6

    2.2.4 程式記憶體( Program Memory )…………………………………...6

    2.2.5 資料記憶體( Data Memory )……………………………………….7

    2.2.6 特殊功能暫存器( Special Function Register,SFR )……………..8

    2.3 89C51 程式發展流程……………………………………………………12

    2.4 單晶片與多晶片比較…………………………………………………....12

    2.5 電動機種類……………………………………………………………...13

    2.5.1 步進馬達的簡介…………………………………………………..14

    2.5.2 步進馬達的特點…………………………………………………..15

    2.5.3 步進馬達的種類………………………………………….…….…15

    2.5.4 步近馬達的用途…………………………………………………..17

    v

  • 2.5.5 步進馬達的激磁方式……………………………………………..17

    第三章 硬體架構…………………………………………………………………....20

    3.1 電路、元件說明…………………………………………………………22

    3.1.1 振盪電路……………………………………………………….......22

    3.1.2RESET……………………………………………………………....22

    3.1.3 40106……………………………………………………………….22

    3.1.4 電晶體 2SC1384…………………………………………………...23

    3.1.5 二極體………………………………………………………… …..23

    第四章 軟體架構…………………………………………………………................24

    4.1 軟體架構流程………………………………………………………..…..24

    4.2 程式…………………………………………………………………..…..25

    結論…………………………………………………………………………………..28

    參考文獻……………………………………………………………………………..29

    v

  • 圖目錄

    圖 2.1 MCS-51 單晶片接腳圖………………………………………………………4

    圖 2.2 8051 系列單晶片功能方塊圖………………………………………………...5

    圖 2.3 8051 程式記憶體結構圖……………………………………………………...6

    圖 2.4 8051 資料記憶體結構圖……………………………………………………...7

    圖 2.5 內部資料記憶體的較低 128 位元組…………………………………………8

    圖 2.6馬達內部構照圖………………………………………………………………15

    圖 2.7四相步進馬達內部結構圖……………………………………………………16

    圖 2.8步進馬達驅動電路圖…………………………………………………………16

    圖 2.9ㄧ相和二相激磁方式…………………………………………………………17

    圖 2.10一相激磁時序圖……………………………………………………………..18

    圖 2.11二相激磁時序圖……………………………………………………………..18

    圖 2.12 一、二相激磁方式…………………………………………………………..19

    圖 2.13 一、二相激磁時序圖………………………………………………………..19

    圖 3.1流程圖…………………………………………………………………………20

    圖 3.2硬體架構電路圖………………………………………………………………21

    圖 3.3振盪電路圖……………………………………………………………………22

    圖 3.4 40106接腳圖………….………………………………………………………23

    圖 4.1軟體架構圖……………………………………………………………………24

    vi

  • 表目錄

    表 2-1MCS-51 的家族成員…………………………………………………………..2

    表 2-2 各種馬達的比較………………………………………………………………14

    表 3-1 常用二極體之規格……………………………………………………………23

    vii

  • 第一章 前言

    大學四年學了許多關於硬體的課程,像是電路學,電子學,近階伺服控制,

    但多半是理論性的居多,實際上做電路的只有電子學實習課才有而己,但幾乎扯

    上日常生活中的應用,會有所學無用之感概。由於對於硬體方面的了解不多,軟

    體方面學的比較多的也只屬8051,所以決定將兩者結合做為專題的發展方向。

    基本上步進馬達對於精確控制是很一項很重要的工具,但要如何控制它精

    準的角度卻是另一項課題,有鑑於此,本專題試著以8051控制步進馬達來測試其

    精準度及誤差,進一步來對馬達有深一步的了解,並將其應用於其他硬體上。

    1

  • 第二章 硬體說明

    2.1 單晶片簡介

    MCS-8051 系列單晶片是美國INTEL公司推出MCS-8048系列晶片之後所推

    出的後續晶片,8051系列單晶片主要是改進8048系列單晶片的硬體架構及軟體能

    力。MCS-8051系列單晶片依其電路結構又可分為三種版本:(1)晶片內部不含

    ROM的版本、(2)晶片內含ROM的版本、以及(3)晶片內含EPROM的版本。表2-1

    列出各版本晶片的編號及一些特性:[1]

    表2.1 MCS-51的家族成員

    MCS-51 是 Intel 公司所設計的 8051 系列單晶片的總名稱。在 MCS-51 這個

    大家族裡較具知名度的編號有 8051,8751 和 8031,實際上這些不同編號的單晶

    片都使用相同的核心 CPU,與指令集是在靠造 IC 時給予不同的周邊設計,分別

    賦予這些 IC 一個特別編號,例如編號為 8051AH 的 IC,其 IC 內部有 4Kbyte 的

    ROM(放程式碼的地方),128byte 的 RAM,2 個 16 位元的 Timer,1 個全雙工

    UART 和四個 8 位元的 I/O 阜。編號為 8751AH 的 IC,與 8051AH 的差別只是在

    放程式碼的記憶體是可以清洗的 EPROM,其他的周邊則完全一樣。而 8031AH

    與 8051AH 差別是 8031AH 內部沒有放程式的記憶體,原文稱為 Romless type(沒

    有 ROM 的型態)。[2]

    MCS-51 系列單晶片的主要功能

    以下將8051/8751/8031單晶片的重要特性說明如下:[3]

    1.單晶片8位元微電腦晶片。

    2. 4K Bytes 的內部程式記體(8031 除外)。

    2

  • 3. 128 Bytes 可供讀/寫的內部RAM。

    4.可在外部擴充到64K Bytes 程式記憶體及64K Bytes 資料記憶體。

    5. 12組16位元的計時器/計數器(Timer/Counter)。

    6. 74組8位元的I/O並列埠,共32條可單獨規劃為輸入或輸出的I/O點。

    7. 1組全雙工的串列埠,可連接RS-232等標準的串列通信介面。

    8.可擴充為128K Bytes的外部記憶體,其中64K Bytes為程式記憶體,另外64K

    Bytes為資料記憶體。

    9.可處理5個中斷來源,並可規劃為2層中斷優先權。

    10.內部具有時脈振盪器,最高工作時脈可達12 MHz。

    我們都知道,電腦的最基本組成單位是中央處理單元(CPU)、記憶體、以及

    I/O ,各有其專司職責及用途。例如,CPU負責將程式解碼及執行、記憶體負責

    儲存程式及資料,而 I/O 則負責提供電腦系統與外界週邊設備的溝通管道。在

    微電腦術語中,通常我們所稱的微電腦指的是通用型(General Purpose) 微處理機

    晶片,例如Z80、6502、8085、80386晶片等,也就是說這些晶片只具有CPU的功

    能,若想要構成一部完整的電腦系統 (如PC/AT個人電腦等),則必須要搭配其它

    的記憶體晶片、I/O介面晶片、以及相關的支援晶片,這些CPU晶片才能動作。

    單晶片微電腦(Single Chip Microcomputer)則是將CPU、記憶體、I/O 這些單

    元組合在同一晶片之內,這些晶片只需要少量的支援電路即可獨立工作,如此就

    可以大量地減少電路板面積及降低成本,因此頗為適合家電、汽車、工業控制等

    產品及用途上,所以單晶片微電腦又稱之為微控制器(Microcontroller)。

    除記憶體及 I/O 之外,單晶片微電腦晶片還含有一些特殊的功能及內建電

    路,包括硬體中斷、計時器(Timer)、看門狗計時器(Watchdog Timer)、串列通信

    介面、類比/數位轉換器(A/D Converter)、數位/類比轉換器(D/A Converter)、PWM

    信號輸出﹒‥等等,這些電路無非是要滿足一些特殊的設計需求。因此,選擇適

    3

  • 當的單晶片微電腦晶片來滿足設計所需也是一門學問。

    接腳圖 2-1 晶片的 40 支接腳 DIP 包裝的接腳圖。一如 INTEL 公司其它的 CPU

    晶片一樣,8051 晶片也有許多接腳是多用途的。在此將說明每一支接腳的信號

    名稱及其功能用途。信號名稱後面括號中的數字代表其接腳號碼。

    圖2.1 MCS-51 單晶片接腳圖

    2.2 MCS-8051 單晶片系統架構

    圖2-2為8051系列單晶片之內部功能方塊圖:[4]

    4

  • 圖2.2 8051系列單晶片功能方塊圖

    以下為幾個重要的功能說明:

    2.2.1 指令解碼器( Instruction Decoder )

    指令解碼器的功能是負責將擷取自程式記憶體中的指令加以解碼,並送出內

    部信號以控制單晶片各單元的動作。這些內部控制信號可控制資料的來源及目的

    話,以及控制算術/邏輯處理單元的功能。

    2.2.2 程式計數器( Program Counter,PC )

    程式計數器是用來控制儲存在程式記憶體中指令碼的執行順序的一個16位

    元暫存器,也就是說,程式計數器的存放內容是下一個執行指令的程式記憶體的

    位址( A0~A15 ), 其中低階位址 A0~A7 存放在 8 位元的 PCL 暫存器中,而高

    5

  • 階位址 A8~A15 則存放在 8 位元的 PCH 暫存器中。

    2.2.3算術術/邏輯單元( Arithmetic & Logic Unit,ALU )

    這個單元主要是處理資料的算術及邏輯運算,必須搭配單晶片內部的PSW

    暫存器及累加器來進行運算。算術運算包括加法、減法、乘法、除法、遞加、遞

    減、大小比較等運算,而邏輯運算則包括AND、OR、XOR、NOT、左/右旋轉

    ( Rotate )、在/右移位( Shift )、位元清除( Clear )、位元設定( Set )等運算。運算後

    的結果除了存放於累加器或其它記憶體(暫存器)中,亦反應於PSW暫存器中(如是

    否有進位等)。

    2.2.4程式記憶體( Program Memory )

    8051 及8071 皆具有4K Bytes 的內部程式記憶體,並可在外部再擴充60K

    Bytes EPROM,如下圖2.3所示,而8031則沒有這些內部程式記憶體。在程式記

    憶體中所存放的是8051所要執行的程式碼,單晶片會主動到這塊記憶體要執行的

    指令碼,而8051要讀取程式記體時需激發信號PSEN。

    圖2.3 8051程式記憶體結構圖

    6

  • 8051[5]是如何決定程式記憶體的前面4K Bytes要內部或外部程式記憶體去

    讀取指令呢?這就要靠8051的EA接腳來決定內部程式記憶體是否有效,當

    EA=0,代表內部程式記憶體無效,8051會將前面4K移到外部;當EA=1,則內部

    程式記憶體有效。8051 到外部讀取ㄧ個指令碼時,P0 和P2 這兩個I/O埠就變成

    外部EPROM時所需的匯流排,其中P0當作位址匯流排和資料匯流排多工使用,

    當ALE接腳輸出為High 時,此刻P0上所輸出的是位址信號( A0~A7 ),因此外部

    的位址栓鎖電路必須在此刻將P0上的位址信號捕捉起來,當ALE降為LOW,且

    PSEN為LOW時,P0 就變成資料匯流( D0~D7 ),8051會在PSEN的輸出狀態由

    LOW轉態成High時讀入P0上的資料且將它解釋成指令碼;P2 在8051 讀取外部

    程式記憶體時會固定輸出位址匯流排的高位元組( A8~A15 )。

    2.2.5資料記憶體( Data Memory )

    8051 內部有一塊256 個Byte的位址空間,這塊空間是存放資料記憶體

    (RAM)和特殊功能暫存器(SFR)的地方,並可在外部擴充64KBytes的資料記憶

    體。其資料記憶體的結構圖2.4如下:

    圖2.4 8051資料記憶體結構圖

    7

  • 8051系列單晶片具有128 Bytes的內部資料記憶體,其中位址編00H~7FH。

    這些內部資料記憶體可供使用者的程式自由存取資料,不過,00H~7FH記憶體的

    資料可用直接定址法來存取資料,而8052系列的80H~FFH記憶體的資料則必須間

    接定址法才可以存取。依單晶片的特性又可將這些內部資料記憶體(00H~7FH)分

    成三個不同的部分:

    ● 暫存器庫( Register Banks )

    ● 可位元定址( Bit-addressable )區

    ● 一般用途區

    圖2.5 內部資料記憶體的較低128位元組

    2.2.6 特殊功能暫存器( Special Function Register,SFR )

    8051系列單晶片單晶片內部有一塊128 Bytes 可直接定址的記憶體區,其直

    接定址位址為80H~FFH,它是用來存放週邊元件控制、狀態及資料的暫存器,稱

    之為特殊功能暫存器( SFR )。下表說明特殊功能暫存器的名稱與各記憶體之間的

    關係。

    8

  • 以下將說明SFR中各暫存器的功能及用途:

    (1) 累加器( Accumulator,ACC ):

    累加器又可稱之為ACC或A暫存器,這是一個使用頻率頗高的一個通用暫

    存器,而有許多指令是以其為操作對象。

    (2) B暫存器:

    在做乘法指令( MUL )及除法指令( DIV )運算時,必須以 B 暫存器為操作對

    象之一。也就是說,在做乘法/除法運算之前必須將運算資放入 A 及 B 暫存器中,

    而運算之後的結果會放入 A,B 暫存器中。

    (3) 程式狀態字語( Program Status Word,PSW )暫存器:

    PSW暫存器主要是記錄及控制單晶片之運算。

    (4) 堆疊指標器( Stack Pointer,SP ):

    SP是管理堆疊的一個暫存器,用來指出最近一次資料推入(Push)堆疊時的內

    部資料記憶體位址。每次執行PUSH指令時,SP值自動加一,然後再將資料推入

    堆疊中;反之,執行POP指令時,資料先彈出(Pop)堆疊後,SP再自動減一。另

    外執行副程式呼叫指令( CALL )或中斷時,程式計數器( PC )的值亦會推入堆疊

    中,而執行副程式返回指( RET/RETI )時會將堆疊內的資料回存到程式計數器

    中,以正確地返回到原程式的呼叫點。

    (5) 資料指標器( Data Pointer,DPTR ):

    DPTR是一個16位元的暫存器,它是由兩個8位元的暫存器DPH(高位元組)

    及DPL(低位元組)所組成。DPTR的最主要用途是用來指向程式或資料記憶體的

    每一個位址,以便存取程式碼或資料。當DPTR指向程式記憶體時,我們可以用

    MOVC指令來讀取程式記憶體中的資料,當DPTR指向資料記憶體時,我們可用

    MOVX指令來存放或讀取資料記憶體中的資料。

    (6) P0、P1、P2、P3 埠暫存器:

    這四個埠暫存器可存放8051 單晶片的4個I/O埠的輸出閂鎖( Latch ),主要是

    9

  • 存放並保持I/O的輸出資料。

    (7) 中斷優先權( Interrupt Priority,IP )暫存器:

    每一個IP暫存器位元可用來控制各中斷的優先權階層,當設定為1時,表示

    享有較高的中斷優先權,而設定為0時其優先權較低。

    (8) 中斷致能( Interrupt Enable,IE ):

    由於所有的中斷皆為可遮罩的( Maskable ),這些中斷就是由IE暫存器來加

    以致能/除能( Enable/Disable )的。

    (9) TH0~TH2、TL0~TL2計時器/計數時暫存器:

    這3 組16 位元的暫存器是分別用來儲存計時器/計數器的計時/計數值。

    TH0、TH1、TH2為高位元組,TL0、TL1、TL2為低位元組。TH0及TL0對應於

    計時器/計數器0,TH1及TL1對應於計時器/計數器1,TH2及TL2對應於計時器/

    計數器2(8052系列)。

    (10) 計時器模式控制( Timer/Counter Mode Control,TMOD )暫存器:

    ● GATE:計時器動作閘控位元,當GATE=1 時,INT0 或INT1 接腳為高

    電位,同時TCON中的TR0 或TR1控制位元為1時,計時/計數器0 或1 才會動作。

    若GATE=0,則只要將TR0或TR1控制位元設為1,計時/計數器0 或1 即可動作。

    ● C / T :做計時器或計數器功能之選擇位元。C/T=1為計數器,由外部接

    腳T0或T1輸入計數脈波。C/T=0為計時器,由內部系統時脈提供繼十工作脈波。

    ● M1:模式選擇位元1

    ● M0:模式選擇位元0

    (11) 計時器控制( Timer Control,TCON )暫存器:

    ● TF1(TCON。7):計時器1溢位旗號,當計時溢位時,由硬體設定為1,在

    執行過相對的中斷服務常式後則自動清除為0。

    ● TR1(TCON。6):計時器1 啟動控制位元,可以由軟體來設定定或清除。

    ● TF0(TCON。5):計時器0溢位旗號,當計時溢位時,由硬體設定為1,在

    10

  • 執行過相對的中斷服務常式後則自動清除為0。

    ● TR0(TCON。4):計時器0 啟動控制位元,可以由軟體來設定定或清除。

    ● IE1(TCON。3):外部中斷1動作旗號,當外部中斷被偵測出來時,硬體自

    動設定此位元,在執行過中斷服務常式後,則消除為0。

    ● IT1(TCON。2):外部中斷1動作型態選擇,當IT1=1時,中斷型態為負緣

    觸發,當IT1=0 時,中斷型態則為低準位觸發。

    ● IE0(TCON。1):外部中斷0動作旗號,當外部中斷被偵測出來時,硬體自

    動設定此位元,在執行過中斷服務常式後,則消除為0。

    ● IT0(TCON。0):外部中斷0動作型態選擇,當IT1=1時,中斷型態為負緣

    觸發,當IT1=0 時,中斷型態則為低準位觸發。

    (12) 串列埠控制( Serial Port Control )暫存器:

    ● SM0(SCON。7):串列傳輸模式選擇,共有4種模式。

    ● SM1(SCON。6):串列傳輸模式選擇,共有4種模式。

    ● SM2(SCON。5):在串列傳輸動作模式2或模式3時,作多處處機控制功能

    用。

    ● REN(SCON。4):串列介面接收位元,當REN=1時表示接收致能。

    ● TB8(SCON。3):在模式2或3時,所送出的第9個資料位元,可以由軟體

    指令來做控制設定或清除。

    ● RB8(SCON。2):在模式2或3時,所接收到的第9個資料位元,存放在此

    位元中。

    ● TI(SCON。1):串列資料傳送中斷旗號,在工作模式0時,送出8個資料位

    元後,TI設為1,而在其他模式時,在送出停止位元時,TI也會被設為1;此位

    元必須由軟體來清除。

    ● RI(SCON。0):串列資料接收中斷旗號,在工作模式0時,收到第8個串列

    輸入資料位元後,RI會設為1,在其他模式時,收到停止位元的一半時,硬體

    11

  • 會自動將此位元設為1。此位元必須由軟體來清除。

    (13) 串列資料緩衝( Serial Data Buffer,SBUF )暫存器:

    8051單晶片的串列埠是全雙工的,故實際上SBUF暫存器分開為兩個不同的

    暫存器,一個是當作UART傳送資料的緩衝區,另一個是當作UART接收資料的

    緩衝區。若將資料寫到SBUF時,就會將資料放入傳送緩衝區,UART就會將這

    個資料轉成串列資料透過TXD傳出去。若去讀SBUF,就會讀到接收緩衝區的資

    料。

    2.3 89C51程式發展流程

    程式語言一般分為高階語言與低階語言,高階語言如BASIC、C、PASCAL

    等;低階語言如機械語言與組合語言。可以使用高階語言或程式語言,若是使用

    高階語言來設計,例如C語言,必須經過高階語言編譯器編譯成組合語言,再經

    組譯的過程產生機器碼,最後由連結器進行連結,必要時可以載入函數庫,產生

    可執行檔。若使用組合語言來寫控制程式,則直接送入組譯器進行組譯的工作。

    以高階語言進行程式設計,效率較高,可省下大量開發除錯的時間,加速產品上

    市的時間,而89C51等單晶片最常使用C語言編譯器,有各種版本與不同的功能,

    但價格通常在數萬元以上,對於學生或是一般業餘玩家是一個不小的負擔。

    8051/89C51是目前市面上相當受歡迎的單晶片微處理器之一,其相關產品與種類

    非常多,由於網際網路的盛行、PC的普及,許多有關8051的網頁、線上資料庫

    以及免費發展應用工具等,都可以從網路上下載獲得,學習8051/89C51單晶片相

    當方便。8051/89C51單晶片除了控制功能外,可利用原有的串列界面,搭配與PC

    的溝通程式,透過TCP/IP原理,使單晶片增加最先進的網路功能,應用範圍可說

    無遠弗屆。

    2.4 單晶片與多晶片比較

    1. 單晶片將五大單元做在同一晶片內。而多晶片必須由多個IC組合而成,如

    12

  • 8085是8Bit CPU以8255當I/O,以2732或2764當ROM,以6116當Ram,以8253當

    控制單元。

    2. 單晶片記憶容量非常小,如8051Ram有128Byte,Rom有4kByte,而多晶片

    有1Mbyte,Rom有64KByte。

    3. 單晶片微電腦的Ram,Rom均製造內部(除特殊用途),不須Address Bus,主要

    是以I/O Pore或Data Bus與外界溝通,使用方便。而多晶片須要以位址線,

    資料線,控制線來連接。

    4. 單晶片程式資料都儲存在Rom(程式記憶體),Ram(資料記憶體)只做資料暫

    存或緩衝用。而多晶片是使用者的程式資料儲存在Ram,而Rom只儲存系

    統程式。

    5. 單晶片主要用途在控制家電,如冷氣機、溫度控制、自助販賣機、微波爐、

    Lcd周邊應用等,而多晶片主要運用大量資料處理。如文書處理,繪圖…等。[6]

    2.5 電動機種類

    電動機即為工業界俗稱的馬達,種類依照使用電源可分成直流馬達(DC

    motor)與交流馬達(AC motor)兩大類,若再以控制方式、啟動方式與繞組方式分

    類則可分成步進馬達(Stepping motor)、伺服馬達(Servo motor)、無刷馬達(霍爾

    馬達)、單相交流馬達、三相感應馬達、串激式直流馬達、分激式直流馬達、與

    複激式直流馬達等。以下列表2-2比較各種馬達

    13

  • 表2-2 各種馬達的比較

    2.5.1 步進馬達的簡介

    步進馬達(Step Motor)又稱為步級馬達、脈波馬達,具有良好的應答性,容

    易使用在開迴路的控制系統中,且不需複雜的閉迴路回授控制,因此被廣泛的應

    用。例如電腦上所使用的印表機,使用步進馬達來做紙張的傳送/印字頭驅動;

    磁碟機使用步進馬達來做磁頭定位及讀卡機的卡片傳送等。圖2.6為馬達內部構

    照圖

    14

  • 圖2.6 馬達內部構照圖

    2.5.2 步進馬達的特點

    1.旋轉的角度和輸入的脈波數成正比,因此用開迴路控制即可達成高精確

    度。

    2. 啟動、停止、正反轉的應答性良好,控制容易。

    3. 每一步級的角度誤差小,而且沒有累積誤差。

    4. 靜止時,步進馬達有很高的保持轉矩(Holding Torque),可保持在停止的

    位置,不需使用煞車迴路就不會自由轉動。

    5. 可靠性高,整個系統的價格低。

    6. 輕薄短小,適用於多軸系統;保養容易,維修率低。

    2.5.3 步進馬達的種類

    步進馬達依定子線圈的相數不同可分成三相、四相及五相式,小型步進馬

    達以四相式較為普遍。圖2.7即為四相步進馬達的內部接線圖。當送入一個脈衝

    電流至步進馬達,可在相對應處停止轉動,這種走一步即停住而得到的角度稱為

    基本步進角。步進角會因激磁方式不同而有所不同。基本步進角的計算公式如下:

    15

  • 基本步進角= 360度/ (相數*轉子齒數)

    例如:四相50齒的基本步進角為360度/(4*50)=1.8度。也就是說,四相50齒的步進

    馬達走200 步正好是一圈。ㄧ般的小型步進馬達齒數為50齒較多。

    圖2.7 四相步進馬達的內部結構圖

    圖2.8 步進馬達驅動電路圖

    16

  • 2.5.4 步近馬達的用途

    由於使用步進馬達,無論視作定速轉速、變速轉速、角度控制或位置控制均

    可免除繁雜的機械結構,使產品達成小型化、響應速度快、定速、解析度高、定

    位準確等要求。因此步進馬達被大量的使用在自動控制系統上。

    2.5.5 步進馬達的激磁方式

    所謂激磁即是令步進馬達的線圈通過電流,以四相步進馬達而言,其定子

    線圈共有四個相,分別為A、/A、B 及/B。而步進馬達的激磁方式有下列三種方

    式:

    【1】一相激磁

    每次令一個線圈通過電流。步進角等於基本步進角,消耗電力小, 角精確度好,

    但轉矩小,振動較大。其激磁方式及時序如圖2.9 及 圖2.10 所示。

    圖 2.9 一相和二相激磁方式 17

  • 圖2.10 一相激磁時序圖

    【2】二相激磁:

    每次令兩個線圈通電。步進角等於基本步進角。轉矩大、振動小,是目前較受普

    通採用的激磁方式。其激磁方式及時序如圖2.9及圖2.11所示。

    圖2.11二相激磁時序圖

    【3】一、二相激磁:

    一、二相激磁又稱為半步激磁,採用一相及二相輪流激磁;每一步進角等於基本

    步進角的1/2,因此解析度提高一倍,且運轉更為平順,和二相激磁方式同樣受

    到普遍採用。其激磁方式及時序如圖2.12 及圖2.13 所示。

    18

  • 圖2.12 一、二相激磁方式

    圖2.13 一、二相激磁時序圖

    19

  • 第三章 硬體架構

    圖 3.1 流程圖

    20

  • 圖 3.2 硬體架構電路圖

    21

  • 3.1 電路、元件說明

    3.1.1 振盪電路

    圖 3.3 振盪電路

    因為 MCS-51 系列的單晶片內部有一個振盪器,只要外接一個石英晶體

    (Crystal)即可產生整個系統所需之時序脈波(Clock)。其中 XTAL1,XTAL2 為單

    晶片的第 18、19 腳。

    3.1.2 RESET

    此腳內部已有一個 50k~300k 的電阻器接地,所以只需接一個電容器至+Vcc

    及可在電源 ON 時產生開機重置的功能。但是,在 RESET 腳用一個 10k 的電阻

    器接地,以縮短開機重置的時間。

    3.1.3 40106

    40106 的內部有 6 個反向器,而在電路中因為使用了其中的 4 個反相器(1~9

    腳,7 接地),所以將未使用到的剩下兩個反相器的輸入端(11 腳、13 腳)接地,

    可以降低 40106 的耗電。圖 3.4 為 40106 地接腳圖。

    22

  • 圖 3.4 40106 接腳圖

    3.1.4 電晶體 2SC1384

    4 顆電晶體來控制步進馬達的 4 相繞組,電晶體做 ON-OFF 作用,基極有電

    流流通時電晶體導通,外加電源就供應電流到電晶體導通的那一相繞組

    (Winding)。

    3.1.5 二極體

    表 3-1 為常用二極體之規格

    電路圖中使用的二極體為 1N4001(D1~D4),其用途在避免電流回流燒毀電晶體。

    23

  • 第四章 軟體架構

    4.1 軟體架構流程

    A=激磁碼

    R=0步

    R←R+10

    反轉R步

    R←R+10

    正轉R步

    R←R-10

    正轉R步

    R←R-10

    反轉R步

    開始

    END

    R=0嗎?

    R=80嗎?

    A=激磁碼

    R=0步

    R←R+10

    反轉R步

    R←R+10

    正轉R步

    R←R-10

    正轉R步

    R←R-10

    反轉R步

    開始

    END

    R=0嗎?

    R=80嗎?

    圖 4.1 軟體架構圖

    24

  • 4.2 程式

    ORG 0000H

    MOV A,#11001100B

    MOV R1,#0

    LOOP: MOV R2,A

    MOV A,R1

    ADD A,#10

    MOV R1,A

    MOV R3,A

    MOV A,R2

    FOR: RL A

    MOV P1,A

    ACALL DELAY

    DJNZ R3,FOR

    ACALL HOLD

    MOV R2,A

    MOV A,R1

    ADD A,#10

    MOV R1,A

    MOV R3,A

    MOV A,R2

    REV: RR A

    MOV P1,A

    ACALL DELAY

    25

  • DJNZ R3,REV

    ACALL HOLD

    CJNE R1,#80,LOOP

    LOOP1:MOV R2,A

    MOV A,R1

    SUBB A,#10

    MOV R1,A

    MOV R3,A

    MOV A,R2

    FOR1: RL A

    MOV P1,A

    ACALL DELAY

    DJNZ R3,FOR1

    ACALL HOLD

    MOV R2,A

    MOV A,R1

    SUBB A,#10

    MOV R1,A

    MOV R3,A

    MOV A,R2

    REV1: RR A

    MOV P1,A

    ACALL DELAY

    DJNZ R3,REV1

    ACALL HOLD

    26

  • CJNE R1,#0, LOOP1

    HOLD: MOV R5,#200

    DL1: ACALL DELAY

    DJNZ R5,DL1

    RET

    DELAY: MOV R6,#25

    DL2: MOV R7,#200

    DJNZ R7,$

    DJNZ R6,DL2

    RET

    END

    27

  • 結論

    這次的專題主要是用 8051 程式來控制,我們學習到將 8051 和步進馬達結

    合,以求達到精確的控制步進馬達。雖然最後所做出來的實體看起來少了點,但

    確實花了不少心血。

    提高精確度,以及利用鍵盤來當作輸入埠讓此專題能更形完美;然後利用更

    大更有力的步進馬達,配合周邊一些硬體來便利觀測精確度也是此次專題可以改

    善的空間。

    經過了這次專題之後,使我們知道許多事情,真的必須實際去動手做,只有

    動手去做才能真正找到問題所在,發現以往在課本書面裡忽略的問題,也只有實

    際動手操作之後,所知所學才能真正成為自己的,不會忘記,最重要的是,當一

    切完成之後那份喜悅,更是無可言喻的美好。

    28

  • 參考文獻

    [1]謝澄漢,微電腦控制-8051單晶片理論與實作,益眾資訊有限公司,民86年。

    [2]鐘自立、張正賢,8051實作與燒錄器製作,宏友書局,民89年。

    [3]林蕙如、陳益良、彭慧美,8051 I/O介面實習,全華科技圖書股份有限公司,

    民85年。

    [4]吳一農,單晶片8051實務,松崗電腦圖書資料股份有限公司,民88年。

    [5]楊明豐,8051單晶片設計實務,碁資訊股份有限公司,民90年。

    [6]李齊雄、游國幹,8051單晶片微電腦原理與實作,儒林書局,民84年。

    29