微型計(jì)算機(jī)步進(jìn)電機(jī)遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)_第1頁
微型計(jì)算機(jī)步進(jìn)電機(jī)遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)_第2頁
微型計(jì)算機(jī)步進(jìn)電機(jī)遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)_第3頁
微型計(jì)算機(jī)步進(jìn)電機(jī)遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)_第4頁
微型計(jì)算機(jī)步進(jìn)電機(jī)遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、步進(jìn)電機(jī)遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)報(bào)告書1.前言1.1 設(shè)計(jì)背景課程設(shè)計(jì)是完成教學(xué)計(jì)劃達(dá)到本科生培養(yǎng)目標(biāo)的重要環(huán)節(jié),是教學(xué)計(jì)劃中進(jìn)行綜合訓(xùn)練的重要實(shí)踐環(huán)節(jié),是有助于培養(yǎng)應(yīng)用性人才的一種教學(xué)形式,它將使我們?cè)诰C合運(yùn)用所學(xué)知識(shí),解決計(jì)算機(jī)本專業(yè)方向的實(shí)際問題方面得到系統(tǒng)性的訓(xùn)練。 而且微機(jī)接口技術(shù)是一門實(shí)踐性很強(qiáng)的課程,必須加強(qiáng)實(shí)驗(yàn)教學(xué)。本課程設(shè)計(jì)是在學(xué)習(xí)微機(jī)接口技術(shù)課程之后,運(yùn)用先前所學(xué)的計(jì)算機(jī)組成原理、電子技術(shù)、接口技術(shù)以及程序設(shè)計(jì)方法,分析與設(shè)計(jì)一個(gè)實(shí)際的計(jì)算機(jī)應(yīng)用系統(tǒng)的接口電路。因此,微機(jī)接口技術(shù)課程設(shè)計(jì)是繼微機(jī)接口技術(shù)之后加強(qiáng)實(shí)踐教學(xué)的重要專業(yè)課程。微處理器經(jīng)過幾十年的發(fā)展,已形成種類繁多、性能與

2、功能各異的局面,高性能計(jì)算機(jī)的實(shí)現(xiàn)使能技術(shù)包括計(jì)算數(shù)學(xué)、計(jì)算機(jī)體系結(jié)構(gòu)與部件構(gòu)成技術(shù)三部分。以計(jì)算機(jī)性能為主線,介紹高性能計(jì)算機(jī)研制的歷史、現(xiàn)狀與未來展望。1.2 設(shè)計(jì)目的通過本課程的實(shí)踐環(huán)節(jié)訓(xùn)練,深化和鞏固我們?nèi)晁鶎W(xué)的軟硬件理論知識(shí),使我們能夠充分的認(rèn)識(shí)計(jì)算機(jī)接口設(shè)計(jì)的全局過程,以加強(qiáng)軟硬件設(shè)計(jì)水平和開發(fā)技能,更在很大程度上培養(yǎng)我們綜合應(yīng)用接口技術(shù)分析和解決實(shí)際問題的能力。課程設(shè)計(jì)的目標(biāo)是使我們可以在以下幾個(gè)方面得到訓(xùn)練:(1) 培養(yǎng)正確的設(shè)計(jì)思想,理論聯(lián)系實(shí)際的工作作風(fēng),嚴(yán)肅認(rèn)真、實(shí)事求是的科學(xué)態(tài)度和勇于探索的創(chuàng)新精神。(2) 培養(yǎng)綜合運(yùn)用所學(xué)知識(shí)與生產(chǎn)實(shí)踐經(jīng)驗(yàn),分析和解決工程技術(shù)問題的

3、能力。(3) 通過課程設(shè)計(jì)實(shí)踐,訓(xùn)練并提高在校大學(xué)生在理論計(jì)算、結(jié)構(gòu)設(shè)計(jì)、工程繪圖、查閱設(shè)計(jì)資料、運(yùn)用標(biāo)準(zhǔn)與規(guī)范和應(yīng)用計(jì)算機(jī)等方面的能力。(4) 利用所學(xué)過的知識(shí),初步分析計(jì)算機(jī)原理及接口技術(shù)的能力; (5) 計(jì)算機(jī)定時(shí)/計(jì)數(shù)系統(tǒng)(包括管理軟件及控制應(yīng)用軟件) 的設(shè)計(jì)、編程與調(diào)試的能力; (6) 計(jì)算機(jī)中斷系統(tǒng)的應(yīng)用設(shè)計(jì)、調(diào)試的能力; (7) 計(jì)算機(jī)并行、串行通信的設(shè)計(jì)和調(diào)試的能力1.3 設(shè)計(jì)方法和步驟(1) 設(shè)計(jì)方法對(duì)于硬件電路,我們小組主要通過微機(jī)實(shí)驗(yàn)指導(dǎo)書里面的步進(jìn)電機(jī)原理圖來構(gòu)建電路。然后結(jié)合軟件設(shè)計(jì)中各個(gè)端口的使用情況來調(diào)整端口的使用問題。在硬件連接的過程中,我們對(duì)于有些集成芯片的引

