二相步進電機控制系統(tǒng)的設計_第1頁
二相步進電機控制系統(tǒng)的設計_第2頁
二相步進電機控制系統(tǒng)的設計_第3頁
二相步進電機控制系統(tǒng)的設計_第4頁
二相步進電機控制系統(tǒng)的設計_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、隨著微電子和計算機技術的發(fā)展,步進電機的需求量與日俱增,它廣泛用于打印機、 電動玩具等消費類產(chǎn)品以及數(shù)控機床、工業(yè)機器人、醫(yī)療器械等機電產(chǎn)品中,其在各個國 民經(jīng)濟領域都有應用。研究步進電機的控制系統(tǒng),對提高控制精度和響應速度、節(jié)約能源 等都具有重要意義。本控制系統(tǒng)的設計,由硬件設計和軟件設計兩部分組成,完成二相步進電機的控制。 其中,硬件設計主要包括單片機系統(tǒng)、按鍵控制模塊、步進電機驅(qū)動模塊、數(shù)碼顯示模塊 等功能模塊的設計, 以及硬件電路在 PROTUS上的仿真。 軟件設計包括主程序以及各個模塊 的控制程序,最終實現(xiàn)對步進電機轉(zhuǎn)動方向及轉(zhuǎn)動模式(四拍,八拍)的控制,并且將步 進電機的步進數(shù)動態(tài)

2、顯示在 LED數(shù)碼管上。本系統(tǒng)具有智能性、實用性及可靠性的特點。 關鍵詞:二相步進電機 單片機 四拍 八拍 LED 顯示AbstractWith the development of microelectronics and computer art, step-by-step electric motor need amounts increase with each passing day , it is used for the products consuming a kind such as printer , electricity-driven toy broadly and n

3、umerical control machine tool , electromechanical products such as industry robot , medical apparatus and instruments are hit by, the person applies to each national economy field It both. Study step-by-step electric motor navar , having importance to improving under the control of accuracy and resp

4、onding to speed , the energy saving and so on. Control systematic design originally,the madeu p of designing two partsfrom the hardware design and the software , controlling accomplishing two-phase step-by-step electric motor. And among them, the hardware design includes the monolithic machine syste

5、m mainly , button under the control of module , step-by-stepelectric motor drive function module design such as module , numerical code display module, hardware circuit emulation onPROTUS. The software designs under thecontrol of procedure including the host procedure and each modules , realizes con

6、trolling turning direction to step-by-step electric motor and turning the pattern (four shoot , eight shoots) ultimately , step-by-step electric motor step-by-step number development is demonstrated and on LED numerical code. System has intelligence , pragmatism and the reliability characteristic.Ke

7、ywords: Electric motor MCU Four shoots Eight shoots LEDdisplay目錄摘要21 總體分析與解決方案 1問題的提出與簡述 1設計目的級系統(tǒng)功能 12 硬件電路設計模塊 2單片機系統(tǒng)原理 2二相步進電機工作原理分析 52.3 L298 驅(qū)動電路設計 7四位 LED數(shù)碼管顯示設計 7總體硬件仿真設計 103 軟件設計模塊 11整體流程分析與設計 11步進電機四拍,八拍流程分析與設計 11顯示模塊流程分析與設計 144 系統(tǒng)調(diào)試運行與仿真 155 小結(jié)與心得體會 16參考文獻 17附錄18二相步進電機控制系統(tǒng)的設計1 總體分析與解決方案問題的提

8、出與簡述如今,電動機在工農(nóng)業(yè)生產(chǎn)、人們?nèi)粘I钪衅鹬种匾淖饔?。步進電機是最常 見的一種控制電機,在各領域中得到廣泛應用。步進電機作為執(zhí)行元件,是機電一體化的 關鍵產(chǎn)品之一 , 廣泛應用在各種自動化控制系統(tǒng)中。隨著微電子和計算機技術的發(fā)展,步進電機的需求量與日俱增,在各個國民經(jīng)濟領域 都有應用。步進電機是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu)。當步進驅(qū)動器接收到一個 脈沖信號,它就驅(qū)動步進電機按設定的方向轉(zhuǎn)動一個固定的角度 ( 稱為“步距角” ),它的 旋轉(zhuǎn)是以固定的角度一步一步運行的??梢酝ㄟ^控制脈沖個數(shù)來控制角位移量,從而達到 準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和

