步進電機控制與人機交互系統(tǒng)開發(fā)畢業(yè)設(shè)計_第1頁
步進電機控制與人機交互系統(tǒng)開發(fā)畢業(yè)設(shè)計_第2頁
步進電機控制與人機交互系統(tǒng)開發(fā)畢業(yè)設(shè)計_第3頁
步進電機控制與人機交互系統(tǒng)開發(fā)畢業(yè)設(shè)計_第4頁
步進電機控制與人機交互系統(tǒng)開發(fā)畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)學與計算機系畢業(yè)設(shè)計課題名稱:步進電機控制與人機交互系統(tǒng)開發(fā)姓名: 學號: 專業(yè): 計算機應(yīng)用技術(shù)目 錄目 錄3摘 要1abstract2第一章 引言31.1 課題的背景及意義31.2 步進電機驅(qū)動控制現(xiàn)狀31.3 本課題的主要內(nèi)容4第二章 系統(tǒng)總體設(shè)計52.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計52.2 系統(tǒng)硬件電路設(shè)計52.3系統(tǒng)軟件設(shè)計62.4 結(jié)論7第三章 步進電機控制系統(tǒng)設(shè)計83.1步進電機工作原理83.1.1反應(yīng)式步進電機原理83.1.2感應(yīng)子式步進電機93.2步進電機驅(qū)動器系統(tǒng)硬件電路設(shè)計103.3 步進電機驅(qū)動器系統(tǒng)軟件設(shè)計14第四章 人機交互界面的設(shè)計204.1 文本顯示器介紹204.2 文

2、本顯示器特點204.3 文本顯示器設(shè)計20第五章 系統(tǒng)調(diào)試245.1調(diào)試目標245.2 步進電機調(diào)試245.3 文本顯示器調(diào)試245.4 整體調(diào)試24第六章 總結(jié)25第七章 致謝26第八章 參考文獻27摘 要眾所周知,打印機、復(fù)印機等已成為日常生活中不可或缺的機電產(chǎn)品,而且人們對其輸出質(zhì)量要求越來越高,作為其中關(guān)鍵技術(shù)的進紙系統(tǒng)對打印質(zhì)量有重要影響。因此,要實現(xiàn)對進紙系統(tǒng)的有效控制,對步進電機的準確控制就顯得更有意義。本課題為了實現(xiàn)對打印機進紙系統(tǒng)中的步進電機的有效控制,設(shè)計了一套對步進電機的驅(qū)動控制系統(tǒng)及其人機交互系統(tǒng)。該系統(tǒng)以stm32單片機為核心控制芯片,它一方面產(chǎn)生步進電機的控制脈沖給

3、驅(qū)動器經(jīng)環(huán)形分配、功率放大,使步進電機繞組按一定順序通電,控制電機轉(zhuǎn)動;另一方面,它可檢測鍵盤輸入并通過液晶顯示器輸出電機運行狀態(tài)等信息,為步進電機的調(diào)試和運行提供人機交互界面。整個系統(tǒng)軟件使用易于維護的模塊化設(shè)計方法,并采取軟硬件抗干擾技術(shù),提高了系統(tǒng)穩(wěn)定性。最后,對設(shè)計的系統(tǒng)進行了調(diào)試,實驗結(jié)果表明:本系統(tǒng)實現(xiàn)了對步進電機的控制,并可通過人機交互界面?zhèn)鬟_指令和顯示電機運行狀態(tài)等信息。整個系統(tǒng)具有結(jié)構(gòu)簡單、可靠性高、成本低和適應(yīng)性強等特點,具有較高的通用性和應(yīng)用推廣價值。關(guān)鍵字:步進電機、單片機、人機交互系統(tǒng)abstractas everyone knows, printers, photo

4、copiers and other electrical products have become indispensable in the daily life, and people on the output quality requirements more and more high, as the feed system and the key technology has important effect on print quality. therefore, to realize the effective control of the feed system, it is

5、more meaningful to accurately control the stepper motor.this subject in order to realize the effective control of stepping motor system in the step of the printer, designed a set of stepping motor drive control system and human-computer interaction system. the system uses stm32 microcontroller as th

6、e core control chip, the stepper motor control pulse to drive through the annular distribution, power amplifier on the one hand, the stepper motor windings energized in a certain order, control the motor rotation; on the other hand, it can detect the keyboard input and output through the liquid crys

7、tal display the motor running status and other information, providing human-computer interaction interface for debugging and operation of stepper motor. the system software uses the modular design method is easy to maintain, and take hardware and software anti-jamming technology, improve the system

