




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、摘要隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,它廣泛用于打印機(jī)、電動(dòng)玩具等消費(fèi)類產(chǎn)品以及數(shù)控機(jī)床、工業(yè)機(jī)器人、醫(yī)療器械等機(jī)電產(chǎn)品中,其在各個(gè)國民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。研究步進(jìn)電機(jī)的控制系統(tǒng),對提高控制精度和響應(yīng)速度、節(jié)約能源等都具有重要意義。本控制系統(tǒng)的設(shè)計(jì),由硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分組成,完成二相步進(jìn)電機(jī)的控制。其中,硬件設(shè)計(jì)主要包括單片機(jī)系統(tǒng)、按鍵控制模塊、步進(jìn)電機(jī)驅(qū)動(dòng)模塊、數(shù)碼顯示模塊等功能模塊的設(shè)計(jì),以及硬件電路在protus上的仿真。軟件設(shè)計(jì)包括主程序以及各個(gè)模塊的控制程序,最終實(shí)現(xiàn)對步進(jìn)電機(jī)轉(zhuǎn)動(dòng)方向及轉(zhuǎn)動(dòng)模式(四拍,八拍)的控制,并且將步進(jìn)電機(jī)的步進(jìn)數(shù)動(dòng)態(tài)顯示在led數(shù)碼
2、管上。本系統(tǒng)具有智能性、實(shí)用性及可靠性的特點(diǎn)。關(guān)鍵詞:二相步進(jìn)電機(jī) 單片機(jī) 四拍 八拍 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 numerical co
3、ntrol 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 responding to s
4、peed , the energy saving and so on. control systematic design originally, the made up of designing two parts from 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 system mainly
5、, button under the control of module , step-by-step electric motor drive function module design such as module , numerical code display module, hardware circuit emulation on protus. the software designs under the control of procedure including the host procedure and each modules , realizes controlli
6、ng 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.keywords
7、: electric motor mcu four shoots eight shoots leddisplay目錄摘要.21總體分析與解決方案.11.1問題的提出與簡述.1 1.2設(shè)計(jì)目的級(jí)系統(tǒng)功能.12 硬件電路設(shè)計(jì)模塊.2 2.1單片機(jī)系統(tǒng)原理.2 2.2二相步進(jìn)電機(jī)工作原理分析.52.3 l298驅(qū)動(dòng)電路設(shè)計(jì).72.4 四位led數(shù)碼管顯示設(shè)計(jì).72.5總體硬件仿真設(shè)計(jì).103軟件設(shè)計(jì)模塊.113.1整體流程分析與設(shè)計(jì).11 3.2步進(jìn)電機(jī)四拍,八拍流程分析與設(shè)計(jì).113.3顯示模塊流程分析與設(shè)計(jì).144 系統(tǒng)調(diào)試運(yùn)行與仿真.155 小結(jié)與心得體會(huì).16參考文獻(xiàn).17附錄.18二相步進(jìn)
8、電機(jī)控制系統(tǒng)的設(shè)計(jì)1總體分析與解決方案1.1問題的提出與簡述 如今,電動(dòng)機(jī)在工農(nóng)業(yè)生產(chǎn)、人們?nèi)粘I钪衅鹬种匾淖饔谩2竭M(jìn)電機(jī)是最常見的一種控制電機(jī),在各領(lǐng)域中得到廣泛應(yīng)用。步進(jìn)電機(jī)作為執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品之一, 廣泛應(yīng)用在各種自動(dòng)化控制系統(tǒng)中。隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,在各個(gè)國民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的??梢酝ㄟ^控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過
9、控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。步進(jìn)電機(jī)可以作為一種控制用的特種電機(jī),其優(yōu)點(diǎn)是結(jié)構(gòu)簡單、運(yùn)行可靠、控制方便。尤其是步距值不受電壓、溫度的變化的影響、誤差不會(huì)長期積累的特點(diǎn),給實(shí)際的應(yīng)用帶來了很大的方便。它廣泛用于消費(fèi)類產(chǎn)品(打印機(jī)、照相機(jī))、工業(yè)控制(數(shù)控機(jī)床、工業(yè)機(jī)器人)、醫(yī)療器械等機(jī)電產(chǎn)品中。研究步進(jìn)電機(jī)的控制和測量方法,對提高控制精度和響應(yīng)速度、節(jié)約能源等都具有重要意義。為此,本文設(shè)計(jì)了一個(gè)步進(jìn)電機(jī)控制系統(tǒng),可以實(shí)現(xiàn)對步進(jìn)電機(jī)轉(zhuǎn)動(dòng)方式和轉(zhuǎn)動(dòng)方向的控制。1.2設(shè)計(jì)目的及系統(tǒng)功能本設(shè)計(jì)的目的是以單片機(jī)為核心設(shè)計(jì)出一個(gè)二相步進(jìn)電機(jī)控制系統(tǒng)。本系統(tǒng)采用atmega1
10、28作為控制單元,通過按鍵實(shí)現(xiàn)對二相步進(jìn)電機(jī)轉(zhuǎn)動(dòng)方向及轉(zhuǎn)動(dòng)模式的控制,并且將步進(jìn)電機(jī)的步進(jìn)步數(shù)動(dòng)態(tài)顯示在led數(shù)碼管上。通過本課題,查閱相關(guān)資料,由于本學(xué)期所學(xué)單片機(jī)課程型號(hào)為atmega128,了解了atmega128單片機(jī)控制的一些基本技術(shù),掌握其控制系統(tǒng)的分析方法與實(shí)現(xiàn)方法,能對單片機(jī)外圍電路設(shè)計(jì)進(jìn)行系統(tǒng)學(xué)習(xí)與掌握;另一方面,通過設(shè)計(jì)步進(jìn)電機(jī)控制系統(tǒng)的硬件電路,控制程序和相應(yīng)的電路圖,以此培養(yǎng)自己的自學(xué)和動(dòng)手能力,從而為今后參加工作或進(jìn)一步深造打下良好的基礎(chǔ)。設(shè)計(jì)的步進(jìn)電機(jī)控制系統(tǒng)有以下功能:1. 二相步進(jìn)電機(jī)采用雙極性(h橋)控制2用k0-k1作為通電方式選擇鍵,k0為四拍,k1為八拍
11、3. 用k2作為啟動(dòng)/停止控制鍵4. 用k3作為方向控制5. 用4位led數(shù)碼管顯示工作步數(shù)6. 用3個(gè)發(fā)光二極管顯示狀態(tài):正轉(zhuǎn)時(shí)紅燈亮,反轉(zhuǎn)時(shí)黃燈亮,不轉(zhuǎn)時(shí)綠燈亮考慮到二相步進(jìn)電機(jī)需采用雙極性控制,故電機(jī)的驅(qū)動(dòng)模塊使用芯片l298實(shí)現(xiàn),接線簡潔,穩(wěn)定性好。選定好設(shè)計(jì)方案后,可以由分析得到系統(tǒng)的總體原理框圖如下所示:圖1系統(tǒng)總體原理框圖2硬件電路設(shè)計(jì)模塊2.1 單片機(jī)系統(tǒng)原理 本次課題采用的單片機(jī)型號(hào)是atmega128,atmega128為基于avr risc結(jié)構(gòu)的8位低功耗cmos微處理器。由于其先進(jìn)的指令集以及單周期指令執(zhí)行時(shí),atmega128 的數(shù)據(jù)吞吐率高達(dá)1 mips/mhz,從
12、而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。avr 內(nèi)核具有豐富的指令集和32個(gè)通用工作寄存器。所有的寄存器都直接與算邏單元(alu) 相連接,使得一條指令可以在一個(gè)時(shí)鐘周期內(nèi)同時(shí)訪問兩個(gè)獨(dú)立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的復(fù)雜指令集微處理器高10 倍的數(shù)據(jù)吞吐率。atmega128 具有如下特點(diǎn):128k 字節(jié)的系統(tǒng)內(nèi)可編程flash( 具有在寫的過程中還可以讀的能力,即rww)、4k字節(jié)的eeprom,4k字節(jié)的sram、53個(gè)通用i/o 口線、32個(gè)通用工作寄存器、實(shí)時(shí)時(shí)鐘rtc、4個(gè)靈活的具有比較模式和pwm 功能的定時(shí)器/ 計(jì)數(shù)器(t/c)、兩個(gè)usart、面向字
13、節(jié)的兩線接口twi、8通道10位adc( 具有可選的可編程增益)、具有片內(nèi)振蕩器的可編程看門狗定時(shí)器、spi串行端口、與ieee 1149.1 規(guī)范兼容的jtag測試接口( 此接口同時(shí)還可以用于片上調(diào)試),以及六種可以通過軟件選擇的省電模式。atmega128 avr有整套的開發(fā)工具,包括c編譯器,宏匯編,程序調(diào)試器/ 仿真器和評(píng)估板。芯片引腳圖如下所示:圖2 atmega128的引腳圖本次課設(shè)所使用的單片機(jī)功能主要有單片機(jī)的i/o口以及定時(shí)器/計(jì)數(shù)器功能。作為通用數(shù)字i/o 使用時(shí),所有avr i/o 端口都具有真正的讀- 修改- 寫功能。這意味著用sbi 或cbi 指令改變某些管腳的方向(
14、 或者是端口電平、禁止/ 使能上拉電阻) 時(shí)不會(huì)無意地改變其他管腳的方向( 或者是端口電平、禁止/ 使能上拉電阻)。輸出緩沖器具有對稱的驅(qū)動(dòng)能力,可以輸出或吸收大電流,直接驅(qū)動(dòng)led。所有的端口引腳都具有與電壓無關(guān)的上拉電阻,并有保護(hù)二極管與vcc 和地相連。每個(gè)端口都有三個(gè)i/o 存儲(chǔ)器地址:數(shù)據(jù)寄存器 portx、 數(shù)據(jù)方向寄存器 ddrx 和端口輸入引腳 pinx。數(shù)據(jù)寄存器和數(shù)據(jù)方向寄存器為讀/ 寫寄存器,而端口輸入引腳為只讀寄存器。當(dāng)寄存器sfior 的上拉禁止位pud 置位時(shí)所有端口的全部引腳的上拉電阻都被禁止。ddxn 位于ddrx 寄存器, portxn 位于portx 寄存器
15、, pinxn 位于pinx 寄存器。ddxn 以來選擇引腳的方向。當(dāng)ddxn 為1“ 時(shí), pxn 配置為輸出;否則為輸入。當(dāng)引腳配置為輸入時(shí),若portxn 為1“,上拉電阻將使能。如果需要關(guān)閉這個(gè)上拉電阻,可以將portxn 清零,或者將這個(gè)引腳配置為輸出。復(fù)位時(shí)各引腳為三態(tài),即使此時(shí)沒有時(shí)鐘在運(yùn)行。當(dāng)引腳配置為輸出時(shí),若portxn 為1“,引腳輸出高電平(1“),否則輸出低電平(“0“)。在( 高阻態(tài)) 三態(tài)(ddxn, portxn = 0b00) 輸出高電平(ddxn, portxn = 0b11) 兩種狀態(tài)之間進(jìn)行切換時(shí),上拉電阻使能(ddxn, portxn = 0b01)
16、或輸出低電平(ddxn,portxn = 0b10) 這兩種模式必然會(huì)有一個(gè)發(fā)生。通常,上拉電阻使能是完全可以接受的,因?yàn)楦咦璀h(huán)境不在意是強(qiáng)高電平輸出還是上拉輸出。如果使用情況不是這樣子,可以通過置位sfior 寄存器的pud 來禁止所有端口的上拉電阻。在上拉輸入和輸出低電平之間切換也有同樣的問題。必須選擇高阻態(tài)(ddxn,portxn = 0b00) 或輸出高電平(ddxn, portxn = 0b11) 作為中間步驟。其protus仿真圖如下所示:圖3 atmega128的仿真圖本次課設(shè)采用單片機(jī)的定時(shí)器/計(jì)數(shù)器功能的ctc模式, t/c(tcnt0)和輸出比較寄存器(ocr0)為8位寄存
17、器。中斷請求信號(hào)位于定時(shí)器中斷標(biāo)志寄存器tifr。與定時(shí)器相關(guān)的所有中斷都可以通過定時(shí)器中斷屏蔽寄存器timsk 單獨(dú)進(jìn)行屏蔽。在ctc 模式(wgm01:0 = 2) 里ocr0 寄存器用于調(diào)節(jié)計(jì)數(shù)器的分辨率。當(dāng)計(jì)數(shù)器的數(shù)值tcnt0 等于ocr0 時(shí)計(jì)數(shù)器清零。ocr0 定義了計(jì)數(shù)器的top 值,亦即計(jì)數(shù)器的分辨率。這個(gè)模式可以在極大程度上控制比較匹配輸出的頻率,也簡化了外部事件計(jì)數(shù)的操作。ctc模式的時(shí)序圖如下所示。計(jì)數(shù)器數(shù)值tcnt0一直增加直到tcnt0與ocr0匹配,然后tcnt0 清零。圖4 ctc模式的時(shí)序圖2.2 二相步進(jìn)電機(jī)工作原理分析步進(jìn)電機(jī)一般分為永磁式(pm)、反應(yīng)式
18、(vr)和混合式(hb)3種類型。目前,二相混合式步進(jìn)電機(jī)的應(yīng)用最為廣泛。圖5為二相六線式步進(jìn)電機(jī)的工作原示意圖。由圖可知,它有2個(gè)繞組,且每個(gè)繞組都有一個(gè)中間抽頭。因此,二相步進(jìn)電機(jī)也就有了6根引線。當(dāng)電機(jī)中的繞組通電后,其定子磁極產(chǎn)生磁場,將轉(zhuǎn)子吸合到相應(yīng)的磁極處。若繞組在控制脈沖的作用下,通電方向使定子在順時(shí)針方向輪流產(chǎn)生磁場,則電機(jī)可順時(shí)針轉(zhuǎn)動(dòng);通電方向使定子在逆時(shí)針方向輪流產(chǎn)生磁場,則電機(jī)可逆時(shí)針轉(zhuǎn)動(dòng)。控制脈沖每作用一次,通電方向就變化一次,使電機(jī)轉(zhuǎn)動(dòng)一步,即一個(gè)步距角。脈沖頻率越高,電機(jī)轉(zhuǎn)動(dòng)也就越快。本次課設(shè)所使用的二相步進(jìn)電機(jī)需要采用雙極性的接法。雙極性則是指步進(jìn)電機(jī)線圈中電流的
19、流動(dòng)方向不是單向的,即繞組線圈中的電流有時(shí)沿某一方向流動(dòng),有時(shí)按相反方向流動(dòng)。步進(jìn)電機(jī)的雙極性驅(qū)動(dòng)電路如圖2-5所示它使用8個(gè)晶體管來驅(qū)動(dòng)2組相位。雙極性驅(qū)動(dòng)電路可以同時(shí)驅(qū)動(dòng)四線式或六線式的二相步進(jìn)電機(jī)。對于二相六線式步進(jìn)電機(jī)而言, 2個(gè)繞組的中間抽頭vdd1和vdd2都懸空。根據(jù)步進(jìn)電機(jī)的工作原理,當(dāng)控制器給驅(qū)動(dòng)器發(fā)出脈沖信號(hào)時(shí),驅(qū)動(dòng)器經(jīng)過環(huán)形分配器和功率放大后,電機(jī)繞組通電的順序?yàn)?其4個(gè)狀態(tài)按順序周而復(fù)始進(jìn)行變化,電機(jī)轉(zhuǎn)動(dòng); 若通電時(shí)序就變?yōu)闀r(shí),電機(jī)就逆向轉(zhuǎn)動(dòng)。步進(jìn)電機(jī)運(yùn)轉(zhuǎn)時(shí),當(dāng)達(dá)林頓管q1和q4導(dǎo)通時(shí),線圈中電流方向?yàn)閍;當(dāng)林頓管q2和q3導(dǎo)通時(shí),線圈中電流方向?yàn)閍??梢?步進(jìn)電機(jī)線圈
20、中的電流方向在運(yùn)轉(zhuǎn)過程中是不斷改變的。圖5 二相步進(jìn)電機(jī)原理圖圖6 雙極性驅(qū)動(dòng)電路 任務(wù)要求需要對二相步進(jìn)電機(jī)進(jìn)行四拍,八拍的控制。其兩者的區(qū)別在于通電時(shí)序的不一樣,四拍的通電方式為:,而八拍需要在此基礎(chǔ)上進(jìn)行細(xì)分,在中間插入,其通電方式為: 。由對應(yīng)的通電方式,在結(jié)合圖6,便可以得到對應(yīng)的單片機(jī)管腳p1.0,p1.1,p1.2,p1.3的電平變化情況,繪制出步進(jìn)電機(jī)的四拍,八拍控制方式表格。如下所示:表1 步進(jìn)電機(jī)四拍控制通電方式時(shí)序單片機(jī)管腳位通電的線圈對應(yīng)二進(jìn)制數(shù)轉(zhuǎn)換16進(jìn)制數(shù)p1.3p1.2p1.1p1.010010001002h21000100008h30001000101h4010
21、0010004h表2 步進(jìn)電機(jī)八拍控制通電方式時(shí)序單片機(jī)管腳位通電的線圈對應(yīng)二進(jìn)制數(shù)轉(zhuǎn)換16進(jìn)制數(shù)p1.3p1.2p1.1p1.010010001002h2101010100ah31000100008h41001100109h50001000101h60101010105h70100010004h80110011006h由上述所得表格,便可以通過控制單片機(jī)i/o口輸出高低電平變化來實(shí)現(xiàn)步進(jìn)電機(jī)的四拍,八拍運(yùn)轉(zhuǎn)。在編寫程序時(shí),設(shè)置好控制字,在i/o口做循環(huán)輸出,便實(shí)現(xiàn)了單片機(jī)對步進(jìn)電機(jī)的控制。由于單片機(jī)單獨(dú)代負(fù)載能力較差,步進(jìn)電機(jī)與單片機(jī)之間需要接入步進(jìn)電機(jī)的驅(qū)動(dòng)電路。2.3 l298驅(qū)動(dòng)電路設(shè)
22、計(jì)由課題任務(wù)要求可知,二相步進(jìn)電機(jī)需采用雙極性(h橋)控制,故考慮使用芯片l298來驅(qū)動(dòng)步進(jìn)電機(jī)。l298n 為雙全橋步進(jìn)電機(jī)專用驅(qū)動(dòng)芯片,內(nèi)部包含4信道邏輯驅(qū)動(dòng)電路,是一種二相和四相步進(jìn)電機(jī)的專用驅(qū)動(dòng)器,可同時(shí)驅(qū)動(dòng)2個(gè)二相或1個(gè)四相步進(jìn)電機(jī),內(nèi)含二個(gè)h-bridge 的高電壓、大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)ttl邏輯準(zhǔn)位信號(hào),可驅(qū)動(dòng)46v、2a以下的步進(jìn)電機(jī),且可以直接透過電源來調(diào)節(jié)輸出電壓;此芯片可直接由單片機(jī)的io端口來提供模擬時(shí)序信號(hào)。在接入步進(jìn)電機(jī)時(shí),outl,out2 ,out3,out4接二相步進(jìn)電機(jī)的,,二相步進(jìn)電機(jī)的對應(yīng)管腳以圖6為準(zhǔn),input1input4接單片機(jī)的i/o
23、口,用來控制單片機(jī)的正反轉(zhuǎn)以及四拍,八拍通電方式。芯片的內(nèi)部結(jié)構(gòu)如下圖所示:圖7 l298內(nèi)部結(jié)構(gòu)圖由圖6與圖7比較可以看出,l298內(nèi)部集成有2個(gè)h橋路,對應(yīng)的輸入接口為:in1位p1.1,in2為p1.0,in3為p1.2,in4為p1.3。對應(yīng)的輸出接口為:out1接,out2接,out3接,out4接。protus仿真圖為:圖8 驅(qū)動(dòng)電路protus仿真圖2.4 四位led數(shù)碼管顯示設(shè)計(jì) 任務(wù)要求需采用4位led數(shù)碼管顯示工作步數(shù),通過查閱相關(guān)資料,在仿真時(shí)采用型號(hào)7seg-mpx4-cc共陰極數(shù)碼管顯示。其protus仿真圖如下所示:圖9 數(shù)碼管顯示仿真圖單片機(jī)的pd口接數(shù)碼管輸入管
24、腳abcdefg以及dp(可以不用),pe口接4位數(shù)碼管的片選端口1234,7段數(shù)碼管對應(yīng)的顯示數(shù)值與輸入信號(hào)的關(guān)系可以由下表得到。表3 七段數(shù)碼管顯示功能表單片機(jī)管腳輸入顯示十六進(jìn)制pd0pd1pd2pd3pd4pd5pd6abcdefg1111110o3fh0110000106h110110125bh111100134fh0110011466h1.01101156dh001111167dh1110000707h111111187fh111101196fh由上表可以得到顯示數(shù)字與單片機(jī)管腳輸入信號(hào)的對應(yīng)關(guān)系。只需要控制單片機(jī)的pd口輸出信號(hào)即可顯示數(shù)字,在程序設(shè)計(jì)中,定義7段顯示數(shù)組為sev
25、en_seg10= 0x3f, 0x06, 0x5b, 0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f即可使數(shù)碼管顯示數(shù)字。2.5 總體硬件仿真設(shè)計(jì) 由前面各硬件部分的設(shè)計(jì)分析,以及控制系統(tǒng)的總體原理框圖可以得到系統(tǒng)的硬件protus仿真圖為: 圖10 系統(tǒng)仿真原理圖 通過硬件仿真圖可以看到,以單片機(jī)atmega128為核心的控制系統(tǒng),由pa口與pb口進(jìn)行開關(guān)按鍵的設(shè)置,具體為:pb1接k2啟動(dòng)/停止開關(guān),高電平為停止?fàn)顟B(tài),低電平為啟動(dòng)狀態(tài);pa7接k3正/反轉(zhuǎn)開關(guān),高電平為正轉(zhuǎn),低電平為反轉(zhuǎn);pa0接k0四拍通電方式,按一次即可使電機(jī)進(jìn)行四拍運(yùn)轉(zhuǎn);pa2接k1八拍通電方
26、式,按一次使電機(jī)進(jìn)行八拍運(yùn)轉(zhuǎn)。 pe口與pd口外接4位led數(shù)碼管,顯示步進(jìn)步數(shù),具體接線方式已在前面敘述,通過控制pe口的電平信號(hào),達(dá)到片選的目的,進(jìn)而實(shí)現(xiàn)4位數(shù)值的顯示。pf口作為輸出口外接負(fù)載,具體由pf7接綠色發(fā)光二極管,使其在電機(jī)停轉(zhuǎn)時(shí)亮;pf5接紅色放光二極管,使其在電機(jī)正轉(zhuǎn)時(shí)亮;pf4接黃色發(fā)光二極管,使其在電機(jī)發(fā)轉(zhuǎn)時(shí)亮。pf0-pf3外接驅(qū)動(dòng)電路l298的4個(gè)輸入端,具體為pf0接in2,pf1接in1,pf2接in3,pf3接in4;即對應(yīng)圖2-5的p1.0-p1.3,l298再外接二相步進(jìn)電機(jī),這樣即可通過控制單片機(jī)的pf口輸出電平來實(shí)現(xiàn)二相步進(jìn)電機(jī)的啟動(dòng),停止,正反轉(zhuǎn)以及
27、四拍,八拍運(yùn)轉(zhuǎn)。具體工作過程需通過對單片機(jī)編程來實(shí)現(xiàn)。3軟件設(shè)計(jì)模塊3.1總體流程分析與設(shè)計(jì) 軟件模塊的分析需要根據(jù)硬件電路的設(shè)計(jì)來進(jìn)行,基于上述硬件電路的分析設(shè)計(jì),對整個(gè)程序流程需要有個(gè)整體的思考與判斷。由硬件電路的設(shè)計(jì)可以看出,程序需要實(shí)現(xiàn)以下幾個(gè)功能:通過開關(guān)按鍵實(shí)現(xiàn)電機(jī)的啟用與停止,正轉(zhuǎn)與反轉(zhuǎn),以及四拍,八拍的運(yùn)行方式;由4位led數(shù)碼管實(shí)現(xiàn)步進(jìn)步數(shù)的顯示;3個(gè)發(fā)光二極管顯示電機(jī)的狀態(tài)。程序設(shè)計(jì)的總體思想是單片機(jī)通過判斷按鍵輸入電平變化從而選擇正反轉(zhuǎn)以及四八拍的工作方式。通過單片機(jī)的定時(shí)器/計(jì)數(shù)器2實(shí)現(xiàn)步數(shù)計(jì)數(shù)的功能;由定時(shí)器/計(jì)數(shù)器0實(shí)現(xiàn)單片機(jī)pf口輸出正反轉(zhuǎn)信號(hào)以及四拍,八拍控制字
28、,同時(shí)發(fā)光二極管顯示狀態(tài),主程序流程圖如圖3-1所示。程序設(shè)計(jì)主要采用主程序調(diào)用子程序的模式來進(jìn)行,定義子程序display()在主程序中循環(huán)實(shí)現(xiàn)單片機(jī)的持續(xù)運(yùn)行。在display()中,調(diào)用子程序saomiao()實(shí)現(xiàn)對按鍵的掃描以達(dá)到選定電機(jī)運(yùn)行狀態(tài)的目的,由if判斷語句設(shè)計(jì),先判斷啟動(dòng)/停止按鍵接口pb1,接著判斷正/反轉(zhuǎn)按鍵接口pa7,設(shè)定變量flag(正轉(zhuǎn)位0,反轉(zhuǎn)為2),然后判斷四八拍方式選擇按鍵,此時(shí)開啟定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器2,以及確定循環(huán)變量tt(四拍為4,八拍為8),由于定時(shí)器/計(jì)數(shù)器的啟動(dòng),使得單片機(jī)的pf口輸出對應(yīng)方式的控制字,讓電機(jī)開始運(yùn)轉(zhuǎn);計(jì)數(shù)功能啟用,實(shí)
29、現(xiàn)步進(jìn)數(shù)的計(jì)數(shù),最后通過片選數(shù)組scank選定數(shù)碼管的位數(shù),并由七段數(shù)組seven_seg,顯示對應(yīng)的數(shù)值。最后重新判斷pb口數(shù)值,若啟動(dòng)/停止按鍵為停止,則關(guān)閉定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器2,系統(tǒng)停止,具體完整程序參見附錄。3.2步進(jìn)電機(jī)四拍,八拍流程分析與設(shè)計(jì) 程序設(shè)計(jì)需要對步進(jìn)電機(jī)進(jìn)行四拍控制與八拍控制,有前面所述可知,兩者的區(qū)別在于對電機(jī)的通電時(shí)序不一樣。由表2-1與表2-2可以得到電機(jī)的控制字,在程序設(shè)計(jì)時(shí),首先定義電機(jī)的控制字?jǐn)?shù)組,由于存在正反轉(zhuǎn)兩種情況,所以定義一個(gè)2維數(shù)組為d48= 0x22,0x28,0x21,0x24,0x22,0x2a,0x28,029,0x21,0x
30、25,0x24,0x26,0x14,0x11,0x18,0x12,0x14,0x15,0x11, 0x19, 0x18, 0x1a,0x12,0x16;分別為電機(jī)正轉(zhuǎn)4拍,正轉(zhuǎn)8拍,反轉(zhuǎn)4拍,反轉(zhuǎn)8拍的控制字;通過給單片機(jī)pf口賦予上述數(shù)值即可實(shí)現(xiàn)步進(jìn)電機(jī)的不同方式運(yùn)轉(zhuǎn),同時(shí)由發(fā)光二極管顯示電機(jī)的工作狀態(tài)。圖11 主程序流程圖 在程序設(shè)計(jì)時(shí),需要使用單片機(jī)的定時(shí)器/計(jì)數(shù)器0功能實(shí)現(xiàn)四拍,八拍運(yùn)轉(zhuǎn)。在程序中,首先有saomiao()程序判斷所選功能按鍵,同時(shí)開啟定時(shí)器/計(jì)數(shù)器0,在其初始化程序里,設(shè)定寄存器的值為tcnt0 = 0x64,ocr0 = 0x9c,當(dāng)tcnt0的計(jì)數(shù)值與ocr0相等
31、時(shí),觸發(fā)中斷子程序timer0_comp_isr(),在中斷子程序里,先重新賦予寄存器數(shù)值tcnt0 = 0x64,ocr0 = 0x9c,以便下次觸發(fā)中斷程序,然后將設(shè)定的計(jì)數(shù)變量timer0加1,判斷timer0是否為50,當(dāng)累加到50后,將timer0清零,變量i加1,將對應(yīng)的控制字d4flag+paii%tt賦給pf口,使電機(jī)轉(zhuǎn)動(dòng),讓循環(huán)重復(fù)上述過程。flag+pai確定了電機(jī)的正反轉(zhuǎn)以及四拍,八拍方式;當(dāng)為四拍時(shí),tt=4,為八拍時(shí),tt=8;這樣即可使控制字循環(huán)輸出給pf口,從而實(shí)現(xiàn)了步進(jìn)電機(jī)的四拍,八拍運(yùn)轉(zhuǎn)。其程序流程圖如下所示:圖12 步進(jìn)電機(jī)四拍,八拍流程圖 程序通過控制寄存
32、器值tccr0來控制定時(shí)器/計(jì)數(shù)器0的啟動(dòng)與停止,當(dāng)tccr0=0x0e時(shí),定時(shí)器/計(jì)數(shù)器0啟動(dòng),tcnt0累加,當(dāng)tcnto=ocr0時(shí),觸發(fā)相應(yīng)的中斷子程序,設(shè)定當(dāng)timer0=50時(shí),將控制字輸出到pf口,實(shí)現(xiàn)了一定的延時(shí),可以調(diào)整這個(gè)數(shù)值以達(dá)到滿意的延時(shí)效果,將tccr0設(shè)置為0x00來屏蔽定時(shí)器/計(jì)數(shù)器0功能。3.3顯示模塊流程分析與設(shè)計(jì) 硬件設(shè)計(jì)得到了4位led數(shù)碼管的顯示電路,由單片機(jī)的pd口輸出顯示數(shù)字,有pe口用來輸出片選信號(hào)。由前所述表3可知,abcdefg管腳對應(yīng)的數(shù)字顯示,得到了10個(gè)對應(yīng)的十六進(jìn)制數(shù),在程序設(shè)計(jì)中,先定義了7段數(shù)碼管顯示數(shù)組seven_seg10=0x
33、3f,0x06,0x5b,0x4f,0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f,以及片選數(shù)組scan4=0xf7,0xfb,0xfd,0xfe;使用定時(shí)器/計(jì)數(shù)器2來實(shí)現(xiàn)計(jì)數(shù)的功能,其工作方式與定時(shí)器/計(jì)數(shù)器0一樣,在時(shí)序上與定時(shí)器/計(jì)數(shù)器0保持一致,以達(dá)到步進(jìn)與計(jì)數(shù)同步的效果,其設(shè)定的tcnt2與ocr2值與前面一致。其程序流程圖如下所示:圖13 中斷計(jì)數(shù)程序流程圖通過定時(shí)器/計(jì)數(shù)器2實(shí)現(xiàn)計(jì)數(shù)的功能,要顯示出計(jì)數(shù)結(jié)果,需要給單片機(jī)pe口對應(yīng)的片選信號(hào)來實(shí)現(xiàn)每位數(shù)值的顯示。其對應(yīng)的程序代碼如下:porte =scank;/對應(yīng)的片選信號(hào) switch(k)/顯示每位數(shù)
34、值case 0 : portd=seven_segnow.geshi%10; break;/顯示個(gè)位case 1 : portd=seven_segnow.geshi/10;break;/顯示十位case 2 : portd=seven_segnow.baiqian%10;break;/顯示百位 case 3 : portd=seven_segnow.baiqian/10;break;/顯示千位 k+; if(k=4) k=0;/4位循環(huán)顯示,清零對上述程序代碼循環(huán)運(yùn)行,即可實(shí)現(xiàn)4位led數(shù)碼管的顯示功能。4系統(tǒng)調(diào)試運(yùn)行與仿真硬件設(shè)計(jì)模塊完成了對系統(tǒng)電路圖的設(shè)計(jì),軟件模塊由程序?qū)崿F(xiàn)了各項(xiàng)功能;
35、接下來需要將軟件與硬件結(jié)合起來才能真正完成整個(gè)設(shè)計(jì)工作。我們采用的是protus仿真軟件得到了系統(tǒng)的硬件圖,參見圖10;使用icc avr軟件的集成環(huán)境調(diào)試程序,程序代碼請參見附錄,在該集成環(huán)境下,創(chuàng)建一工程,將程序裝入該工程下,調(diào)試運(yùn)行無誤后,該工程會(huì)自動(dòng)生成.hex文件,在protus仿真環(huán)境里,在單片機(jī)中載入該文件,這樣便實(shí)現(xiàn)了單片機(jī)程序的載入。在系統(tǒng)完成后測試系統(tǒng),檢查硬件和軟件是否能夠協(xié)調(diào)運(yùn)行,并對系統(tǒng)出現(xiàn)的情況進(jìn)行分析,看是否能夠達(dá)到系統(tǒng)創(chuàng)作之初所設(shè)想的效果,如達(dá)不到則重新修改系統(tǒng)的硬件結(jié)構(gòu)或者修改軟件的程序部分,直到達(dá)到設(shè)計(jì)需要為止。本系統(tǒng)的設(shè)計(jì)思路為:首先從整體上劃分出各功能模
36、塊,然后硬件和軟件同時(shí)進(jìn)行依次完成各個(gè)功能模塊,最后將各個(gè)模塊聯(lián)系起來完成整個(gè)系統(tǒng)。在硬件調(diào)試的過程中,遇到了很多問題。主要有: 按鍵設(shè)計(jì)完成后,在多次運(yùn)行過程中發(fā)現(xiàn)按鍵是否按下難以直觀準(zhǔn)確判斷,在此處進(jìn)行改進(jìn)設(shè)計(jì),為每一個(gè)按鍵接上一個(gè)發(fā)光二極管,當(dāng)有鍵按下時(shí),相對應(yīng)的發(fā)光二極管變亮,使得按鍵動(dòng)作形象直觀。在步進(jìn)電機(jī)與驅(qū)動(dòng)電路的連接中,需要準(zhǔn)確的接好各個(gè)管腳,因?yàn)槌绦蚶锏目刂谱謱?yīng)著這些管腳電平的變化,不能隨便接,單片機(jī)的輸出口與驅(qū)動(dòng)電路的輸出口也需要一一對應(yīng),否則電機(jī)無法按正常的設(shè)計(jì)運(yùn)轉(zhuǎn)。軟件測試的時(shí)候也有些問題,主要有:控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的程序段完成后,調(diào)試發(fā)現(xiàn)對步進(jìn)電機(jī)的轉(zhuǎn)速過小,查閱資料
37、后發(fā)現(xiàn)設(shè)計(jì)思路不太合理,原先的設(shè)計(jì)思路是用主程序控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng),采用延時(shí)方式控制步進(jìn)電機(jī)速度,由定時(shí)器處理按鍵鍵值;隨即改進(jìn)程序,主程序用來處理按鍵,由定時(shí)器控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng),步進(jìn)電機(jī)轉(zhuǎn)動(dòng)速度由定時(shí)器定時(shí)時(shí)間決定,可調(diào)范圍較廣。問題得到解決,不僅擴(kuò)大了步進(jìn)電機(jī)轉(zhuǎn)速的控制范圍,也使得單片機(jī)對步進(jìn)電機(jī)轉(zhuǎn)速的控制更加精確。5小結(jié)與心得體會(huì)經(jīng)過與同小組同學(xué)的共同努力,近一個(gè)多星期的學(xué)習(xí),本次課程設(shè)計(jì)課題二相步進(jìn)電機(jī)控制系統(tǒng)告一段落。二相步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)主要分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩個(gè)部分:硬件設(shè)計(jì)主要是把單片機(jī)系統(tǒng)(atmega128)、按鍵控制模塊、步進(jìn)電機(jī)驅(qū)動(dòng)模塊(l298)、數(shù)碼顯示模塊等
38、各個(gè)硬件功能模塊及其它元件合理搭配并連接起來使其能夠?yàn)檐浖\(yùn)行提供一個(gè)硬件平臺(tái)。軟件設(shè)計(jì)主要是通過編寫程序代碼,實(shí)現(xiàn)對整個(gè)系統(tǒng)的控制。在系統(tǒng)上電復(fù)位后程序自動(dòng)運(yùn)行,通過接受外部的鍵盤操作修改系統(tǒng)參數(shù)值,控制步進(jìn)電機(jī)的啟停,以及四拍,八拍通電方式和轉(zhuǎn)動(dòng)方向的改變;定時(shí)器t0根據(jù)系統(tǒng)參數(shù)控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng);定時(shí)器t2實(shí)現(xiàn)步進(jìn)電機(jī)步進(jìn)步數(shù)的動(dòng)態(tài)顯示。本系統(tǒng)具有一定的實(shí)用功能,能基本符合實(shí)際應(yīng)用需求,本次設(shè)計(jì)由于設(shè)計(jì)時(shí)間較短,個(gè)人能力以及精力等因素的限制,加之設(shè)計(jì)經(jīng)驗(yàn)的不足,該系統(tǒng)還有許多不盡如人意的地方。該系統(tǒng)具有一定的缺陷,并不完美,但仿真成功的那一刻的感覺是很美妙的,努力有了收獲,學(xué)的很充實(shí)。通
39、過這次課程設(shè)計(jì),使我從一開始對系統(tǒng)的不太熟悉,到能開發(fā)一個(gè)簡單的系統(tǒng),在這整個(gè)過程中我學(xué)到了很多東西,掌握了一些常用的開發(fā)技能,也發(fā)現(xiàn)了大量的問題,有些在設(shè)計(jì)過程中已經(jīng)解決,有些還有待今后慢慢學(xué)習(xí)。近十天的課程設(shè)計(jì),使我受益匪淺。我不僅了解了把理論設(shè)計(jì)轉(zhuǎn)換成現(xiàn)實(shí)實(shí)物的整個(gè)過程。如:查閱資料,方案選定,電路設(shè)計(jì),仿真電路圖,檢查調(diào)試,軟件流程控制,編寫調(diào)試軟件到整個(gè)軟硬件系統(tǒng)的調(diào)試,最后直到系統(tǒng)完成。為我以后的設(shè)計(jì)打下了一個(gè)好的基礎(chǔ)。而且使我更加熟悉了整個(gè)設(shè)計(jì)的過程和一些軟件及硬件設(shè)備的使用。對我以后面對這方面的工作有了很大的幫助,鍛煉了自己解決實(shí)際問題的能力,也培養(yǎng)了我們求真務(wù)實(shí)的態(tài)度。參考文
40、獻(xiàn)1 于海生,計(jì)算機(jī)控制技術(shù)m,北京:機(jī)械工業(yè)出版社,2007年2 張毅剛,新編mcs-51單片機(jī)應(yīng)用設(shè)計(jì)m,哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2006年3 陳冬云,atmega128 單片機(jī)原理與開發(fā)指導(dǎo)m,北京:機(jī)械工業(yè)出版社,2005年4 王彥平,rpotel 99 電路設(shè)計(jì)指南m,北京:清華大學(xué)出版社,2000年5 沈美明,ibm-pc匯編語言程序設(shè)計(jì)m, 北京:清華大學(xué)出版社,2001年6 沈精虎,protel99 入門與提高m, 北京:人民郵電出版社,2007年7 吳金戌,8051 單片機(jī)時(shí)間與應(yīng)用m, 北京:清華大學(xué)出版社,2003年8 胡輝,單片機(jī)原理及應(yīng)用設(shè)計(jì)m, 北京:中國水利
41、水電出版社,2007年附錄:程序代碼:/icc-avr application builder : 2009/6/30 14:09:19/ target : m128/ crystal: 4.0000mhz#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,0x12,0x16;/定義電機(jī)四八拍正反轉(zhuǎn)控制字unsigned char scan4=0xf7,0
42、xfb,0xfd,0xfe;/*選擇掃描顯示數(shù)碼管,送pe口選數(shù)碼管*/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 struct char baiqian;char geshi; conut; /定義計(jì)數(shù)變量conut now;void port_init(void)/端口初始化程序 porta = 0xff; ddra
43、= 0x00; portb = 0xff; ddrb = 0x00; portc = 0x00; /m103 output only ddrc = 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: 99.522hz (-0.5%)void timer0_init
44、(void)/定時(shí)器0初始化 tccr0 = 0x00; /stop assr = 0x00; /set async mode tcnt0 = 0x64; /set count ocr0 = 0x9c; /start timerunsigned char timer0=0;#pragma interrupt_handler timer0_comp_isr:16void timer0_comp_isr(void) /compare occured tcnt0=ocr0 tcnt0 = 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/ desired value: 100hz/ actual value: 100.160hz (0.2%)void timer2_init(void)/定時(shí)器2初始化 tccr2 = 0x00; /stop tcnt2 = 0x64; /setup ocr2 = 0x9c; /startunsigned char timer2=0;#pragma interrupt_handler timer2_comp_isr:10v
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路護(hù)欄施工合同范本
- 中歐貿(mào)易合同范本
- ktv管理合作合同范本
- 充值優(yōu)惠合同范本
- 出國勞務(wù)正式合同范本
- 2024年濰坊市婦幼保健院招聘考試真題
- 農(nóng)莊菜地續(xù)租合同范本
- 出租聚氨酯地坪合同范本
- 公章外借合同范本
- 買種子合同范本
- 語文新課標(biāo)“整本書閱讀”深度解讀及案例
- 地質(zhì)隊(duì)安全培訓(xùn)
- 2024至2030年中國毛絨玩具數(shù)據(jù)監(jiān)測研究報(bào)告
- 建筑復(fù)工復(fù)產(chǎn)安全培訓(xùn)
- GB 21258-2024燃煤發(fā)電機(jī)組單位產(chǎn)品能源消耗限額
- 八年級(jí)上學(xué)期語文12月月考試卷
- 醛固酮增多癥與原發(fā)性醛固酮增多癥概述
- 山東省淄博市2023-2024學(xué)年高一下學(xué)期期末教學(xué)質(zhì)量檢測數(shù)學(xué)試題
- 廣東省2024年普通高中學(xué)業(yè)水平合格性考試語文仿真模擬卷01(解析版)
- 2025屆新高考生物精準(zhǔn)復(fù)習(xí)+提高農(nóng)作物產(chǎn)量
- 第6課歐洲的思想解放運(yùn)動(dòng)教學(xué)設(shè)計(jì)2023-2024學(xué)年中職高一下學(xué)期高教版(2023)世界歷史
評(píng)論
0/150
提交評(píng)論