9、加速度,從而達到 調(diào)速的目的。步進電機可以作為一種控制用的特種電機,其優(yōu)點是結(jié)構(gòu)簡單、運行可靠、控制方便。尤其是步距值不受電壓、溫度的變化的影響、誤差不會長期積累的特點,給實 際的應用帶來了很大的方便。它廣泛用于消費類產(chǎn)品(打印機、照相機) 、工業(yè)控制(數(shù)控 機床、工業(yè)機器人)、醫(yī)療器械等機電產(chǎn)品中。研究步進電機的控制和測量方法,對提高控 制精度和響應速度、節(jié)約能源等都具有重要意義。為此,本文設計了一個步進電機控制系 統(tǒng),可以實現(xiàn)對步進電機轉(zhuǎn)動方式和轉(zhuǎn)動方向的控制。設計目的及系統(tǒng)功能本設計的目的是以單片機為核心設計出一個二相步進電機控制系統(tǒng)。本系統(tǒng)采用ATmega128作為控制單元,通過按鍵實

10、現(xiàn)對二相步進電機轉(zhuǎn)動方向及轉(zhuǎn)動模式的控制,并且將步進電機的步進步數(shù)動態(tài)顯示在 LED數(shù)碼管上。通過本課題,查閱相關資料,由于本學期所學單片機課程型號為ATmega12,8 了解了ATmega128單片機控制的一些基本技術,掌握其控制系統(tǒng)的分析方法與實現(xiàn)方法 , 能對單片 機外圍電路設計進行系統(tǒng)學習與掌握; 另一方面, 通過設計步進電機控制系統(tǒng)的硬件電路, 控制程序和相應的電路圖,以此培養(yǎng)自己的自學和動手能力,從而為今后參加工作或進一 步深造打下良好的基礎。設計的步進電機控制系統(tǒng)有以下功能:1. 二相步進電機采用雙極性( H 橋)控制2用 K0-K1作為通電方式選擇鍵, K0為四拍, K1為八拍

11、3. 用 K2作為啟動 / 停止控制鍵4. 用 K3作為方向控制5. 用 4 位 LED數(shù)碼管顯示工作步數(shù)6. 用3 個發(fā)光二極管顯示狀態(tài):正轉(zhuǎn)時紅燈亮,反轉(zhuǎn)時黃燈亮,不轉(zhuǎn)時綠燈亮 考慮到二相步進電機需采用雙極性控制, 故電機的驅(qū)動模塊使用芯片 L298 實現(xiàn),接線簡潔, 穩(wěn)定性好。選定好設計方案后,可以由分析得到系統(tǒng)的總體原理框圖如下所示:圖 1 系統(tǒng)總體原理框圖2 硬件電路設計模塊單片機系統(tǒng)原理本次課題采用的單片機型號是 ATmega12,8 ATmega12為8 基于AVR RISC結(jié)構(gòu)的8位低功耗 CMO微S 處理器。由于其先進的指令集以及單周期指令執(zhí)行時, ATmega128的 數(shù)據(jù)

12、吞吐率高 達1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。 AVR 內(nèi)核具有豐富的指 令集和 32個通用工作寄存器。所有的寄存器都直接與算邏單元 (ALU) 相連接,使得一條指 令可以在一個時鐘周期內(nèi)同時訪問兩個獨立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并 且具有比普通的復雜指令集微處理器高 10 倍的數(shù)據(jù)吞吐率。 ATmega128具 有如下特點: 128K 字節(jié)的系統(tǒng)內(nèi)可編程 Flash( 具有在寫的過程中還可以讀的能力,即 RWW、) 4K字節(jié)的 EEPRO,M4K字節(jié)的SRAM、53個通用 I/O 口線、 32個通用工作寄存器、實時時鐘 RTC、4個靈 活的具有比較

13、模式和 PWM功 能的定時器 / 計數(shù)器(T/C) 、兩個USAR、T面向字節(jié)的兩線接口 TWI、 8通道10位ADC( 具有可選的可編程增益 ) 、具有片內(nèi)振蕩器的可編程看門狗定時器、 SPI串行端口、與 IEEE 規(guī)范兼容的 JTAG測試接口 ( 此接口同時還可以用于片上調(diào)試 ) ,以 及六種可以通過軟件選擇的省電模式。ATmega128 AV有R整套的開發(fā)工具,包括 C編譯器,宏匯編,程序調(diào)試器 / 仿真器和評 估板。芯片引腳圖如下所示:圖 2 ATmega128的引腳圖本次課設所使用的單片機功能主要有單片機的 I/O口以及定時器 /計數(shù)器功能。作為通 用數(shù)字I/O 使用時,所有AVRI