8、stability.finally, the design of the system for debugging, the experimental results show that: this system has realized the control of stepping motor, and through the man-machine interface to convey instructions and display the motor running status information. the whole system has the characteristi

9、cs of simple structure, high reliability, low cost and strong adaptability, high generality and application value.keywords: stepper motor, mcu, human-computer interaction system第一章 引言1.1 課題的背景及意義步進電機可以對旋轉(zhuǎn)角度和轉(zhuǎn)動速度進行高精度控制。步進電機作為控制執(zhí)行元件,是是機電一體化的關(guān)鍵產(chǎn)品之一,廣泛應(yīng)用在各種自動化控制系統(tǒng)和精密機械等領(lǐng)域。隨著微電子和計算機技術(shù)的發(fā)展,步進電機的需求量與日俱增,在各

10、個國民經(jīng)濟領(lǐng)域都有應(yīng)用。上個世紀就出現(xiàn)了步進電機,它是一種可以自由會轉(zhuǎn)的電磁鐵,動作原理和今天的反應(yīng)式步進電機沒有什么區(qū)別,也是依靠氣隙磁導的變化來產(chǎn)生電磁轉(zhuǎn)矩。原來的步進電機控制系統(tǒng)采用分立元件或者集成電路組成的控制回路,不僅調(diào)試安裝復(fù)雜,要消耗大量元器件,而且一旦定型之后,要改變控制方案就一定要重新設(shè)計電路。計算機則通過軟件來控制步進電機,更好地挖掘出電機的潛力。因此,用計算機控制步進電機已經(jīng)成為了一種必然的趨勢,也符合數(shù)字化的時代趨勢?,F(xiàn)在比較常用的步進電機包括反應(yīng)式步進電機、永磁式步進電機、混合式步進電機和單相式步進電機等。其中反應(yīng)式步進電機的轉(zhuǎn)子磁路由軟磁材料制成,定子上有許多相勵磁

11、繞組,利用磁導的變化產(chǎn)生轉(zhuǎn)矩?,F(xiàn)階段,反應(yīng)式步進電機獲得最多的應(yīng)用。1.2 步進電機驅(qū)動控制現(xiàn)狀在電氣時代的今天,電機一直在現(xiàn)代化的生產(chǎn)和生活中起著十分重要的作用。無論是在工農(nóng)業(yè)生產(chǎn)還是在日常生活中的家用電器,都大量地使用著各種各樣的電機。因此對電機的控制變得越來越重要了。電機的控制技術(shù)的發(fā)展得力于微電子技術(shù)、電力電子技術(shù)、傳感器技術(shù)、永磁材料技術(shù)、自動控制技術(shù)、微機應(yīng)用技術(shù)的最新發(fā)展成就。正是這些技術(shù)的進步使得電機控制技術(shù)化。目前打字機、計算機外部設(shè)備、數(shù)控機床、傳真機等設(shè)備中都使用了步進電機。隨著電子計算機技術(shù)的發(fā)展,步進電機必將發(fā)揮它的控制方便、控制準確的特點,在工業(yè)控制等領(lǐng)域取得更為廣

12、泛的應(yīng)用。隨著電子產(chǎn)品更加人性化設(shè)計的要求,現(xiàn)如今一款可靠地控制系統(tǒng)就顯得更加重要,在液晶顯示上能夠做到根據(jù)具體的要求實現(xiàn)對控制目標的實時控制,目前市場上有許多的電子產(chǎn)品,良好的人機交互界面,圖形文字的詳細說明,用戶在操作的時候能夠得心應(yīng)手。1.3 本課題的主要內(nèi)容本課題主要的內(nèi)容是設(shè)計一款穩(wěn)定、可控的步進電機控制系統(tǒng),通過單片機的控制來實現(xiàn)可操作的人機交互控制系統(tǒng)。1) 單片機使用stm系列的單片機,作為主要的控制芯片,通過單片機的io輸出脈沖信號控制步進電機驅(qū)動器,從而達到控制步進電機的目的。2) 人機交互控制模塊的設(shè)計,通過鍵盤輸入、液晶顯示來實現(xiàn)交互控制,整個設(shè)計能夠展示一個比較清楚的