4、腳接入接出情況不是很了解,借助學(xué)校為我們提供的網(wǎng)絡(luò)條件,搜索有用的信息來幫助我們正確的連接硬件。軟件的編寫,主要利用MFID 實(shí)驗(yàn)平臺(tái)上的步進(jìn)電機(jī)控制C語言、匯編程序和查詢方式全雙工串行通信接口程序來修改,并且進(jìn)一步的編寫。其中,在編寫程序的過程中,我們的隨時(shí)的考慮到硬件芯片上端口的高低電位的控制,否則會(huì)嚴(yán)重影響步進(jìn)電機(jī)的遠(yuǎn)程和本地的通信、控制。(2)研究步驟 硬件的連接步驟:根據(jù)原理圖來選定所需的硬件元器件,以及足夠的連接導(dǎo)線。 熟悉各個(gè)元器件的電氣特性和內(nèi)部結(jié)構(gòu)特征 對(duì)我們所使用的面包板的接線原理有一個(gè)清晰的認(rèn)識(shí),為我們 硬件的接線起一個(gè)必要的鋪墊。 接線并合理的布局,使得我們所接的線路清

5、晰、明了,調(diào)試硬件電路,檢查錯(cuò)誤并分析解決。 軟件的設(shè)計(jì)步驟 分析整個(gè)課程設(shè)計(jì)的實(shí)驗(yàn)要求,即需求分析。 把步進(jìn)電機(jī)的遠(yuǎn)程控制分為兩個(gè)模塊:電機(jī)的本地控制和遠(yuǎn)程控制,分別來編寫。 依據(jù)具體的需求和實(shí)際的芯片特征,合適的調(diào)用8255和8251的A、B、C口的端口地址,以及其他的系統(tǒng)函數(shù)和自己編寫的函數(shù)。 編寫本地的電機(jī)控制程序,并與接好的硬件一起 。 編寫遠(yuǎn)程的控制程序。主要通過全雙工查詢方式串行通信程序的基本原理來具體地編寫,這是這個(gè)程序設(shè)計(jì)的一個(gè)難點(diǎn)和重點(diǎn)。 組合兩個(gè)模塊的程序,設(shè)置適當(dāng)?shù)姆?hào)信息來遠(yuǎn)程控制電機(jī)的運(yùn)行。并結(jié)合硬件電路調(diào)試和修改。 調(diào)試成功后,為所編寫的代碼書寫適當(dāng)?shù)淖⑨?,以便?/p>

6、序的修改和易懂性。 驗(yàn)收,書寫實(shí)驗(yàn)報(bào)告和文檔。2. 需求分析2.1 系統(tǒng)設(shè)計(jì)目標(biāo) 通過步進(jìn)電機(jī)遠(yuǎn)程控制系統(tǒng)設(shè)與制作,深入了解與掌握利用RS-232或RS-485串行通信標(biāo)準(zhǔn)進(jìn)行遠(yuǎn)程傳送的原理和方法。2.2 系統(tǒng)設(shè)計(jì)要求 甲機(jī)通過RS-232或RS-485接口遠(yuǎn)距離控制乙機(jī)一側(cè)步進(jìn)電機(jī)的起/停。 甲機(jī)通過RS-232或RS-485接口遠(yuǎn)距離控制乙機(jī)一側(cè)步進(jìn)電機(jī)的方向。 甲機(jī)通過RS-232或RS-485接口遠(yuǎn)距離控制乙機(jī)一側(cè)步進(jìn)電機(jī)的起/位、方向,并采用對(duì)話框選擇控制項(xiàng)目。2.3 系統(tǒng)設(shè)計(jì)內(nèi)容 進(jìn)行步進(jìn)電機(jī)遠(yuǎn)程控制系統(tǒng)電路硬件設(shè)計(jì),畫出電路原理圖,PCB圖或元器件布線圖; 安裝或焊接元器件; 進(jìn)

7、行步進(jìn)電機(jī)遠(yuǎn)程控制程序設(shè)計(jì); 系統(tǒng)聯(lián)調(diào),提交一個(gè)符合控制程序上述2種要求的通信程序作品3.設(shè)計(jì)環(huán)境3.1 課程設(shè)計(jì)平臺(tái) PC兼容機(jī) Windows 2000 MFID多功能微機(jī)實(shí)驗(yàn)平臺(tái) MF2KI集成開發(fā)環(huán)境 面包板 硬件元器件3.2 系統(tǒng)平臺(tái)配置 電源:機(jī)內(nèi)供電。 I/O端口地址:8255的4個(gè)端口地址為300H303H。其中A口300H,B口301H,C口302H,命令口303H。DIP4開關(guān)的4位開關(guān)全部向上置為ON; 電纜線與插座:采用26芯扁平電纜與J5;元器件:包括接口的對(duì)象永磁式四相步進(jìn)電機(jī),驅(qū)動(dòng)電路達(dá)林頓管TIP122,保護(hù)電路74LS373,相序指示燈以及開關(guān)SW1和SW2等