14、 /O 端口都具有真正的讀 - 修改- 寫功能。這意味著用SBI 或 CBI 指令改變某些管腳的方向 ( 或者是端口電平、禁止 / 使能上拉電阻 ) 時不會無意地改 變其他管腳的方向 ( 或者是端口電平、 禁止/ 使能上拉電阻 ) 。輸出緩沖器具有對稱的驅(qū)動 能力,可以輸出或吸收大電流,直接驅(qū)動 LED。所有的端口引腳都具有與電壓無關的上拉電 阻,并有保護二極管與 VCC 和地相連。每個端口都有三個 I/O 存儲器地址:數(shù)據(jù)寄存器 PORT、x 數(shù)據(jù)方向寄存器 DDRx 和端口輸入引腳 PINx 。數(shù)據(jù)寄存器和數(shù)據(jù)方向寄存 器為讀/ 寫寄存器,而端口輸入引腳為只讀寄存器。當寄存器 SFIOR

15、的上拉禁止位 PUD 置 位時所有端口的全部引腳的上拉電阻都被禁止。 DDxn 位于 DDRx 寄存器, PORTxn 位于 PORTx寄 存器, PINxn 位于PINx 寄存器。DDxn 以來選擇引腳的方向。 當DDxn 為1“ 時, Pxn 配置為輸出; 否則為輸入。 當引腳配置為輸入時, 若PORTxn為 1 “,上拉電阻將使能。 如果需要關閉這個上拉電阻,可以將 PORTxn清 零,或者將這個引腳配置為輸出。復位時各 引腳為三態(tài),即使此時沒有時鐘在運行。當引腳配置為輸出時,若 PORTxn為 1 “,引腳輸 出高電平(1 “) ,否則輸出低電平 (“0“)。在( 高阻態(tài)) 三態(tài)(DD

16、xn, PORTxn= 0b00) 輸 出高電平 (DDxn, PORTxn = 0b11) 兩種狀態(tài)之間進行切換時,上拉電阻使能 (DDxn, PORTxn = 0b01) 或輸出低電平 (DDxn,PORTxn = 0b10) 這兩種模式必然會有一個發(fā)生。 通常,上拉電阻使能是完全可以接受的,因為高阻環(huán)境不在意是強高電平輸出還是上拉輸 出。如果使用情況不是這樣子,可以通過置位 SFIOR 寄存器的 PUD 來禁止所有端口的上拉 電阻。在上拉輸入和輸出低電平之間切換也有同樣的問題。 必須選擇高阻態(tài) (DDxn,PORTxn = 0b00) 或輸出高電平 (DDxn, PORTxn = 0b1

17、1) 作為中間步驟。其 PROTU仿S 真圖如下所 示:圖 3 ATmega128的仿真圖本次課設采用單片機的定時器 /計數(shù)器功能的 CTC模式, T/C(TCNT0)和輸出比較寄存器 (OCR0)為8位寄存器。 中斷請求信號位于定時器中斷標志寄存器 TIFR。與定時器相關的所有 中斷都可以通過定時器中斷屏蔽寄存器 TIMSK 單獨進行屏蔽。 在CTC 模式(WGM01:0= 2) 里 OCR0寄 存器用于調(diào)節(jié)計數(shù)器的分辨率。當計數(shù)器的數(shù)值 TCNT0 等于 OCR0時 計數(shù)器清零。 OCR0定 義了計數(shù)器的 top 值,亦即計數(shù)器的分辨率。 這個模式可以在極大程度上控制比較 匹配輸出的頻率,

18、也簡化了外部事件計數(shù)的操作。 CTC模式的時序圖如下所示。計數(shù)器數(shù)值 TCNT0一直增加直到 TCNT0與OCR匹0 配,然后 TCNT0 清零。圖4 CTC模式的時序圖二相步進電機工作原理分析步進電機一般分為永磁式 (PM)、反應式(VR)和混合式 (HB)3種類型。目前,二相混合式 步進電機的應用最為廣泛。圖 5為二相六線式步進電機的工作原示意圖。由圖可知,它有 2 個繞組,且每個繞組都有一個中間抽頭。因此,二相步進電機也就有了 6根引線。當電機中 的繞組通電后,其定子磁極產(chǎn)生磁場,將轉(zhuǎn)子吸合到相應的磁極處。若繞組在控制脈沖的 作用下,通電方向使定子在順時針方向輪流產(chǎn)生磁場,則電機可順時針