13、人機界面,實現(xiàn)更加合理的人機交互。3) 編程的語言使用的是c語言,通過過程控制指令來實現(xiàn)對單片機所需指令的要求。通過最終的選擇確定,在使用器件的時候盡量的使用易于控制,價格合理,穩(wěn)定的器件,實現(xiàn)最后的產(chǎn)品使用要求,達到設(shè)計要求。第二章 系統(tǒng)總體設(shè)計2.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計通過對步進電機控制器關(guān)鍵技術(shù)進行分析、研究和比較,并綜合國內(nèi)外運動控制器產(chǎn)品智能化、集成化、開放化的發(fā)展趨勢,我們提出的步進電機運動控制器總體結(jié)構(gòu)如圖2-1所示電機驅(qū)動模塊stm32單片機液晶顯示模 塊串口通信模塊按鍵控制模 塊圖2-1 步進電機運動控制器總體結(jié)構(gòu)2.2 系統(tǒng)硬件電路設(shè)計1) 硬件電路主要的目的是控制步進電機,

14、但是單片機的io口得輸出電壓、電流都有限,于是需要設(shè)計可控的驅(qū)動電路,這樣可以達到控制步進電機的目的。在設(shè)計的過程中還需要對各個模塊合理的進行分配,需要設(shè)計液晶模塊、鍵盤模塊,還要留有io口以便來驅(qū)動步進電機驅(qū)動電路。2) 系統(tǒng)的供電系統(tǒng)需要給系統(tǒng)提供一個穩(wěn)定、安全的輸入電源,因此在整個系統(tǒng)模塊的供電設(shè)計中,重點圍繞了系統(tǒng)穩(wěn)定、安全性來設(shè)計。因為單片機需要的電壓是+5v,液晶需要的電壓也是+5v,電機需要的電壓是+12v因此在設(shè)計中需要考慮到多級電壓的提供,在設(shè)計中考慮到了由于輸入時候的電壓過大,而穩(wěn)壓管的承載能力有限,因此設(shè)計了多級穩(wěn)壓的電路,這樣設(shè)計的目的是為了使穩(wěn)壓管不至于過熱,在穩(wěn)壓電

15、路中還設(shè)計了濾波電路,保證供電電流的穩(wěn)定可靠。電源輸入模塊設(shè)計如圖2-2所示。圖 2-2 3) 串口通信模塊實現(xiàn)了上位機跟單片機的通信功能。通過實現(xiàn)串口通信功能可以更好地實現(xiàn)將上位機上的程序下載到單片機中,實現(xiàn)單片機各個功能實現(xiàn)本設(shè)計采用了max232芯片能夠?qū)崿F(xiàn)上位機跟單片機之間的電位轉(zhuǎn)換,從而達到通過串口的通信功能實現(xiàn)上位機跟單片機的通信功能。光耦隔離的串行通信接口模塊如圖2-3所示。圖2-3 4) 硬件抗干擾技術(shù)為了克服可能發(fā)生的各種干擾,保證系統(tǒng)能夠可靠地運行,現(xiàn)有的抗干擾技術(shù)在硬件方面采取如下措施:1、增加硬件看門狗電路;2、增加電壓檢測電路;3、選擇抗干擾能力較強的單片機系列;4、

16、盡可能使用單片機的內(nèi)部程序存儲器和內(nèi)部數(shù)據(jù)存儲器而不使用外部總線鏈接這些器件;5、協(xié)調(diào)好電路中不同類型ic的電匹配;6、數(shù)據(jù)總線和控制總線間形成板與板連接時,應(yīng)加總線驅(qū)動器。2.3系統(tǒng)軟件設(shè)計在系統(tǒng)的主程序中,初始化程序的功能是在系統(tǒng)復(fù)位后完成單片機各個特殊功能寄存器的設(shè)置、各數(shù)據(jù)區(qū)的初始化、外部硬件設(shè)備的設(shè)置等操作;系統(tǒng)的消息循環(huán)則用來實現(xiàn)消息合法性的判斷及消息處理功能模塊的調(diào)用。為了能夠?qū)ο⒌暮戏ㄐ缘呐袛?,我們?yōu)橄⒔M中的每個消息定義了對應(yīng)的合法性判斷標識位。如果某消息所對應(yīng)的合法性判斷標識位為“1”,則表示該消息是合法的消息,系統(tǒng)應(yīng)該調(diào)用相應(yīng)的消息處理功能模塊對消息進行處理;為“0”則