8、; 步進(jìn)電機(jī)模塊上的開關(guān)SW1和SW2的功能:配置為用來控制步進(jìn)電機(jī)的運(yùn)行方向、速度和啟動(dòng)/停止; 軟件資源:MF軟件提供的用戶應(yīng)用程序集成開發(fā)環(huán)境和工具,有Windows2000和98兩個(gè)版本,兩個(gè)版本都包含了豐富的匯編語言和C語言程序軟件開發(fā)包。4. 概要設(shè)計(jì) 4.1 硬件設(shè)計(jì)4.1.1 步進(jìn)電機(jī)控制電路(1)依據(jù)原理圖,連接硬件電路(2)將MFID平臺(tái)用26針接口把步進(jìn)電機(jī)硬件電路連接。4.1.2 遠(yuǎn)程控制電路的連接(1)8255A芯片與8251A芯片連接。(2)利用RS-232標(biāo)準(zhǔn)串行通信接口連接硬件平臺(tái),實(shí)現(xiàn)并口與串口的轉(zhuǎn)換。4.2 軟件設(shè)計(jì)4.2.1 步進(jìn)電機(jī)本地控制設(shè)計(jì)(1)能夠

9、在本地通過SW1/SW2控制步進(jìn)電機(jī)的啟動(dòng)/停止;(2)當(dāng)接收到遠(yuǎn)程發(fā)送來的控制信息,控制電機(jī)的不同方式的運(yùn)轉(zhuǎn)。4.2.2 步進(jìn)電機(jī)遠(yuǎn)程設(shè)計(jì)(1)當(dāng)本地按下SW1/SW2時(shí),依舊可以能夠識(shí)別并控制電機(jī);(2)發(fā)送控制信息,以串行通信的方式控制電機(jī)。4.2.3 硬件電路原理圖步進(jìn)電機(jī)本地控制原理圖,如圖4-1所示:圖4-1步進(jìn)電機(jī)本地控制原理圖 步進(jìn)電機(jī)遠(yuǎn)程控制系統(tǒng)原理圖,如圖4-2所示。圖4-2步進(jìn)電機(jī)遠(yuǎn)程控制系統(tǒng)原理圖5. 詳細(xì)設(shè)計(jì)5.1 步進(jìn)電機(jī)的控制原理步進(jìn)電機(jī)是將脈沖信號(hào)轉(zhuǎn)換成角位移的一種機(jī)電式數(shù)模轉(zhuǎn)換器。步進(jìn)電機(jī)旋轉(zhuǎn)的角位移與輸入脈沖的個(gè)數(shù)成正比;步進(jìn)電機(jī)的轉(zhuǎn)速與輸入脈沖的頻率成正比

10、;步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)方向與輸入脈沖對(duì)繞組加電的順序有關(guān)。因此,步進(jìn)電機(jī)旋轉(zhuǎn)的角位移、轉(zhuǎn)速以及方向均受輸入脈沖的控制。5.2 硬件設(shè)計(jì)5.2.1步進(jìn)電機(jī)控制電路設(shè)計(jì)步進(jìn)電機(jī)接口的硬件部分主要是提供輸送相序代碼的并行接口數(shù)據(jù)線(8根),以及保護(hù)電機(jī)繞組的器件,所以接口電路以8255A為主芯片(8255A的介紹詳見前面音樂發(fā)生器中的介紹),將PA口作為數(shù)據(jù)口,傳送加電代碼,再加上鎖存器74LS373作繞組保護(hù),74LS73芯片的引腳分配如圖5-1所示,TIP122+12VA圖5-2 TIP122原理圖功能對(duì)應(yīng)表如表5-1所示,功能表中當(dāng)G為高時(shí),Q輸出將隨數(shù)據(jù)D輸入而變;當(dāng)G為低時(shí),Q輸出將鎖存已建立的

11、數(shù)據(jù)電平。另外,還有功率驅(qū)動(dòng)管TIP122(如圖5-2),以及二極管(用作保護(hù)TIP驅(qū)動(dòng)管)、按鍵開關(guān)SW等。很明顯,這里并沒有什么聯(lián)絡(luò)線。這是因?yàn)榇颂幍谋豢貙?duì)象步進(jìn)電機(jī)總是處于準(zhǔn)備好接收8255A傳來的數(shù)據(jù)(相序加電代碼)的,不需要查詢是否準(zhǔn)備好,即無條件傳送。表5-174LS373功能表5.2.2 步進(jìn)電機(jī)的控制與串行通信原理步進(jìn)電機(jī)是將脈沖信號(hào)轉(zhuǎn)換成角位移的一種機(jī)電式數(shù)模轉(zhuǎn)換器。步進(jìn)電機(jī)旋轉(zhuǎn)的角位移與輸入脈沖的個(gè)數(shù)成正比;步進(jìn)電機(jī)的轉(zhuǎn)速與輸入脈沖的頻率成正比;步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)方向與輸入脈沖對(duì)繞組加電的順序有關(guān)。因此,步進(jìn)電機(jī)旋轉(zhuǎn)的角位移、轉(zhuǎn)速以及方向均受輸入脈沖的控制。RS-232標(biāo)準(zhǔn)串行