19、轉(zhuǎn)動;通電方向使 定子在逆時針方向輪流產(chǎn)生磁場,則電機可逆時針轉(zhuǎn)動??刂泼}沖每作用一次,通電方向 就變化一次,使電機轉(zhuǎn)動一步,即一個步距角。脈沖頻率越高,電機轉(zhuǎn)動也就越快。本次課設所使用的二相步進電機需要采用雙極性的接法。雙極性則是指步進電機線圈 中電流的流動方向不是單向的 , 即繞組線圈中的電流有時沿某一方向流動 ,有時按相反方向 流動。步進電機的雙極性驅(qū)動電路如圖 2-5 所示它使用 8個晶體管來驅(qū)動 2組相位。雙極性驅(qū) 動電路可以同時驅(qū)動四線式或六線式的二相步進電機。對于二相六線式步進電機而言 , 2 個繞組的中間抽頭 Vdd1和Vdd2都懸空。根據(jù)步進電機的工作原理 , 當控制器給驅(qū)動

20、器發(fā)出脈 沖信號時 ,驅(qū)動器經(jīng)過環(huán)形分配器和功率放大后 , 電機繞組通電的順序為AA BB AA BB, 其4個狀態(tài)按順序周而復始進行變化 ,電機轉(zhuǎn)動 ; 若通電時序就變 為BB AA BB AA時,電機就逆向轉(zhuǎn)動。步進電機運轉(zhuǎn)時 ,當達林頓管 Q1和Q4導通時, 線圈中電流方向為 A A; 當林頓管 Q2和Q3導通時, 線圈中電流方向為 A A??梢? 步進電機 線圈中的電流方向在運轉(zhuǎn)過程中是不斷改變的。圖 5 二相步進電機原理圖圖6 雙極性驅(qū)動電路任務要求需要對二相步進電機進行四拍, 八拍的控制。 其兩者的區(qū)別在于通電時序的 不一樣,四拍的通電方式為: AA BB AA BB ,而八拍需要

21、在此基礎上進行細分, 在中間插入,其通電方式為: AA AABB BB BBAAAA AABB BB BBAA 。由對應的通電方式,在結(jié)合圖 6,便可以得到對應的單片機管腳 , 的電平變化情況,繪制出步進電機的四拍,八拍控制方式表格。如下所示:表 1 步進電機四拍控制通電方式時序單片機管腳位通電的對應二轉(zhuǎn)換 16線圈進制數(shù)進制數(shù)10010001002H21000100008H30001000101H40100010004H表 2 步進電機八拍控制通電方式時序單片機管腳位通電的線圈對應二進制數(shù)轉(zhuǎn)換 16 進制數(shù)10010001002H2101010100AH31000100008H4100110

22、0109H50001000101H60101010105H70100010004H80110011006H由上述所得表格, 便可以通過控制單片機 I/O 口輸出高低電平變化來實現(xiàn)步進電機的四 拍,八拍運轉(zhuǎn)。在編寫程序時,設置好控制字,在 I/O 口做循環(huán)輸出,便實現(xiàn)了單片機對步 進電機的控制。由于單片機單獨代負載能力較差,步進電機與單片機之間需要接入步進電 機的驅(qū)動電路。2.3 L298 驅(qū)動電路設計由課題任務要求可知,二相步進電機需采用雙極性( H橋)控制,故考慮使用芯片 L298 來驅(qū)動步進電機。 L298N 為雙全橋步進電機專用驅(qū)動芯片,內(nèi)部包含 4信道邏輯驅(qū)動電路, 是一種二相和四相步

23、進電機的專用驅(qū)動器,可同時驅(qū)動 2個二相或 1個四相步進電機,內(nèi)含 二個H-Bridge 的高電壓、大電流雙全橋式驅(qū)動器, 接收標準 TTL邏輯準位信號,可驅(qū)動46V、 2A以下的步進電機,且可以直接透過電源來調(diào)節(jié)輸出電壓;此芯片可直接由單片機的IO端口來提供模擬時序信號。在接入步進電機時, OUTl,OUT2 ,OUT3,OUT4接二相步進電機的A, A, B, B ,二相步進電機的對應管腳以圖 6為準, input1input4 接單片機的 I/O口,用 來控制單片機的正反轉(zhuǎn)以及四拍,八拍通電方式。芯片的內(nèi)部結(jié)構(gòu)如下圖所示:圖7 L298內(nèi)部結(jié)構(gòu)圖由圖6與圖7比較可以看出, L298內(nèi)部集