17、表示該消息是非法的消息,系統(tǒng)應(yīng)該忽略該消息。為了實現(xiàn)“看門狗”功能,我們還在消息循環(huán)中加入了喂狗輸出操作。值得注意的是,在系統(tǒng)的串行通信處理模塊中,根據(jù)接收的數(shù)據(jù)進行判斷是自動加工,或是手動加工,還是參數(shù)設(shè)置,分別對消息序列中的標志位進行置位,以保證主程序能夠正確得實現(xiàn)各種操作。2.4 結(jié)論通過整個系統(tǒng)的設(shè)計能夠?qū)崿F(xiàn)對步進電機的控制,從而實現(xiàn)更加人性化的電機控制系統(tǒng),實現(xiàn)對數(shù)字化系統(tǒng)的要求,步進電機能夠更加智能化得到控制。第三章 步進電機控制系統(tǒng)設(shè)計3.1步進電機工作原理3.1.1反應(yīng)式步進電機原理由于反應(yīng)式步進電機工作原理比較簡單。下面先敘述三相反應(yīng)式步進電機原理。1、結(jié)構(gòu):電機轉(zhuǎn)子均勻分布

18、著很多小齒,定子齒有三個勵磁繞阻,其幾何軸線依次分別與轉(zhuǎn)子齒軸線錯開。0、1/3、2/3,(相鄰兩轉(zhuǎn)子齒軸線間的距離為齒距以表示),即a與齒1相對齊,b與齒2向右錯開1/3,c與齒3向右錯開2/3,a與齒5相對齊,(a就是a,齒5就是齒1)下面是定轉(zhuǎn)子的展開圖:2、旋轉(zhuǎn):如a相通電,b,c相不通電時,由于磁場作用,齒1與a對齊,(轉(zhuǎn)子不受任何力以下均同)。如b相通電,a,c相不通電時,齒2應(yīng)與b對齊,此時轉(zhuǎn)子向右移過1/3,此時齒3與c偏移為1/3,齒4與a偏移(-1/3)=2/3。如c相通電,a,b相不通電,齒3應(yīng)與c對齊,此時轉(zhuǎn)子又向右移過1/3,此時齒4與a偏移為1/3對齊。如a相通電,

19、b,c相不通電,齒4與a對齊,轉(zhuǎn)子又向右移過1/3。這樣經(jīng)過a、b、c、a分別通電狀態(tài),齒4(即齒1前一齒)移到a相,電機轉(zhuǎn)子向右轉(zhuǎn)過一個齒距,如果不斷地按a,b,c,a通電,電機就每步(每脈沖)1/3,向右旋轉(zhuǎn)。如按a,c,b,a通電,電機就反轉(zhuǎn)。由此可見:電機的位置和速度由導電次數(shù)(脈沖數(shù))和頻率成一一對應(yīng)關(guān)系。而方向由導電順序決定。不過,出于對力矩、平穩(wěn)、噪音及減少角度等方面考慮。往往采用a-ab-b-bcc-ca-a這種導電狀態(tài),這樣將原來每步1/3改變?yōu)?/6。甚至于通過二相電流不同的組合,使其1/3變?yōu)?/12,1/24,這就是電機細分驅(qū)動的基本理論依據(jù)。不難推出:電機定子上有m相

20、勵磁繞阻,其軸線分別與轉(zhuǎn)子齒軸線偏移1/m,2/m(m-1)/m,1。并且導電按一定的相序電機就能正反轉(zhuǎn)被控制這是步進電機旋轉(zhuǎn)的物理條件。只要符合這一條件我們理論上可以制造任何相的步進電機,出于成本等多方面考慮,市場上一般以二、三、四、五相為多。3、力矩:電機一旦通電,在定轉(zhuǎn)子間將產(chǎn)生磁場(磁通量)當轉(zhuǎn)子與定子錯開一定角度產(chǎn)生力 f與(d/d)成正比其磁通量=br*s ;br為磁密;s為導磁面積 ; f與l*d*br成正比;l為鐵芯有效長度;d為轉(zhuǎn)子直徑;br=ni/rni為勵磁繞阻安匝數(shù)(電流乘匝數(shù))r為磁阻。力矩=力*半徑力矩與電機有效體積*安匝數(shù)*磁密 成正比(只考慮線性狀態(tài))因此,電機