12、通信接口電路以8251為核心,8253提供發(fā)/收時(shí)鐘,8255控制8253的Gate門。另外,還有MAX232作電平轉(zhuǎn)換,MAX491作RS-232 與RS-485的轉(zhuǎn)換,JP31作中斷申請(qǐng)開關(guān)等。因此,該接口電路可實(shí)現(xiàn)兩種借口標(biāo)準(zhǔn)和查詢/中斷兩種方式的串行通信。5.2.3 步進(jìn)電機(jī)的啟/停以及速度控制設(shè)置開關(guān)為了控制步進(jìn)電機(jī)的啟/停和運(yùn)行方向,通常采用設(shè)置硬件開關(guān)或軟件開關(guān)的方法。所謂硬開關(guān)方法,一般是在外部設(shè)置按鍵開關(guān)SW,并且約定當(dāng)某個(gè)開關(guān)SW按下時(shí)啟動(dòng)運(yùn)行或停止運(yùn)行,而另外一個(gè)SW開關(guān)的開啟可用來控制步進(jìn)電機(jī)的運(yùn)行速度。為此,需要在程序中將開關(guān)SW的狀態(tài)讀入,以便檢測(cè)SW是否按下。所謂

13、軟開關(guān)方法,就是利用系統(tǒng)的鍵盤,定義某一個(gè)鍵,當(dāng)該鍵按下時(shí),啟動(dòng)或停止運(yùn)行。為此,在程序中要利用DOS系統(tǒng)功能調(diào)用來檢測(cè)鍵盤輸入。本次畢業(yè)設(shè)計(jì)中使用的使硬開關(guān)的方法。設(shè)置了SW1和SW2兩個(gè)硬開關(guān),分別連接到8255A的PC0和PC1,分別用以控制步進(jìn)電機(jī)的啟/停和方向控制。設(shè)計(jì)完成的具體步進(jìn)電機(jī)完整遠(yuǎn)程控制功能原理圖,如圖5-3所示。圖5-3步進(jìn)電機(jī)遠(yuǎn)程控制功能原理圖5.2.4 實(shí)驗(yàn)電路的搭建實(shí)驗(yàn)原理圖設(shè)計(jì)好了以后,在面包板上搭建步進(jìn)電機(jī)驅(qū)動(dòng)模塊的電路,并使用26芯的扁平電纜線,將面包板與平臺(tái)上的并行接口插座J5連接起來。搭建步驟參照前面音樂發(fā)生器電路模塊的步驟。5.2.5 步進(jìn)電機(jī)的控制程

14、序設(shè)計(jì)控制程序的設(shè)計(jì)思想實(shí)現(xiàn)步進(jìn)電機(jī)運(yùn)行方式、方向和速度以及啟/停的控制,是接口軟件設(shè)計(jì)的主要任務(wù)。為此,在編寫程序之前,要建立一個(gè)相序表。相序表的建立應(yīng)根據(jù)步進(jìn)電機(jī)運(yùn)行方式的要求。 運(yùn)行方式與方向的控制循環(huán)查表法繞組與數(shù)據(jù)線的連接 運(yùn)行方式 相序表 方 向加電代碼地址單元正向反向 雙八拍 表5-2 相序表D C B AD7 D6D5D4D3D2D1D00 0 0 0 0 1 0 10 0 0 1 0 1 0 10 0 0 1 0 1 0 00 1 0 1 0 1 0 00 1 0 1 0 0 0 00 1 0 1 0 0 0 10 1 0 0 0 0 0 10 1 0 0 0 1 0 1AB

15、ABCBCBCDCDCDADADAB05H 400H15H 401H14H 402H54H 403H50H 404H51H 405H41H 406H45H 407H步進(jìn)電機(jī)的運(yùn)行方式是指各相繞組循環(huán)輪流通電的方式。如四相步進(jìn)電機(jī)有單四拍、雙四拍、單雙八拍和雙八拍幾種方式。為了實(shí)現(xiàn)對(duì)各繞組按一定方式輪流加電,需要一個(gè)脈沖循環(huán)分配器。循環(huán)分配器可用硬件電路來實(shí)現(xiàn),也可用軟件來實(shí)現(xiàn)。采用軟件來設(shè)計(jì)脈沖循環(huán)分配器,又有兩種方法:控制字法和循環(huán)查表法。下面僅對(duì)普遍使用的循環(huán)查表法作一介紹。循環(huán)查表法是將各相繞組加電順序的控制代碼制成一張表步進(jìn)電機(jī)相序表,存放在內(nèi)存區(qū),再設(shè)置一個(gè)地址指針。當(dāng)?shù)刂分羔樢来渭?/p>

16、1(或減1)時(shí),即可從表中取出加電的代碼,然后輸出到步進(jìn)電機(jī),產(chǎn)生按一定運(yùn)行方式的走步操作。若改變相序表內(nèi)的加電代碼和地址指針的指向,則可改變步進(jìn)電機(jī)的運(yùn)行方式和方向。相序表的建立,要考慮兩個(gè)因素:一是應(yīng)根據(jù)步進(jìn)電機(jī)運(yùn)行方式的要求;二是步進(jìn)電機(jī)的各項(xiàng)繞組與數(shù)據(jù)線連接的對(duì)應(yīng)關(guān)系。這意味著相序表中的加電代碼,與步進(jìn)電機(jī)的運(yùn)行方式及繞組與數(shù)據(jù)線的連接有關(guān)。因此,實(shí)現(xiàn)同一種運(yùn)行方式,而由于繞組與數(shù)據(jù)線的連接不同,可以有多種相序加電代碼。表5-2列出了四相雙八拍運(yùn)行方式的一種相序加電代碼。當(dāng)然,運(yùn)行方式發(fā)生改變,加電代碼也會(huì)改變。步進(jìn)電機(jī)的運(yùn)行方向是采用設(shè)置相序表的指針進(jìn)行控制的。如表5-2所示,如果把