24、成有 2個H橋路,對應的輸入接口為: IN1位,IN2 為,IN3為,IN4為。對應的輸出接口為: OUT1接 A ,OUT2接 A ,OUT3接B ,OUT4接 B 。PROTUS 仿真圖為:圖8 驅(qū)動電路 PROTU仿S真圖四位 LED數(shù)碼管顯示設計任務要求需采用 4位 LED數(shù)碼管顯示工作步數(shù),通過查閱相關資料,在仿真時采用型號 7SEG-MPX4-C共C陰極數(shù)碼管顯示。其 PROTU仿S 真圖如下所示:圖9 數(shù)碼管顯示仿真圖單片機的 PD口接數(shù)碼管輸入管腳 ABCDEF以G及DP(可以不用), PE口接 4位數(shù)碼管的片 選端口1234,7段數(shù)碼管對應的顯示數(shù)值與輸入信號的關系可以由下表

25、得到。表 3 七段數(shù)碼管顯示功能表單片機管腳輸入顯示十六進制PD0PD1PD2PD3PD4PD5PD6ABCDEFG1111110O3FH0110000106H110110125BH111100134FH0110011466H101101156DH001111167DH1110000707H111111187FH111101196FH由上表可以得到顯示數(shù)字與單片機管腳輸入信號的對應關系。只需要控制單片機的 PD 口輸出信號即可顯示數(shù)字, 在程序設計中,定義 7段顯示數(shù)組為 seven_seg10= 0X3f, 0X06, 0X5b, 0X4f,0X66,0X6d,0X7d,0X07,0X7f,

26、0X6f 即可使數(shù)碼管顯示數(shù)字。總體硬件仿真設計由前面各硬件部分的設計分析,以及控制系統(tǒng)的總體原理框圖可以得到系統(tǒng)的硬件PROTU仿S真圖為:圖10 系統(tǒng)仿真原理圖通過硬件仿真圖可以看到,以單片機 ATmega12為8 核心的控制系統(tǒng),由 PA口與 PB口進 行開關按鍵的設置,具體為: PB1接K2啟動/ 停止開關,高電平為停止狀態(tài),低電平為啟動 狀態(tài); PA7接K3正/ 反轉(zhuǎn)開關,高電平為正轉(zhuǎn),低電平為反轉(zhuǎn); PA0接K0四拍通電方式,按一 次即可使電機進行四拍運轉(zhuǎn); PA2接 K1八拍通電方式,按一次使電機進行八拍運轉(zhuǎn)。PE 口與PD口外接 4位LED數(shù)碼管,顯示步進步數(shù),具體接線方式已在

27、前面敘述,通過控 制PE口的電平信號,達到片選的目的, 進而實現(xiàn)4位數(shù)值的顯示。 PF口作為輸出口外接負載, 具體由 PF7接綠色發(fā)光二極管,使其在電機停轉(zhuǎn)時亮; PF5接紅色放光二極管,使其在電機 正轉(zhuǎn)時亮; PF4接黃色發(fā)光二極管,使其在電機發(fā)轉(zhuǎn)時亮。 PF0-PF3外接驅(qū)動電路 L298的4 個輸入端,具體為 PF0接IN2,PF1接IN1,PF2接IN3,PF3接IN4;即對應圖 2-5 的,L298再外 接二相步進電機,這樣即可通過控制單片機的 PF口輸出電平來實現(xiàn)二相步進電機的啟動, 停止,正反轉(zhuǎn)以及四拍,八拍運轉(zhuǎn)。具體工作過程需通過對單片機編程來實現(xiàn)。3 軟件設計模塊總體流程分析

28、與設計軟件模塊的分析需要根據(jù)硬件電路的設計來進行, 基于上述硬件電路的分析設計, 對整 個程序流程需要有個整體的思考與判斷。由硬件電路的設計可以看出,程序需要實現(xiàn)以下 幾個功能:通過開關按鍵實現(xiàn)電機的啟用與停止,正轉(zhuǎn)與反轉(zhuǎn),以及四拍,八拍的運行方 式;由 4位 LED數(shù)碼管實現(xiàn)步進步數(shù)的顯示; 3個發(fā)光二極管顯示電機的狀態(tài)。程序設計 的總體思想是單片機通過判斷按鍵輸入電平變化從而選擇正反轉(zhuǎn)以及四八拍的工作方式。 通過單片機的定時器 /計數(shù)器 2實現(xiàn)步數(shù)計數(shù)的功能; 由定時器/計數(shù)器 0實現(xiàn)單片機 PF口 輸出正反轉(zhuǎn)信號以及四拍, 八拍控制字, 同時發(fā)光二極管顯示狀態(tài), 主程序流程圖如圖 3-1