21、有效體積越大,勵磁安匝數(shù)越大,定轉(zhuǎn)子間氣隙越小,電機力矩越大,反之亦然。3.1.2感應(yīng)子式步進電機1、特點:感應(yīng)子式步進電機與傳統(tǒng)的反應(yīng)式步進電機相比,結(jié)構(gòu)上轉(zhuǎn)子加有永磁體,以提供軟磁材料的工作點,而定子激磁只需提供變化的磁場而不必提供磁材料工作點的耗能,因此該電機效率高,電流小,發(fā)熱低。因永磁體的存在,該電機具有較強的反電勢,其自身阻尼作用比較好,使其在運轉(zhuǎn)過程中比較平穩(wěn)、噪音低、低頻振動小。感應(yīng)子式步進電機某種程度上可以看作是低速同步電機。一個四相電機可以作四相運行,也可以作二相運行。(必須采用雙極電壓驅(qū)動),而反應(yīng)式電機則不能如此。例如:四相,八相運行(a-ab-b-bc-c-cd-d-

22、da-a)完全可以采用二相八拍運行方式.不難發(fā)現(xiàn)其條件為c=,d=。一個二相電機的內(nèi)部繞組與四相電機完全一致,小功率電機一般直接接為二相,而功率大一點的電機,為了方便使用,靈活改變電機的動態(tài)特點,往往將其外部接線為八根引線(四相),這樣使用時,既可以作四相電機使用,可以作二相電機繞組串聯(lián)或并聯(lián)使用。2、分類感應(yīng)子式步進電機以相數(shù)可分為:二相電機、三相電機、四相電機、五相電機等。以機座號(電機外徑)可分為:42byg(byg為感應(yīng)子式步進電機代號)、57byg、86byg、110byg、(國際標準),而像70byg、90byg、130byg等均為國內(nèi)標準。3.2步進電機驅(qū)動器系統(tǒng)硬件電路設(shè)計步進

23、電機控制器硬件模塊主要包括:電源模塊、最小系統(tǒng)、多口輸入模塊、oc及繼電器輸出模塊、串口通信模塊以及步進電機控制器接口等。下面分別描述介紹如下所示:1、電源小模塊 圖3采用開關(guān)電源、隔離電源,比普通電源發(fā)熱更小,更安全。完成24v電源到5v電源的轉(zhuǎn)換;同時采用lm117-3.3v,輸出stm32f103vct6系統(tǒng)所需要的3.3v電壓。2、最小系統(tǒng)小模塊,如圖4所示。最小系統(tǒng)只要包括主芯片stm32f103vct6的簡單運行條件保障,電源輸入、晶振、下載接口、復(fù)位電路等。圖43、光耦隔離的串行通信接口小模塊圖 5采用常規(guī)的交叉串口線,并外加高速光耦隔離,確保系統(tǒng)的穩(wěn)定、安全。4、flash存儲

24、模塊系統(tǒng)采用了8m bits的flash 芯片,此芯片是spi的通信接口,我們stm32f103vct6主mcu芯片中有多路spi接口,所以完成本系統(tǒng)的數(shù)據(jù)存儲問題直接采用了內(nèi)部spi控制器,實現(xiàn)比較簡單。圖 65、13路光耦隔離輸入小模塊圖 7從圖7可以看出,本系統(tǒng)的外部信號獲取接口比較多,共有13個接口,平時外部信號可以是懸空,或接到電源24v,當開關(guān)按下時接到電源地。從我們系統(tǒng)設(shè)計可以看出,從電源到通信、到外部信號的獲取,全部進行了隔離,確保電氣的安全,符合工業(yè)現(xiàn)場的需求。一般來說,工業(yè)現(xiàn)場用光耦隔離獲取的信號有:光電開關(guān)的反饋信號、接觸或行程開關(guān)的反饋信號、 外接按鈕的反饋信號等。6、

25、七路光耦隔離oc輸出小模塊(如圖1.7) 圖 8采用高耐壓、大電流達林頓管iculn2003芯片,主芯片與2003芯片之間加入光耦隔離。oc方式輸出24v電壓,最大電流可達500ma,可控制外部繼電器、ssr等。7、五路繼電器輸出小模塊(如圖1.8)板上集成了5個繼電器,常開觸點引出,可作為開關(guān)來控制設(shè)備上的電磁閥,汽缸,直流、交流電機等。圖 93.3 步進電機驅(qū)動器系統(tǒng)軟件設(shè)計步進電機控制器的軟件部分采用了與硬件電路設(shè)計所對應(yīng)的模塊化設(shè)計方式,主要包括的軟件模塊有:基于dma方式的串口通信模塊(實現(xiàn)了modbus rtu協(xié)議)、定時器模塊(完成了4路步進電機控制功能)、io口輸入功能、繼電器

26、輸出功能、flash數(shù)據(jù)存儲功能。1、串口通信模塊串口通信模塊是通過一條數(shù)據(jù)發(fā)送口和一條數(shù)據(jù)接收口,來實現(xiàn)控制器和外部器件的通信工作;我們的文本和控制器之間就是通過該模塊實現(xiàn)通信的。串口2驅(qū)動:采用pa2口做t2x發(fā)送;pa3口做r2x接收;采用9600波特率;采用8位數(shù)據(jù)發(fā)送接收模式;void usart_configuration(void) gpio_inittypedef gpio_initstructure; usart_inittypedef usart_initstructure;usart_clockinittypedef usart_clockinitstructure;/使

