【正文】
畢業(yè)設(shè)計(論文)課 題 名 稱 基于單片機(jī)的步進(jìn)電機(jī)控制設(shè)計 學(xué) 生 姓 名 學(xué) 號 系、年級專業(yè) 信息工程系﹑電子信息工程專業(yè) 指 導(dǎo) 教 師 職 稱 講 師 2009年 5 月 22 日摘 要本論文主要介紹了基于單片機(jī)的步進(jìn)電機(jī)控制的規(guī)則、硬件結(jié)構(gòu)、軟件代碼的編寫及工作原理、以及液晶模塊12864LCD的詳細(xì)介紹以及指令集。模擬出單片機(jī)系統(tǒng)下的步進(jìn)電機(jī)轉(zhuǎn)速控制,具有任意轉(zhuǎn)速選擇、轉(zhuǎn)動時間、正反轉(zhuǎn)、加速和減速設(shè)置、系統(tǒng)低功耗、可實現(xiàn)在線調(diào)試等特點。本系統(tǒng)是以單片機(jī)為其控制核心,以有源晶振構(gòu)成的電路作為時鐘信號,通過鍵盤輸入選擇向單片機(jī)控制系統(tǒng)發(fā)出步進(jìn)轉(zhuǎn)動控制命令,控制系統(tǒng)接收命令后做出一系列必要的判斷后,控電機(jī)的轉(zhuǎn)速、轉(zhuǎn)向等。本設(shè)計已通過了實驗仿真,運行穩(wěn)定,達(dá)到了基本的設(shè)計要求。本設(shè)計要分為兩大塊:一塊為硬件電路組成部分,一塊為軟件程序設(shè)計部分。在硬件電路里主要包括有源晶振部分、鍵盤輸入控制部分、電機(jī)驅(qū)動電路及液晶顯示部分等與單片機(jī)的接線設(shè)計;軟件編程方面主要是子程序和主程序的編寫,包括:初始化代碼、液晶驅(qū)動代碼、時間記錄代碼、表格數(shù)據(jù)代碼等。關(guān)鍵詞:單片機(jī);步進(jìn)電機(jī);12864LCD;指令集Abstract This thesis is mainly introduce the Prepared and working principles about regulation、structure of hardware、software code of stepping motor control based on MCU as well as detail information and instruction set on LCD Module 12864LCD. This thesis also simulates that under the system of singlechip stepping motor speed control has the disadvantages of changing speed、time arbitrary、Positive and negative transfer、installation of accelerated and deceleration、lowpower system and online debugging. Singlechip as core of control and the circuit made up by active crystal as clock signal, the stepper motor speed control system starts to making a series of necessary judgment and then control rotate speed and change direction when it receive the mand of stepper transfer control from singlechip control system by keyboard. As run steady, this project has already passed the simulation and has achieved the basic purpose. This project consists of two parties. One is hardware circuit and the other is software programming. In the part of hardware circuit is include active crystal、control system of keyboard input 、system of motor drive circuit and liquid crystal system. In the second part, Design of connection of singlechip、software prepared is the mainly prepared of Subroutine and Main program including initialization code 、liquid drive code 、the timing of recording code form data code[8].Key words: MCU;stepper motor;12864LCD;Instruction Set.目 錄摘 要 IAbstract II第1章 緒論 1 課題的來源 1 課題研究的意義 1 課題國內(nèi)研究現(xiàn)狀 1 課題研究的目的和主要內(nèi)容 2第2章 步進(jìn)電機(jī)方案設(shè)計與分析 3 方案提出 3 可行性分析 4 主要器件選擇 4第3章 系統(tǒng)硬件設(shè)計 6 AMPIRE128*64液晶屏介紹 6 HD61202及其指令集介紹 7 晶振、復(fù)位、驅(qū)動電路 9 液晶顯示屏與單片機(jī)接口電路 11 控鍵與單片機(jī)接口電路 11第4章 系統(tǒng)軟件設(shè)計 13 電機(jī)流程圖 13 液晶屏驅(qū)動代碼設(shè)計 14 固定字符顯示代碼 18 中斷子程序 19 漢字表 19 字符表 22 延時子程序 22 主函數(shù)程序 23第5章 系統(tǒng)仿真 25 Keil2編譯環(huán)境介紹 25 Proteus 仿真平臺 26 建立工程項目 28 Proteus中原理圖的繪制及文件的加載 32 開機(jī)界面顯示 32 控制界面顯示 33 仿真結(jié)果分析及解決方法 34 第6章 PCB板設(shè)計 35 35 PCB板參數(shù)設(shè)置 36 38結(jié)束語 40參考文獻(xiàn) 41致 謝 42附錄Ⅰ 總體電路圖 43第1章 緒論 課題的來源 步進(jìn)電機(jī)作為執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品之一, 廣泛應(yīng)用在各種自動化控制系統(tǒng)中。隨著微電子和計算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,在各個國民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。 步進(jìn)電機(jī)廣泛應(yīng)用在生產(chǎn)實踐的各個領(lǐng)域。它最大的應(yīng)用是在數(shù)控機(jī)床的制造中,因為步進(jìn)電機(jī)不需要A/D轉(zhuǎn)換,能夠直接將數(shù)字脈沖信號轉(zhuǎn)化成為角位移,所以被認(rèn)為是理想的數(shù)控機(jī)床的執(zhí)行元件。早期的步進(jìn)電機(jī)輸出轉(zhuǎn)矩比較小,無法滿足需要,在使用中和液壓扭矩放大器一同組成液壓脈沖馬達(dá)。隨著步進(jìn)電動機(jī)技術(shù)的發(fā)展,步進(jìn)電動機(jī)已經(jīng)能夠單獨在系統(tǒng)上進(jìn)行使用,成為了不可替代的執(zhí)行元件。比如步進(jìn)電動機(jī)用作數(shù)控銑床進(jìn)給伺服機(jī)構(gòu)的驅(qū)動電動機(jī),在這個應(yīng)用中,步進(jìn)電動機(jī)可以同時完成兩個工作,其一是傳遞轉(zhuǎn)矩,其二是傳遞信息。步進(jìn)電機(jī)也可以作為數(shù)控蝸桿砂輪磨邊機(jī)同步系統(tǒng)的驅(qū)動電動機(jī)。除了在數(shù)控機(jī)床上的應(yīng)用,步進(jìn)電機(jī)也可以并用在其他的機(jī)械上,比如作為自動送料機(jī)中的馬達(dá),作為通用的軟盤驅(qū)動器的馬達(dá),也可以應(yīng)用在打印機(jī)和繪圖儀中。 步進(jìn)電動機(jī)以其顯著的特點,在數(shù)字化制造時代發(fā)揮著重大的用途。伴隨著不同的數(shù)字化技術(shù)的發(fā)展以及步進(jìn)電機(jī)本身技術(shù)的提高,步進(jìn)電機(jī)將會在更多的領(lǐng)域得到應(yīng)用。 課題研究的意義 對基于單片機(jī)控制的步進(jìn)電機(jī)的轉(zhuǎn)速控制進(jìn)行設(shè)計:一方面是對所學(xué)知識的綜合運用,可以更好地學(xué)習(xí)單片機(jī)的應(yīng)用技術(shù),另一方面步進(jìn)電機(jī)可以發(fā)揮其結(jié)構(gòu)簡單、可靠性高和成本低的特點。使用恰當(dāng)?shù)臅r候,甚至可以和直流伺服電動機(jī)性能相媲美。 課題國內(nèi)研究現(xiàn)狀 上個世紀(jì)就出現(xiàn)了步進(jìn)電動機(jī),它是一種可以自由回轉(zhuǎn)的電磁鐵,動作原理和今天的反應(yīng)式步進(jìn)電動機(jī)沒有什么區(qū)別,也是依靠氣隙磁導(dǎo)的變化來產(chǎn)生電磁轉(zhuǎn)矩。在本世紀(jì)初,由于資本主義列強(qiáng)爭奪殖民地,造船工業(yè)發(fā)展很快,同時也使得步進(jìn)電動機(jī)的技術(shù)得到了長足的進(jìn)步。到了80年代后,由于廉價的微型計算機(jī)以多功能的姿態(tài)出現(xiàn),步進(jìn)電動機(jī)的控制方式更加靈活多樣。原來的步進(jìn)電機(jī)控制系統(tǒng)采用分立元件或者集成電路組成的控制回路,不僅調(diào)試安裝復(fù)雜,要消耗大量元器件,而且一旦定型之后,要改變控制方案就一定要重新設(shè)計電路。計算機(jī)則通過軟件來控制步進(jìn)電機(jī),更好地挖掘出電動機(jī)的潛力。因此,用計算機(jī)控制步進(jìn)電機(jī)已經(jīng)成為了一種必然的趨勢,也符合數(shù)字化的時代趨勢。步進(jìn)電機(jī)和普通電動機(jī)不同之處是步進(jìn)電機(jī)接受脈沖信號的控制。步進(jìn)電機(jī)靠一種叫環(huán)形分配器的電子開關(guān)器件,通過功率放大器使勵磁繞組按照順序輪流接通直流電源。由于勵磁繞組在空間中按一定的規(guī)律排列,輪流和直流電源接通后,就會在空間形成一種階躍變化的旋轉(zhuǎn)磁場,使轉(zhuǎn)子步進(jìn)式的轉(zhuǎn)動,隨著脈沖頻率的增高,轉(zhuǎn)速就會增大。步進(jìn)電機(jī)的旋轉(zhuǎn)同時與相數(shù)、分配數(shù)、轉(zhuǎn)子齒輪數(shù)有關(guān)。 現(xiàn)在比較常用的步進(jìn)電機(jī)包括反應(yīng)式步進(jìn)電機(jī)、永磁式步進(jìn)電機(jī)、混合式步進(jìn)電機(jī)和單相式步進(jìn)電機(jī)等。其中反應(yīng)式步進(jìn)電機(jī)的轉(zhuǎn)子磁路由軟磁材料制成,定子上有多相勵磁繞組,利用磁導(dǎo)的變化產(chǎn)生轉(zhuǎn)矩?,F(xiàn)階段,反應(yīng)式步進(jìn)電機(jī)獲得最多的應(yīng)用。 課題研究的目的和主要內(nèi)容 本文針對步進(jìn)電機(jī)控制的設(shè)計,首先介紹了選題的要求,之后詳細(xì)敘述了軟件和硬件的設(shè)計過程。 在時鐘脈沖的作用下,各個按鍵都能按照事先設(shè)定好的規(guī)則進(jìn)行控制。確定鍵能使界面從初始化顯示切換到步進(jìn)電機(jī)顯示界面,09十個數(shù)字鍵用來設(shè)置轉(zhuǎn)速,正轉(zhuǎn)和反轉(zhuǎn)控制電機(jī)的正反轉(zhuǎn)向,加速和減速鍵用來控制轉(zhuǎn)速,以十轉(zhuǎn)為基本單位進(jìn)行遞加或遞減,設(shè)置鍵可以設(shè)置轉(zhuǎn)向、精確的轉(zhuǎn)速、轉(zhuǎn)動時間,當(dāng)設(shè)置完成是可以用啟動鍵啟動。 硬件部分是由中央處理器(AT89C51單片機(jī)),控制部分(獨立式按鍵系統(tǒng)),顯示部分(12864LCD液晶顯示模塊)組成的,驅(qū)動部分(L298芯片);軟件部分的主要內(nèi)容是通過對步進(jìn)電機(jī)的控制、驅(qū)動程序進(jìn)行編寫和調(diào)試以實現(xiàn)步進(jìn)電機(jī)的功能。通過硬件和軟件調(diào)試,并針對問題分析修改后,步進(jìn)電機(jī)系統(tǒng)可以穩(wěn)定運行。步進(jìn)電機(jī)系統(tǒng)中各個部分之間通過數(shù)據(jù)的傳送最終完成了整個步進(jìn)電機(jī)的運行、顯示和進(jìn)行按鍵的功能。 最后論文對設(shè)計進(jìn)行了總結(jié),對設(shè)計中可以進(jìn)一步改善的地方提出了建議。第2章 步進(jìn)電機(jī)方案設(shè)計與分析 方案提出方案一:采用基本電路以及相關(guān)芯片對步進(jìn)電機(jī)進(jìn)行控制。本設(shè)計選用PMM8713四相步進(jìn)電機(jī)的脈沖分配器、SI—7300A四相功率驅(qū)動器,組成四相步進(jìn)電機(jī)的驅(qū)動電路,[5][4]: 方案一框圖方案二:用單片機(jī)作為步進(jìn)電機(jī)的核心控制器件,鍵盤調(diào)節(jié)轉(zhuǎn)速、時間等,液晶顯示當(dāng)前狀態(tài)。[1][2]: 方案二框圖相較之下用單片機(jī)控制的步進(jìn)電機(jī)要比采用基本電路控制的步進(jìn)電機(jī)要簡單很多,在價格上單片機(jī)可能稍微高上少許,但用單片機(jī)后可以省下許多控制器件,這樣看來反而便宜一些了。另外,在大學(xué)中我們已經(jīng)系統(tǒng)的學(xué)習(xí)了單片機(jī),對單片機(jī)的應(yīng)用編程比較熟悉??紤]到以上因素,采用了第二套方案。以下將會對所選方案的可行性和主要芯片的選擇做系統(tǒng)的介紹。 可行性分析 現(xiàn)如今,步進(jìn)電機(jī)廣泛應(yīng)用在生產(chǎn)實踐的各個領(lǐng)域,隨著步進(jìn)電動機(jī)技術(shù)的發(fā)展,步進(jìn)電動機(jī)已經(jīng)能夠單獨在系統(tǒng)上進(jìn)行使用,成為了不可替代的執(zhí)行元件。步進(jìn)電機(jī)結(jié)構(gòu)簡單,但是這種簡單也是相對的,步進(jìn)電機(jī)本身的代碼還是相當(dāng)繁雜,它要執(zhí)行一系列指令才能正確的完成一個簡單的操作,才能按照設(shè)計者的意志工作。那么步進(jìn)電機(jī)能否用單片機(jī)實現(xiàn)呢?答案是肯定的,現(xiàn)從以下幾個方面加以說明。 首先,我們設(shè)計的這個電機(jī)是一個功能相對比較簡單步進(jìn)電機(jī),不像其他的電機(jī)那樣功能復(fù)雜,它只要控制電機(jī)的轉(zhuǎn)速、轉(zhuǎn)動時間及正反轉(zhuǎn)即可,對于實現(xiàn)這樣一個功能,程序不是太復(fù)雜,用一塊單片機(jī)足以達(dá)到目的。其次,它的控件也比較少只有10個數(shù)字鍵和6個控制功能鍵,這些控鍵在Proteus中用彈跳式按鍵代替即可。第三,電機(jī)的顯示相對比較小、畫面簡單,只有轉(zhuǎn)向、轉(zhuǎn)速、旋轉(zhuǎn)時間等幾個漢字,這些在一塊稍大的液晶屏上就足以顯示。第四,就編程語言方面來說,編寫這樣一個簡單的步進(jìn)電機(jī)不需要什么高級的語言,C語言或匯編語言就足以完成,C語言是一種通用型的語言,編程靈活、可讀性強(qiáng)、移植性好;匯編語言是一種直接面向硬件的基礎(chǔ)語言,最接近機(jī)器語言,執(zhí)行速度快(本設(shè)計采用C語言編寫)。由以上幾點可知:用單片機(jī)設(shè)計步進(jìn)電機(jī)在硬件和軟件兩個方面都是可行的。 主要器件選擇 單片機(jī)的選擇 單片機(jī)的種類