17、指針設(shè)在指向400H單元開始,依次加1,取出加電代碼去控制步進(jìn)電機(jī)的運(yùn)行方向叫做正(向前)方向,那么,再把指針改設(shè)在指向407H單元開始,依次減1的方向就是反(向后)方向。另外,表5-2中的地址單元是隨便給定的,在程序中是定義一個(gè)變量,來指出相序表的首址??傊?,對(duì)步進(jìn)電機(jī)運(yùn)行方式的控制是采用建立相序表的方法,而運(yùn)行方向的控制是設(shè)置相序表的指針來解決。 步進(jìn)電機(jī)運(yùn)行速度的控制軟件延時(shí)法控制步進(jìn)電機(jī)速度有兩個(gè)途徑:一是硬件改變輸入脈沖的頻率,通過對(duì)定時(shí)器(如:8253)定時(shí)常數(shù)的設(shè)定,使其升頻、降頻或恒頻。二是軟件延時(shí),或調(diào)用子程序。采用軟件延時(shí)方法來改變步進(jìn)電機(jī)速度,雖然簡(jiǎn)便易行,但延時(shí)受CPU

18、主頻的影響,導(dǎo)致在主頻較低的微機(jī)上開發(fā)的步進(jìn)電機(jī)控制程序換到較高的主頻的微機(jī)上,就不能正常運(yùn)行,甚至由于頻率太高,步進(jìn)電機(jī)干脆不動(dòng)了。應(yīng)該指出的是,步進(jìn)電機(jī)的速度還受到本身距頻特性的限制,設(shè)計(jì)時(shí)應(yīng)滿足運(yùn)行頻率與負(fù)載力矩之間的確定關(guān)系,否則,就會(huì)產(chǎn)生失步或無法工作的現(xiàn)象。5.3 軟件設(shè)計(jì)5.3.1 步進(jìn)電機(jī)控制程序設(shè)計(jì)(1) 端口的使用I/O端口地址:8255的4個(gè)端口地址為300H303H。其中A口300H,B口 301H,C口302H,命令口303H。8253的四個(gè)端口地址為304H307H,其中通道0為304H,通道1為305H,通道2為306H,命令口為307 H。8251的兩個(gè)端口為:

19、308 H309 H,其中,308 H為8251數(shù)據(jù)口,309 H為命令/狀態(tài)口。(2) 步進(jìn)電機(jī)的驅(qū)動(dòng)步進(jìn)電機(jī)在系統(tǒng)中是一種執(zhí)行元件,都要帶負(fù)載,因此,需要功率的驅(qū)動(dòng)。在電子儀器和設(shè)備中,一般所需功率較小,常采用達(dá)林頓復(fù)合管作功率驅(qū)動(dòng)。驅(qū)動(dòng)原理圖如5-4所示。圖5-2中2,在TIP122的基極上,加電脈沖為高時(shí),加電代碼1時(shí),達(dá)林頓管導(dǎo)通,使繞組A通電;加電代碼0時(shí),繞組斷電。控制輸出 使能 G D 輸出 QL H H HL H L LL L x Q0H x x Z表5-3 74LS373功能對(duì)應(yīng)表步進(jìn)電機(jī)在系統(tǒng)中是一種執(zhí)行元件,都要帶負(fù)載,因此,需要功率的驅(qū)動(dòng)。在電子儀器和設(shè)備中,一般所需

20、功率較小,常采用達(dá)林頓復(fù)合管作功率驅(qū)動(dòng)。在TIP122的基極上,加電脈沖為高時(shí),加電代碼1時(shí),達(dá)林頓管導(dǎo)通,使繞組A通電;加電代碼0時(shí),繞組斷電。5.3.2 程序流程圖 本地接收程序流程圖如圖5-4所示。圖5-4本地接收程序流程圖 遠(yuǎn)程控制程序流程圖,如圖5-6 所示。圖5-6遠(yuǎn)程控制程序流程圖5.3.3 代碼生成步進(jìn)電機(jī)本地控制的程序見附錄AI;步進(jìn)電機(jī)遠(yuǎn)程控制的程序見附錄AII。6 系統(tǒng)調(diào)試與操作說明6.1 系統(tǒng)調(diào)試6.1.1 檢測(cè)實(shí)驗(yàn)平臺(tái)及配套設(shè)備在關(guān)機(jī)狀態(tài)下將PCI總線驅(qū)動(dòng)板插入電腦主板上PCI總線插槽中,并用50芯扁平電纜線將總線信息接入到MFID多功能微機(jī)實(shí)驗(yàn)平臺(tái)的50芯擴(kuò)展總線插