27、能串口1,pa,afio總線rcc_apb2periphclockcmd(rcc_apb2periph_gpioa|rcc_apb2periph_afio,enable);/使能串口2時鐘rcc_apb1periphclockcmd(rcc_apb1periph_usart2,enable); gpio_initstructure.gpio_pin = gpio_pin_2; gpio_initstructure.gpio_speed = gpio_speed_50mhz; gpio_initstructure.gpio_mode = gpio_mode_af_pp; gpio_init(gp

28、ioa, &gpio_initstructure); gpio_initstructure.gpio_pin = gpio_pin_3; gpio_initstructure.gpio_mode =gpio_mode_ipu; gpio_init(gpioa, &gpio_initstructure);usart_initstructure.usart_baudrate = 9600;usart_initstructure.usart_wordlength = usart_wordlength_8b;usart_initstructure.usart_stopbits = usart_stop

29、bits_1;usart_initstructure.usart_parity = usart_parity_no;usart_initstructure.usart_hardwareflowcontrol= usart_hardwareflowcontrol_none;usart_initstructure.usart_mode = usart_mode_rx | usart_mode_tx;usart_clockinitstructure.usart_clock = usart_clock_disable;usart_clockinitstructure.usart_cpol = usar

30、t_cpol_low;usart_clockinitstructure.usart_cpha = usart_cpha_2edge;usart_clockinitstructure.usart_lastbit = usart_lastbit_disable; usart_clockinit(usart2, &usart_clockinitstructure); usart_init(usart2, &usart_initstructure); usart_cmd(usart2, enable);2、定時器模塊定時器模塊是通定時器計數(shù)達到某一個設(shè)定的值后,進入中斷函數(shù),執(zhí)行相應(yīng)的函數(shù),與此同時,

31、其中某些io口輸出高或低電平,從而產(chǎn)生脈沖信號,以便驅(qū)動步進電機。步進電機實際運行時會采用類似下面的梯形圖工作,會采用s型工作。 定時器中斷打開函數(shù)void nvic_configuration(void)nvic_inittypedef nvic_initstructure;nvic_prioritygroupconfig(nvic_prioritygroup_1);nvic_initstructure.nvic_irqchannel = tim1_cc_irqn;nvic_initstructure.nvic_irqchannelpreemptionpriority = 0;nvic_in

32、itstructure.nvic_irqchannelsubpriority = 0;nvic_initstructure.nvic_irqchannelcmd = enable;nvic_init(&nvic_initstructure);nvic_initstructure.nvic_irqchannel = tim2_irqn;nvic_initstructure.nvic_irqchannelpreemptionpriority = 0;nvic_initstructure.nvic_irqchannelsubpriority = 0;nvic_initstructure.nvic_i

33、rqchannelcmd = enable;nvic_init(&nvic_initstructure);nvic_initstructure.nvic_irqchannel = tim4_irqn;nvic_initstructure.nvic_irqchannelpreemptionpriority = 0;nvic_initstructure.nvic_irqchannelsubpriority = 0;nvic_initstructure.nvic_irqchannelcmd = enable;nvic_init(&nvic_initstructure);nvic_initstruct

34、ure.nvic_irqchannel = tim3_irqn;nvic_initstructure.nvic_irqchannelpreemptionpriority = 0;nvic_initstructure.nvic_irqchannelsubpriority = 0;nvic_initstructure.nvic_irqchannelcmd = enable;nvic_init(&nvic_initstructure); 初始化定時器一:采用pa8口的ch1通道做定時器輸出;設(shè)置頻率為1m;設(shè)置模式為向上計數(shù)模式;void tim1_configuration(void)tim_ti

35、mebaseinittypedef tim_timebasestructure;tim_ocinittypedef tim_ocinitstructure;rcc_apb2periphclockcmd(rcc_apb2periph_tim1,enable);tim_deinit(tim1);/*tim1時鐘配置*/tim_timebasestructure.tim_prescaler = 71; tim_timebasestructure.tim_countermode = tim_countermode_up; tim_timebasestructure.tim_period = 0xfff

36、f;tim_timebasestructure.tim_clockdivision = 0;tim_timebaseinit(tim1,&tim_timebasestructure);tim_ocstructinit(&tim_ocinitstructure);tim_ocinitstructure.tim_ocmode = tim_ocmode_toggle; tim_ocinitstructure.tim_outputstate = tim_outputstate_enable; tim_ocinitstructure.tim_pulse =s_50hz; tim_ocinitstruct