29、 所示。程序設計主要采用主程序調(diào)用子程序的模式來進行,定義子程序 display ()在主 程序中循環(huán)實現(xiàn)單片機的持續(xù)運行。在 display ()中,調(diào)用子程序 saomiao()實現(xiàn)對按鍵的掃描以達到選定電機運行狀 態(tài)的目的,由 if 判斷語句設計,先判斷啟動 / 停止按鍵接口 PB1,接著判斷正 / 反轉(zhuǎn)按鍵接 口 PA7,設定變量 flag (正轉(zhuǎn)位 0 ,反轉(zhuǎn)為 2 ),然后判斷四八拍方式選擇按鍵,此時開啟 定時器 / 計數(shù)器 0 和定時器 / 計數(shù)器 2,以及確定循環(huán)變量 tt (四拍為 4,八拍為 8),由于 定時器/ 計數(shù)器的啟動,使得單片機的 PF口輸出對應方式的控制字,讓電

30、機開始運轉(zhuǎn);計 數(shù)功能啟用,實現(xiàn)步進數(shù)的計數(shù),最后通過片選數(shù)組 scank 選定數(shù)碼管的位數(shù),并由七 段數(shù)組 seven_seg ,顯示對應的數(shù)值。最后重新判斷 PB口數(shù)值,若啟動 / 停止按鍵為停 止,則關閉定時器 /計數(shù)器 0和定時器 /計數(shù)器 2,系統(tǒng)停止,具體完整程序參見附錄。 步進電機四拍,八拍流程分析與設計程序設計需要對步進電機進行四拍控制與八拍控制,有前面所述可知,兩者的區(qū)別在 于對電機的通電時序不一樣。由表 2-1 與表 2-2 可以得到電機的控制字,在程序設計時, 首先定義電機的控制字數(shù)組, 由于存在正反轉(zhuǎn)兩種情況, 所以定義一個 2 維數(shù)組為 d48= 0x22,0x28,

31、0x21,0x24,0x22,0x2a,0x28,029,0x21,0x25,0x24,0x26,0x14,0x11,0x18,0x12,0x14,0x15,0x11, 0x19, 0x18, 0x1a,0x12,0x16 ;分別為電機正轉(zhuǎn) 4拍,正轉(zhuǎn) 8拍,反轉(zhuǎn) 4 拍,反轉(zhuǎn) 8 拍的控制字;通 過給單片機 PF口賦予上述數(shù)值即可實現(xiàn)步進電機的不同方式運轉(zhuǎn), 同時由發(fā)光二極管顯示 電機的工作狀態(tài)。圖 11 主程序流程圖在程序設計時,需要使用單片機的定時器 / 計數(shù)器 0 功能實現(xiàn)四拍,八拍運轉(zhuǎn)。在程序 中,首先有 saomiao()程序判斷所選功能按鍵,同時開啟定時器 / 計數(shù)器 0,在其初

32、始化 程序里,設定寄存器的值為 TCNT0 = 0x64,OCR0 = 0x9C,當 TCNT0的計數(shù)值與 OCR0相 等時,觸發(fā)中斷子程序 timer0_comp_isr() ,在中斷子程序里, 先重新賦予寄存器數(shù)值 TCNT0 = 0x64 , OCR0 = 0x9C,以便下次觸發(fā)中斷程序,然后將設定的計數(shù)變量 timer0 加 1,判 斷 timer0 是否為 50 ,當累加到 50 后,將 timer0 清零,變量 i 加 1 ,將對應的控制字 d4flag+paii%tt賦給 PF口,使電機轉(zhuǎn)動,讓循環(huán)重復上述過程。 flag+pai 確定了電機的正反轉(zhuǎn)以及四拍,八拍方式;當為四拍時

33、, tt=4 ,為八拍時, tt=8 ;這樣即可使控制 字循環(huán)輸出給 PF口,從而實現(xiàn)了步進電機的四拍,八拍運轉(zhuǎn)。其程序流程圖如下所示:圖 12 步進電機四拍,八拍流程圖程序通過控制寄存器值 TCCR0來控制定時器 / 計數(shù)器 0 的啟動與停止,當 TCCR0=0x0E 時,定時器 /計數(shù)器 0啟動, TCNT0累加,當 TCNTO=OCR時0,觸發(fā)相應的中斷子程序,設 定當 timer0=50 時,將控制字輸出到 PF 口,實現(xiàn)了一定的延時,可以調(diào)整這個數(shù)值以達到 滿意的延時效果,將 TCCR0設置為 0x00來屏蔽定時器 / 計數(shù)器 0功能。顯示模塊流程分析與設計硬件設計得到了 4位LED