21、座J1。然后開機(jī),進(jìn)入MF多功能微機(jī)實(shí)驗(yàn)集成開發(fā)環(huán)境,利用平臺(tái)板上的資源,運(yùn)行程序,檢測(cè)系統(tǒng)的硬件環(huán)境是否正常。如果正常,則繼續(xù)下一步的操作;如果不正常,則開啟MF中的故障檢測(cè)軟件,對(duì)運(yùn)行平臺(tái)上的芯片進(jìn)行針對(duì)性檢測(cè),直到平臺(tái)的硬件系統(tǒng)正常為止。6.1.2 調(diào)試自己設(shè)計(jì)的軟件控制程序?qū)嶒?yàn)平臺(tái)硬件完好的情況下,利用平臺(tái)板上的硬件資源來調(diào)試根據(jù)實(shí)驗(yàn)要求自己編寫的程序。其調(diào)試方法是:采用MF集成開發(fā)環(huán)境提供的軟件工具,點(diǎn)擊編譯菜單項(xiàng),對(duì)自編的程序進(jìn)行編譯、連接和運(yùn)行,觀察控制程序運(yùn)行結(jié)果是否達(dá)到設(shè)計(jì)要求。如果達(dá)到要求,則繼續(xù)下一步的操作,否則,對(duì)自編的程序進(jìn)行調(diào)試,直至運(yùn)行結(jié)果符合要求為止。6.1.3

22、 調(diào)試自己設(shè)計(jì)的硬件控制電路將實(shí)驗(yàn)平臺(tái)板上的部分電路換成自己搭建的模塊電路,然后運(yùn)行MF集成開發(fā)環(huán)境提供的實(shí)驗(yàn)演示程序,觀察是否能滿足硬件電路設(shè)計(jì)的要求。如果能滿足要求,則進(jìn)行下一步的操作,否則,進(jìn)行電路調(diào)試,直至滿足要求為止。調(diào)試所用到的工具是萬用表和示波器。6.1.4 硬件控制電路與軟件控制程序聯(lián)調(diào)將自制的模塊電路(在面包板上)連接到系統(tǒng)設(shè)計(jì)平臺(tái)相應(yīng)接口插座處,構(gòu)成一個(gè)包括CPU、接口和被控對(duì)象完整的微機(jī)控制系統(tǒng),同時(shí)將自己設(shè)計(jì)的控制程序調(diào)入內(nèi)存,然后點(diǎn)擊MF集成開發(fā)環(huán)境軟件中的編譯,進(jìn)行編譯、連接和運(yùn)行該程序,觀察結(jié)果是否正確。如果前面幾步是嚴(yán)格按照順序走下來的,這時(shí)應(yīng)該得到正確的結(jié)果,

23、于是一個(gè)實(shí)驗(yàn)就成功了。由于本次實(shí)驗(yàn)開發(fā)所使用的是MFID多功能實(shí)驗(yàn)平臺(tái)提供的硬件平臺(tái)和集成開發(fā)環(huán)境軟件工具,整個(gè)調(diào)試過程比較順利。因此,建議那些對(duì)MFID多功能實(shí)驗(yàn)平臺(tái)不太熟悉的開發(fā)人員,多花點(diǎn)時(shí)間去了解和熟悉這個(gè)實(shí)驗(yàn)平臺(tái)的使用。6.2操作說明6.2.1 硬件連接與程序運(yùn)行用RS-485電纜連接兩臺(tái)MFID平臺(tái),再用26芯排線連接本地MFID平臺(tái)和面包板分別在本地和遠(yuǎn)程計(jì)算機(jī)上安裝并運(yùn)行LocalControl.cpp 與RemoteControl.cpp程序6.2.2電機(jī)轉(zhuǎn)動(dòng)及發(fā)光二極管發(fā)光情況 (1)啟動(dòng) 本地控制端,按開關(guān)SW1,電機(jī)順時(shí)針轉(zhuǎn)動(dòng),四個(gè)發(fā)光二極管順時(shí)針輪流正常發(fā)光;遠(yuǎn)程控制

24、端,敲擊鍵盤上的“B”鍵,運(yùn)行情況和本地控制一致。(2)停止本地控制端,按下開關(guān)SW2,電機(jī)及發(fā)光二極管停止運(yùn)轉(zhuǎn)和發(fā)光;遠(yuǎn)程控制端,敲擊鍵盤上的“P”鍵,運(yùn)行情況和本地控制一致(3)電機(jī)轉(zhuǎn)動(dòng)及發(fā)光當(dāng)電機(jī)啟動(dòng)后,本地不能夠用開關(guān)同時(shí)控制電機(jī)的運(yùn)轉(zhuǎn)方向。遠(yuǎn)程控制端,在鍵盤上敲擊“A”鍵,電機(jī)順時(shí)針轉(zhuǎn)動(dòng),四個(gè)發(fā)光二極管順時(shí)針閃亮;再敲擊“F”鍵,電機(jī)轉(zhuǎn)動(dòng)變快和四個(gè)發(fā)光二極管也快速閃亮;如果再敲擊“S”鍵,相反,電機(jī)與發(fā)光二極管轉(zhuǎn)動(dòng)與發(fā)光都邊慢。當(dāng)敲擊“D”鍵時(shí),電機(jī)與發(fā)光二極管都逆時(shí)針轉(zhuǎn)動(dòng)與發(fā)光,同理上述說明,若再敲擊“F”、“S”,情況與順時(shí)針時(shí)類似,只是轉(zhuǎn)動(dòng)與閃亮順序相反。(4)退出本地或遠(yuǎn)程控