37、ure.tim_ocpolarity = tim_ocpolarity_high; tim_oc1init(tim1,&tim_ocinitstructure); tim_clearflag(tim1, tim_flag_cc1|tim_flag_cc2|tim_flag_cc3|tim_flag_cc4);tim_itconfig(tim1, tim_it_cc1, disable);tim_oc1preloadconfig(tim1,disable);tim_arrpreloadconfig(tim1, disable);tim_cmd(tim1,disable);tim_ctrlpwmo

38、utputs(tim1,enable);同上還有:定時器2初始化 void tim2_configuration(void)定時器3初始化 void tim3_configuration(void)定時器4初始化 void tim4_configuration(void)這四路中斷可以控制4路步進電機同時或各自工作,而且互不影響。3、flash 模塊flash模塊:即存儲模塊,采用的是spi通信方式來實現(xiàn)數(shù)據(jù)存儲;其中采用pb13口做sck時鐘口, pb14口做miso,pb15口做mosi;設(shè)置8位字節(jié)發(fā)送接收模式,72m兩分頻即36m頻率工作; spi初始化函數(shù)void flash_spi

39、_config(void) spi_inittypedef spi_initstructure; gpio_inittypedef gpio_initstructure; rcc_apb2periphclockcmd(rcc_apb2periph_gpioc | rcc_apb2periph_gpiob , enable);rcc_apb1periphclockcmd(rcc_apb1periph_spi2,enable); gpio_initstructure.gpio_pin = gpio_pin_13 | gpio_pin_14 | gpio_pin_15; gpio_initstruc

40、ture.gpio_speed = gpio_speed_50mhz; gpio_initstructure.gpio_mode = gpio_mode_af_pp; gpio_init(gpiob, &gpio_initstructure); /* pc.13 作片選*/gpio_setbits(gpioc, gpio_pin_13);/預(yù)置為高 gpio_initstructure.gpio_pin = gpio_pin_13; gpio_initstructure.gpio_speed = gpio_speed_50mhz; gpio_initstructure.gpio_mode =

41、gpio_mode_out_pp; gpio_init(gpioc, &gpio_initstructure); spi_cmd(spi2, disable); spi_initstructure.spi_direction = spi_direction_2lines_fullduplex; spi_initstructure.spi_mode = spi_mode_master; spi_initstructure.spi_datasize = spi_datasize_8b; spi_initstructure.spi_cpol = spi_cpol_low; spi_initstruc

42、ture.spi_cpha = spi_cpha_1edge;spi_initstructure.spi_nss = spi_nss_soft; spi_initstructure.spi_baudrateprescaler = spi_baudrateprescaler_2; spi_initstructure.spi_firstbit = spi_firstbit_msb; spi_initstructure.spi_crcpolynomial = 7; spi_init(spi2, &spi_initstructure); spi_cmd(spi2, enable); spi發(fā)送接收一個

43、字節(jié)函數(shù)static u8 spibyte(u8 byte)while(spi2-sr & spi_i2s_flag_txe)=reset);spi2-dr = byte;while(spi2-sr & spi_i2s_flag_rxne)=reset);return(spi2-dr);4、io與繼電器控制模塊/13路輸入信號宏定義#define yl1 (gpio_readinputdatabit(gpioe,gpio_pin_0)#define yl2 (gpio_readinputdatabit(gpioe,gpio_pin_1)#define yl3 (gpio_readinputda

44、tabit(gpioe,gpio_pin_2) #define yl4 (gpio_readinputdatabit(gpioe,gpio_pin_3) #define yl5 (gpio_readinputdatabit(gpioe,gpio_pin_4) #define yl6 (gpio_readinputdatabit(gpioe,gpio_pin_5) #define yl7 (gpio_readinputdatabit(gpioe,gpio_pin_6) #define yl8 (gpio_readinputdatabit(gpioe,gpio_pin_7) #define yl9

45、 (gpio_readinputdatabit(gpiod,gpio_pin_12)#define yl10(gpio_readinputdatabit(gpiod,gpio_pin_13)#define yl11 (gpio_readinputdatabit(gpiod,gpio_pin_14) #define yl12 (gpio_readinputdatabit(gpiod,gpio_pin_15) #define yl13 (gpio_readinputdatabit(gpioe,gpio_pin_14) /繼電器輸出宏定義#define ja_off gpio_resetbits(g

46、piod, gpio_pin_7)#define ja_on gpio_setbits(gpiod, gpio_pin_7)#define jb_off gpio_resetbits(gpiod, gpio_pin_11)#define jb_on gpio_setbits(gpiod, gpio_pin_11)#define jc_off gpio_resetbits(gpiod, gpio_pin_10)#define jc_on gpio_setbits(gpiod, gpio_pin_10)#define jd_off gpio_resetbits(gpiod, gpio_pin_9)