34、數(shù)碼管的顯示電路, 由單片機的 PD口輸出顯示數(shù)字, 有PE口 用來輸出片選信號。由前所述表 3 可知, ABCDEF管G腳對應的數(shù)字顯示,得到了 10個對應 的十六進制數(shù),在程序設計中,先定義了 7 段數(shù)碼管顯示數(shù)組 seven_seg10=0X3f,0X06,0X5b,0X4f,0X66, 0X6d, 0X7d, 0X07, 0X7f, 0X6f,以及片選數(shù)組 scan4=0Xf7,0Xfb,0Xfd,0Xfe;使用定時器 / 計數(shù)器 2 來實現(xiàn)計數(shù)的功能,其工作方式與定時器 / 計數(shù)器 0一樣,在時序上與定時器 /計數(shù)器 0保持一致,以達到步進與計 數(shù)同步的效果,其設定的 TCNT2與

35、OCR2值與前面一致。其程序流程圖如下所示:圖 13 中斷計數(shù)程序流程圖通過定時器/計數(shù)器 2實現(xiàn)計數(shù)的功能, 要顯示出計數(shù)結(jié)果, 需要給單片機 PE口對應 的片選信號來實現(xiàn)每位數(shù)值的顯示。其對應的程序代碼如下 :PORTE =scank;ex 文件,在 PROTU仿S 真環(huán)境里,在單片機中載入該文件,這樣便實 現(xiàn)了單片機程序的載入。在系統(tǒng)完成后測試系統(tǒng),檢查硬件和軟件是否能夠協(xié)調(diào)運行,并 對系統(tǒng)出現(xiàn)的情況進行分析,看是否能夠達到系統(tǒng)創(chuàng)作之初所設想的效果,如達不到則重 新修改系統(tǒng)的硬件結(jié)構(gòu)或者修改軟件的程序部分,直到達到設計需要為止。本系統(tǒng)的設計 思路為:首先從整體上劃分出各功能模塊,然后硬件

36、和軟件同時進行依次完成各個功能模 塊,最后將各個模塊聯(lián)系起來完成整個系統(tǒng)。在硬件調(diào)試的過程中,遇到了很多問題。主要有: 按鍵設計完成后,在多次運行過程 中發(fā)現(xiàn)按鍵是否按下難以直觀準確判斷,在此處進行改進設計,為每一個按鍵接上一個發(fā)光二極管,當有鍵按下時,相對應的發(fā)光二極管變亮,使得按鍵動作形象直觀。在步進電機與驅(qū)動電路的連接中,需要準確的接好各個管腳,因為程序里的控制字對應著這些管腳電平的變化,不能隨便接,單片機的輸出口與驅(qū)動電路的輸出口也需要一一對應,否則電 機無法按正常的設計運轉(zhuǎn)。軟件測試的時候也有些問題,主要有:控制步進電機轉(zhuǎn)動的程序段完成后,調(diào)試發(fā)現(xiàn) 對步進電機的轉(zhuǎn)速過小,查閱資料后發(fā)

37、現(xiàn)設計思路不太合理,原先的設計思路是用主程序 控制步進電機轉(zhuǎn)動,采用延時方式控制步進電機速度,由定時器處理按鍵鍵值;隨即改進 程序,主程序用來處理按鍵,由定時器控制步進電機轉(zhuǎn)動,步進電機轉(zhuǎn)動速度由定時器定 時時間決定,可調(diào)范圍較廣。問題得到解決,不僅擴大了步進電機轉(zhuǎn)速的控制范圍,也使 得單片機對步進電機轉(zhuǎn)速的控制更加精確。5 小結(jié)與心得體會經(jīng)過與同小組同學的共同努力,近一個多星期的學習,本次課程設計課題二相步進電 機控制系統(tǒng)告一段落。二相步進電機控制系統(tǒng)的設計主要分為硬件設計和軟件設計兩個部 分:硬件設計主要是把單片機系統(tǒng) ( ATmega12)8、按鍵控制模塊、步進電機驅(qū)動模塊(L298)、

38、 數(shù)碼顯示模塊等各個硬件功能模塊及其它元件合理搭配并連接起來使其能夠為軟件運行提 供一個硬件平臺。軟件設計主要是通過編寫程序代碼,實現(xiàn)對整個系統(tǒng)的控制。在系統(tǒng)上電復位后程序 自動運行,通過接受外部的鍵盤操作修改系統(tǒng)參數(shù)值,控制步進電機的啟停,以及四拍, 八拍通電方式和轉(zhuǎn)動方向的改變;定時器 T0 根據(jù)系統(tǒng)參數(shù)控制步進電機的轉(zhuǎn)動;定時器T2 實現(xiàn)步進電機步進步數(shù)的動態(tài)顯示。本系統(tǒng)具有一定的實用功能 , 能基本符合實際應用需求,本次設計由于設計時間較短, 個人能力以及精力等因素的限制,加之設計經(jīng)驗的不足,該系統(tǒng)還有許多不盡如人意的地 方。該系統(tǒng)具有一定的缺陷,并不完美,但仿真成功的那一刻的感覺是很