25、制端按下“ESC“鍵,運(yùn)行程序退出。7. 設(shè)計(jì)總結(jié)和心得體會(huì) 通過這次課程設(shè)計(jì),我更加深刻的認(rèn)識(shí)到了步進(jìn)電機(jī)遠(yuǎn)程控制的基本原理和硬件電路中各個(gè)芯片的內(nèi)部結(jié)構(gòu)。由于我們的課程設(shè)計(jì)是小組完成的,因而協(xié)調(diào)小組中個(gè)成員的任務(wù)的極其重要的。只有作為小組長(zhǎng)的我們細(xì)心的分配好具體的任務(wù),并且時(shí)時(shí)地監(jiān)督檢查小組成員的任務(wù)完成情況,我們的設(shè)計(jì)任務(wù)才能夠按計(jì)劃的進(jìn)行。 在軟件編寫的過程中,我遇到了很多平時(shí)沒有遇到和了解的問題。首先,就是端口地址的具體調(diào)用,并且在設(shè)計(jì)中如何去使用。在這一點(diǎn)上,通過張緒輝老師在實(shí)驗(yàn)室里,給大家仔細(xì)分析例程的過程中,我基本上理解到端口地址的調(diào)用。 在遠(yuǎn)程控制這一塊,我首先通過分析參考例

26、程,并做相應(yīng)的修改,依然無法控制電機(jī),后來,通過與我做同一個(gè)課程設(shè)計(jì),也是我的室友陳冠宏的分析幫助下,我才了解到原來是我在初始化的方式上出現(xiàn)了問題。后來,我們又經(jīng)常在一起討論軟件設(shè)計(jì)方面的問題,這對(duì)我在軟件編寫上收益匪淺,可是我們又遇到了同樣的問題,一旦電機(jī)運(yùn)行后,遠(yuǎn)程可以控制啟/停,而本地卻無效。在這塊,我也做了一定的嘗試,但事倍功半。我和陳冠宏在龔老師和李暢老師的指導(dǎo)下,終于解決了這個(gè)難題! 在我們小組中,我覺得任務(wù)的分配比較合理的。其中,由兩個(gè)小組成員負(fù)責(zé)硬件電路的搭接和資料的搜集,另外讓一個(gè)成員負(fù)責(zé)PCB圖的制作。當(dāng)然,在協(xié)調(diào)他們的工作上,我由于經(jīng)驗(yàn)上的不足,還是有些小的細(xì)節(jié)不能顧及到

27、,因而出現(xiàn)了一些進(jìn)度的滯后,是我今后在團(tuán)隊(duì)合作中應(yīng)注意到的。 總的說來,我還是覺得我們小組的每個(gè)人在課程設(shè)計(jì)期間都是付出了努力,并且都是有很大的收獲的。對(duì)于我自己來說,最深刻的體會(huì)是:通過課程設(shè)計(jì)的鍛煉,讓我了解到自己的知識(shí)的不足,同時(shí)也學(xué)到了各種電器件(面包板、萬用表、電烙鐵)的使用。致 謝在這次課程設(shè)計(jì)期間,有很多的老師和同學(xué)給予了我很多的幫助,在這里,我特別要感謝我們的項(xiàng)目指導(dǎo)老師 龔義建老師,張緒輝老師、孫延維老師、陳宇老師、杜發(fā)啟老師,還有特地從公司返回母校指導(dǎo)我們課程設(shè)計(jì)的李暢學(xué)長(zhǎng),以及給予過我無私幫助的同學(xué)。正是因?yàn)樗麄兊牟痪氲膸椭椭笇?dǎo),才使得我們的課程設(shè)計(jì)得以順利的完成!并且

28、完全實(shí)現(xiàn)了設(shè)計(jì)要求的功能!在此,我對(duì)他們表示深深的感謝!參考文獻(xiàn)1 劉樂善主編 微型計(jì)算機(jī)接口技術(shù)及應(yīng)用 華中科技大學(xué)出版社,2000年第1版2 譚浩強(qiáng)主編 C 程序設(shè)計(jì)(第二版)清華大學(xué)出版社,1999年第2版3 32 位MFID-4微機(jī)實(shí)驗(yàn)指導(dǎo)書華中科技大學(xué)計(jì)算機(jī)學(xué)院自編21附 錄A步進(jìn)電機(jī)遠(yuǎn)程控制程序代碼I 步進(jìn)電機(jī)本地控制程序如下:/-/-步進(jìn)電機(jī)本地控制程序-/-* LocalControl Protram *-#include <conio.h> /kbhit();#include <stdio.h> /printf();#include <dos.h

29、> /delay();#define data51 0x308 /8251A數(shù)據(jù)口#define ctrl51 0x309 /8251A命令/狀態(tài)口#define ctrl55 0x303 /8255命令口#define timer1 0x305 /timer 1 of 8253#define timer2 0x306 /8253的2號(hào)計(jì)數(shù)器端口#define timctl 0x307 /8253命令口#define factor 16 /波特率因子16#define baudRate 4800 /Set BaudRate/-* 定義函數(shù) *-void ReceiveInit();voi