47、#define jd_on gpio_setbits(gpiod, gpio_pin_9)#define je_off gpio_resetbits(gpiod, gpio_pin_8)#define je_on gpio_setbits(gpiod, gpio_pin_8)/7路光耦輸出#define out1_dowgpio_resetbits(gpiod, gpio_pin_0)#define out1_upgpio_setbits(gpiod, gpio_pin_0)#define out2_dowgpio_resetbits(gpiod, gpio_pin_1)#define out

48、2_upgpio_setbits(gpiod, gpio_pin_1)#define out3_dowgpio_resetbits(gpiod, gpio_pin_2)#define out3_upgpio_setbits(gpiod, gpio_pin_2)#define out4_dowgpio_resetbits(gpiod, gpio_pin_3)#define out4_upgpio_setbits(gpiod, gpio_pin_3)#define out5_dowgpio_resetbits(gpiod, gpio_pin_4)#define out5_upgpio_setbit

49、s(gpiod, gpio_pin_4)#define out6_dowgpio_resetbits(gpiod, gpio_pin_5)#define out6_upgpio_setbits(gpiod, gpio_pin_5)#define out7_dowgpio_resetbits(gpiod, gpio_pin_6)#define out7_upgpio_setbits(gpiod, gpio_pin_6)/電機方向輸出宏定義#define step1_up gpio_resetbits(gpioe, gpio_pin_8)#define step1_dw gpio_setbits(

50、gpioe, gpio_pin_8)#define step2_up gpio_resetbits(gpioe, gpio_pin_9)#define step2_dw gpio_setbits(gpioe, gpio_pin_9)#define step3_up gpio_resetbits(gpioe, gpio_pin_10)#define step3_dw gpio_setbits(gpioe, gpio_pin_10)#define step4_up gpio_resetbits(gpioe, gpio_pin_11)#define step4_dw gpio_setbits(gpi

51、oe, gpio_pin_11)第四章 人機交互界面的設(shè)計4.1 文本顯示器介紹文本顯示器,又名終端顯示器,是一種單純以文字呈現(xiàn)的人機互動系統(tǒng)。通過文本顯示器,將所需要控制的內(nèi)容,編寫成相應(yīng)的程序,最終在文本顯示器的界面上顯示出來。這樣,不但大大提高了操作的方便性,而且能夠顯著提高工作效率。4.2 文本顯示器特點1、優(yōu)點 1、操作簡單、方便; 2、支持多種通訊協(xié)議; 3、輕巧、經(jīng)濟與實用; 4、操作者能快速控制系統(tǒng),從而提高工作效率。2、缺點 1、界面顯示內(nèi)容沒有觸摸屏那樣豐富生動; 2、文本顯示器只能顯示文字,不能顯示圖形化的操作界面。4.3 文本顯示器設(shè)計1、 文本部分的界面(采用的畫圖編

52、程)開發(fā)環(huán)境:tp200畫面設(shè)置工具(圖10)該平臺可實現(xiàn)文本界面設(shè)計,界面設(shè)計好后通過串口與控制器連接,可達到文本控制整個系統(tǒng)的目的。圖106、vb運行界面本控制器除了與文本進行通信以外,還可以通過串口與pc機 上位機軟件進行通信,通信協(xié)議我們進行了編制,采用和校驗的形式。部分協(xié)議如下,vb界面如下:測試界面和為進出料控制做的一個系統(tǒng)如圖(圖11)該界面中可以測試控制6路電機正反轉(zhuǎn)和停止圖11部分實現(xiàn)源代碼如下:public function cdu_set(a1 as integer, a2 as double) 設(shè)定運行距離 dim temp4 as double dim temp5 a

53、s double dim temp0 as byte dim temp1 as byte dim temp2 as byte temp0 = 0 temp1 = 0 temp2 = 0 temp4 = 0# temp2 = int(a2 / 65536) temp4 = a2 - temp2 * 65536 temp1 = int(temp4 / 256) temp5 = temp1 temp0 = temp4 - temp5 * 256 配置電機的運行長度 outdata(0) = &hff outdata(1) = &haa outdata(2) = a1 outdata(3) = &h3 outd

溫馨提示

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

最新文檔

評論

0/150

提交評論