39、美妙的,努力有 了收獲,學的很充實。通過這次課程設計,使我從一開始對系統(tǒng)的不太熟悉,到能開發(fā)一 個簡單的系統(tǒng), 在這整個過程中我學到了很多東西, 掌握了一些常用的開發(fā)技能 , 也發(fā)現(xiàn)了 大量的問題,有些在設計過程中已經(jīng)解決,有些還有待今后慢慢學習。近十天的課程設計,使我受益匪淺。我不僅了解了把理論設計轉(zhuǎn)換成現(xiàn)實實物的整個 過程。如:查閱資料,方案選定,電路設計,仿真電路圖,檢查調(diào)試,軟件流程控制,編 寫調(diào)試軟件到整個軟硬件系統(tǒng)的調(diào)試,最后直到系統(tǒng)完成。為我以后的設計打下了一個好 的基礎。而且使我更加熟悉了整個設計的過程和一些軟件及硬件設備的使用。對我以后面 對這方面的工作有了很大的幫助,鍛煉了

40、自己解決實際問題的能力,也培養(yǎng)了我們求真務 實的態(tài)度。參考文獻1 于海生,計算機控制技術 M, 北京:機械工業(yè)出版社, 2007 年2 張毅剛,新編 MCS-51單片機應用設計 M, 哈爾濱:哈爾濱工業(yè)大學出版社, 2006 年3 陳冬云,ATmega128單 片機原理與開發(fā)指導 M, 北京:機械工業(yè)出版社, 2005 年4 王彥平,RPOTEL 99電 路設計指南 M, 北京:清華大學出版社, 2000年5 沈美明, IBM-PC匯編語言程序設計 M, 北京:清華大學出版社, 2001 年6 沈精虎,Protel99 入門與提高 M, 北京:人民郵電出版社, 2007 年7 吳金戌,8051

41、 單片機時間與應用 M, 北京:清華大學出版社, 2003 年8 胡輝,單片機原理及應用設計 M, 北京:中國水利水電出版社, 2007 年 附錄:程序代碼:/ICC-AVR application builder : 2009/6/30 14:09:19/ Target : M128/ Crystal:#include #include unsigned char d48=0x22,0x28,0x21,0x24,0x22,0x2a,0x28,0x29,0x21,0x25,0x24,0x26,0x14,0x11,0x18,0x12,0x14,0x15,0x11,0x19,0x18,0x1a,0

42、x12,0x16;/ 定義電機四 八拍正反轉(zhuǎn)控制字選擇掃描顯示數(shù)碼管,送 PE口選數(shù)碼unsigned char scan4=0Xf7,0Xfb,0Xfd,0Xfe;/*管*/unsigned char seven_seg10=0X3f,0X06,0X5b,0X4f,0X66,0X6d,0X7d,0X07,0X7f,0X6f; /*0-9 的字符 表,送PF口顯示 */unsigned char flag,pai,tt,i,key,k=0;/ 定義正反轉(zhuǎn),模式,拍數(shù),按鍵值,數(shù)碼管選 位typedef structchar baiqian;char geshi;conut; / 定義計數(shù)變量c

43、onut now;void port_init(void)/ 端口初始化程序PORTA = 0xFF;DDRA = 0x00;PORTB = 0xFF;DDRB = 0x00;PORTC= 0x00; /m103 output onlyDDRC =0x00;PORTD= 0x00;DDRD =0xFF;PORTE= 0x00;DDRE =0xFF;PORTF= 0x00;DDRF =0xFF;PORTG= 0x00;DDRG =0x00;/TIMER0 initialize - prescale:256/ WGM: CTC/ desired value: 100Hz/ actual value

44、: %)void timer0_init(void)/定時器 0初始化TCCR0 = 0x00; /stopASSR = 0x00; /set async modeTCNT0 = 0x64; /set countOCR0 = 0x9C;/start timerunsigned char timer0=0;#pragma interrupt_handler timer0_comp_isr:16void timer0_comp_isr(void)/compare occured TCNT0=OCR0TCNT0 = 0x64;OCR0 = 0x9C;timer0+;if(timer0=50)timer0=0;i+;PORTF=d4flag+paii%tt;if(i=100)i=0;/TIMER2 initialize - prescale:256/ WGM: Normal/ de

溫馨提示

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

評論

0/150

提交評論