30、d Listening();void int51();void set_bps(int bps);void MotorInit();void StartWork();void StopWork();void SetSequenceTable(int t);int* table; / 相序表指針char rcmd; /定義接受遠(yuǎn)程命令信息變量int status; /定義狀態(tài)變量void main()printf("-nn");printf("* Remote StepMotor Control System *nn");printf("-n&q

31、uot;);printf("n Receiving remote control command.n");printf("n Press 'Esc' to exit the application!n");ReceiveInit();for(;)if (kbhit()/ 檢查按鍵if(getche()=0x1b)/是ESC?是,則退出,并返回DOSoutport(ctrl55,0x0c);/關(guān)閉8253return;if(inportb(0x301) = 0x02)StartWork();rcmd = 0;Listening();if(r

32、cmd ='b')StartWork();rcmd = 0;/ rcmd 置空StopWork();/*/ Serial Communication ModuleStart/*unsigned long int clk = 1193182;/8251輸入時(shí)鐘頻率(十六進(jìn)制表示)void ReceiveInit()set_bps(baudRate);int51();outportb(0x303,0x82); /Initialization 8255outportb(0x303,0x0d); /置PC6=1,打開8253-5的GATE2,開始輸出方波void Listening()

33、status=inportb(ctrl51);/獲取8253 TXRDY 狀態(tài)status=inportb(ctrl51);/已準(zhǔn)備好,即有數(shù)據(jù)傳送過來,則接收1個(gè)字符if(status&0x02)!=0)rcmd=inportb(data51);printf("%c",rcmd);void int51()outportb(ctrl51,0x00);delay(100);outportb(ctrl51,0x40); /8251復(fù)位delay(100);outportb(ctrl51,0x4a); /8251A方式命令delay(100);outportb(ctrl5

34、1,0x27); /8251A工作命令void set_bps(int bps)int i,sendhigh,sendlow;i=clk/bps;i=i/factor; /計(jì)算計(jì)數(shù)初值sendhigh = (i>>8)&0x00ff;sendlow = i & 0x00ff;outportb(timctl,0xb6);outportb(timer2,sendlow); /裝計(jì)數(shù)初值低字節(jié)outportb(timer2,sendhigh); /裝計(jì)數(shù)初值高字節(jié)/*/ Serial Communication Module End /*/*/ StepMotor Com

35、mand ModuleBegin/*void MotorInit()/outportb(0x303,0x81); /初始化outportb(0x303,0x09); /置PC4=1關(guān)閉74LS373 outportb(0x303,0x08); /置PC4=0,打開74LS373void StartWork()int xu8=0x05,0x15,0x14,0x54,0x50,0x51,0x41,0x45; /相序表int rxu8=0x45,0x41,0x51,0x50,0x54,0x14,0x15,0x05;/反向相序表unsigned int i=0;int delayTime = 20;c

36、har cmd = 0;table = xu; / 默認(rèn)相序表doMotorInit(); outportb(0x300,tablei);/送相序代碼到PA口 i+; if(i=8) i=0; delay(delayTime);/延時(shí)Listening();if(char)cmd != (char)rcmd)cmd = rcmd;elsecmd = 0; switch(cmd)case 'f': delayTime = 20;/printf("StepMotor rotated at high speed!n");break;case 's'

37、:delayTime = 100;/printf("StepMotor rotated at low speed!n");break;case 'a':SetSequenceTable(xu);/printf("StepMotor deasil rotate!n");break;case 'd':SetSequenceTable(rxu);/printf("StepMotor anticlockwise rotate!n");break;default:break; /x=inportb(0x301);

38、while(inportb(0x301)!=0x01)&&!(rcmd='p');/查SW2按下,或p鍵按下 void SetSequenceTable(int t)table = t;void StopWork()outportb(0x303,0x09);/置PC4=1,關(guān)閉74LS373/*/ StepMotor Command Module End/*II 遠(yuǎn)程控制程序如下:/*-*/* RemoteControl.cpp(查詢方式全雙工串行通信接口實(shí)驗(yàn)) */* 查詢方式全雙工串行通信程序 Source File */* Copyright (c) 20

39、01 by HUST */*-*/#include <conio.h> /kbhit();#include <stdio.h> /printf();#include <dos.h> /delay();#define data51 0x308 /8251A數(shù)據(jù)口#define ctrl51 0x309 /8251A命令/狀態(tài)口#define ctrl55 0x303 /8255命令口#define timer2 0x306 /8253的2號(hào)計(jì)數(shù)器端口#define timctl 0x307 /8253命令口/#define clk 1193182 #define factor 16 /波特率因子16unsigned long int clk = 1193182;/8251輸入時(shí)鐘頻率(十六進(jìn)制表示)/定時(shí)常數(shù)數(shù)組const int boundRate = 4800;void int51(); /初始化8251avoid set_bps(int bps); /8253-5記數(shù)初值計(jì)算與裝入void main()int scmd,rcmd,status;set_bps(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論