三維伺服數控平臺設計_第1頁
三維伺服數控平臺設計_第2頁
三維伺服數控平臺設計_第3頁
三維伺服數控平臺設計_第4頁
三維伺服數控平臺設計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

三維伺服數控平臺設計學院機電工程學院專業(yè)班級學號姓名指導教師負責教師摘要由數字信息導向的控制程序對機械運動和工作過程進行操控的技術,就是所謂的數控加工技術。這門技術概括使用了計算機技術、微電子技術、伺服驅動、主動控制和精密測繪等學科的集成應用。數控銑床的核心在于控制系統(tǒng),控制系統(tǒng)實現了數字化的零件的輸入程序,完成輸入信息的存儲、數據的變換和插補的運算等,從而實現各種控制功能。銑床控制系統(tǒng)的設計必須考慮軟硬件的匹配,其設計必須從經濟、實用、可行等諸多方面考慮。本次畢設以AT89C51單片機為主體實現的控制系統(tǒng),在硬件設計上易于實現有效的控制功能,結構相對簡單;在軟件設計上,通過插補程序的編制,相對容易地實現對銑床的運行方向和運行速度等方面的控制。起先用SolidWorks軟件畫出銑床,然后用單片機進行控制。用Proteus進行仿真模擬。電路仿真技術就是通過軟件來實現并檢驗所設計電路功能的過程。Proteus不僅是模擬電路、數字電路、模擬混合電路的設計平臺,更是世界上最先進的單片機和嵌入式系統(tǒng)的設計與仿真平臺。關鍵詞:數控加工;單片機;SolidWorks;ProteusDesignof3DservonumericalcontrolplatformAbstractThetechnologyofcontrollingthemechanicalmovementandworkingprocessbythedigitalinformation-orientedcontrolprogramistheso-callednumericalcontroltechnology.Thetechnologyofthistechnologyissummarizedintheapplicationofcomputertechnology,microelectronicstechnology,servodrive,activecontrolandprecisionmappingandothersubjects.ThecoreoftheCNCmillingmachineliesinthecontrolsystem,controlsystemtorealizethedigitalpartsoftheinputprogram,completetheinputinformationstorage,datatransformandinterpolationoperation,inordertoachieveavarietyofcontrolfunctions.Thedesignofthecontrolsystemformillingmachinemustconsiderthematchingofthehardwareandsoftware,anditmustbeconsideredfromtheaspectsofeconomy,practicalityandfeasibility..ThecompletesetofAT89C51asthemaincontrolsystem.Inthehardwaredesigneasytoachieveeffectivecontrolfunction,structureisrelativelysimple;inthesoftwaredesign,interpolationproceduresthroughthepreparationof,relativelyeasytoachieverunningdirectionandspeedofthemillingmachinecontrol.Atfirst,usingSolidWorkssoftwaretodrawamillingmachine,andthenusethemicrocontrollertocontrol.SimulationwithProteus.Circuitsimulationtechnologyistoachieveandtestthefunctionofthecircuitbysoftware..Proteusisnotonlythedesignplatformofanalogcircuit,digitalcircuitandanalogcircuit,butalsothemostadvancedMCUandembeddedsystemintheworld..Keywords:SinglechipmicrocomputerSolidWorksProteus目錄TOC\o"1-5"\h\z\o"CurrentDocument"摘要IDesignof3DservonumericalcontrolplatformII\o"CurrentDocument"1、緒論1\o"CurrentDocument"1.1引言1\o"CurrentDocument"1.2數控技術的發(fā)展方向及本次畢設的主旨1\o"CurrentDocument"1.3數控技術的國內現狀及發(fā)展趨勢2\o"CurrentDocument"2、三維建模及二維工程圖4\o"CurrentDocument"SolidWorks軟件介紹4\o"CurrentDocument"2.2三維實際建模過程4\o"CurrentDocument"2.3二維工程圖6\o"CurrentDocument"3、單片機的介紹及程序說明7\o"CurrentDocument"3.1單片機的概述7\o"CurrentDocument"3.2單片機控制系統(tǒng)設計8\o"CurrentDocument"3.3程序說明8\o"CurrentDocument"4、Proteus中電子電路建立及仿真模擬10\o"CurrentDocument"proteus仿真軟件的介紹10\o"CurrentDocument"4.2仿真電路實現過程10\o"CurrentDocument"4.3程序實現簡述及其源程序15\o"CurrentDocument"參考文獻271、緒論1.1引言近些年來,計算機技術不斷發(fā)展,計算機圖形處理能力不斷增強,以計算機為依托的仿真技術也快速發(fā)展起來,并在短時間內應用于各工程領域。在計算機平臺上進行機械零件的設計、校核,電子電路的設計,軟件的編程,最終進行系統(tǒng)運動仿真,己經逐漸成為機電一體化設計的發(fā)展趨勢。設計與制造的傳統(tǒng)步驟,第一步是方案設計及論證,第二步進行產品設計。在第二步完成后,為了驗證第二步的設計有無問題,通常要制造一臺母機進行試驗,這些試驗中常常出現破壞性的結果。當試驗顯現發(fā)現缺點不足時,又要回頭修改第二步設計并再用樣機驗證。這是一個周而復始、不斷循環(huán)的設計一試驗一設計過程,只有通過這種嚴苛而復雜的過程,產品才能達到所要求的性能。不過這一程序是冗長的,尤其對于結構繁復的系統(tǒng),設計周期更是無法縮短,哪還用談對市場的靈活反應了。時下大多數的情況是,企業(yè)工程師們?yōu)榱舜_保產品按時投向市場而不得已中斷簡化這一過程,使產品在上市后便出現這樣那樣的問題,這也是許多人認為國內企業(yè)先天不足的由來。時下的大背景是激烈市場競爭,在實際樣機平臺上的設計驗證程序嚴重地限制了其產品質量、其成本及其對市場的占有。隨著全球化經貿態(tài)勢的日漸顯現,要想奪競爭取趨激烈的市場,并擴大市場占有率。便應運出現了開發(fā)周期短暫,產品質量足夠保障,成本低廉以及對市場反應靈活運營方式。哪個公司早推出產品,哪個公司就占有市場。顯然傳統(tǒng)的設計與制造步驟根本無法滿足以上要求。1.2數控技術的發(fā)展方向及本次畢設的主旨已經問世40多年的數控技術是基于諸多基礎學科而發(fā)展起來的,這是一門不算新興,但卻舉足輕重的跨越性科學,是自動化,機電一體化,簡單化,居家化,小型化制造業(yè)的基石。在未來,數控技術,仿真模擬技術的不斷升級改良,普及大眾,基礎零件更容易獲得,企業(yè)源代碼的逐步放送,會使得有興趣,有志于此的人可以在家中,用簡單的機床加工出自己設計的手機,遙控器等數碼產品。也可以對各種買來的家用電子元件進行個性化的魔改。就好像美國電影中,一個鄉(xiāng)下農場中,個人的愛好小作坊居然也能發(fā)展,制造出改變世界的發(fā)明一樣。這些都是數字化技術,數控技術,仿真模擬技術大統(tǒng)一的必然結果。本次畢設就是對于數控銑床進行一次簡單的二次開發(fā),通過畢設中設計出的4乘4矩陣鍵盤,實現銑刀X軸,Y軸的控制走向。這個二次開發(fā)可以連接已有的數控銑床,使工人們不必在使用銑床之前,背誦大量G17,G18,G90,G40等預存語言,可以通過簡單的X軸,Y軸正傳反轉來控制。也可以連接普通的非數字化銑床,將其升級為半自動化銑床,解放手工操作。當然,本次畢設立意的確不凡,但筆者能力實在有限,所設計出的電子電路及操控軟件并不符合實際生產生活需要,但通過本次畢設,讓筆者對于電子電路及單片機開發(fā)應用大感興趣,并親手調試程序,理解銑床控制的基本原理。1.3數控技術的國內現狀及發(fā)展趨勢我國的數控技術起步較晚,雖然在學校精工實習時接觸了一些數字化機床,但大多是一代,二代,三代的老式機床,命令語句復雜,且不知能。精工實習過程中,在銑床實習時,筆者曾編譯了一段程序,將蠟塊銑成摩托諾拉的某款經典機型,當然,現在的手機大多為平板觸屏手機,簡單的程序就可以銑出超薄的平面機型,似乎根本不用迫切發(fā)展數控技術,當然,此為笑言。筆者在假期實習時,曾進入一些工廠實習工作,這些工廠中還保留著大量非數控的銑床,車床等機床。一些老工人手藝精湛,根本不需要背誦繁復的數控指令,看幾眼零件,摸幾下就能加工出精美利落的成品。但未來的工業(yè)是大工業(yè)時代,大批量機加制成品依然占據著絕大部分市場。我國也不再是當年那個發(fā)射東方紅一號時,有幾塊鋼板還是老師傅一錘子一錘子才敲打出弧形的國情了。在筆者看來數字技術必然如上文所說一樣,逐漸簡單化,平民化,全民有興趣之人都可以參與進來,都可以按照自己的個性加工出自己的零件,編寫調試出帶有個人特點的程序,組裝自己心儀的產品,實現每個人不同的要求。2、三維建模及二維工程圖2.1SolidWorks軟件介紹目前流行的主流高、中端三維CAD軟件很多,如UG、II、CATIA、Pro—E、SolidEdge、SolidWorks等,選擇空間很大。所有方才所述的軟件中,都供應了過程裝置以及運動干涉檢驗、仿真模擬等功能,以及最重要的系統(tǒng)二次開發(fā)接口。這使得熟用上述軟件之人可以自行開發(fā)出自己用著順手的應用程序。SolidWorks是一套基于Windows的CAD/CAE/CAM/PDM桌面集成系統(tǒng),是美國SolidWorks公司于1995年11月研制的。該軟件將二維制圖和三維構型技術巧妙的雜糅為一體,操作便宜,上手極快,可以完成復雜的構型設計、大型裝配、高級曲面設計造型和設計修改等。集構型設計、應力分析、仿真加工和數據管理于一款軟件,可以模擬動態(tài)裝配過程,計算質量特征,可將三維實體構件轉化為二維平面工程圖。2.2三維實際建模過程實際建模復雜艱辛,筆者以前學過CAD、CATIA等建模軟件,這次經同學介紹學習使用SolidWorks這款軟件,單前期學習準備便花了兩周時間,畫出了七八個小零件,總算初步學會使用這款軟件。根據實際測量所得銑床尺寸,將此次三維構件分解為三個零構件,分別為銑床底座,可移動固件平臺,刀具裝置件。如下圖2.1,2.2便是其中刀具裝置件與可移動固件平臺兩個零件。其中可移動平臺的固定卡具很不好建模,孔多件難,還不好測量,特意接了一個卡尺反復測量,有照了很多照片對比建模,但最后還是反復跑了機械館數次,才測得準確數字,勉強畫出了幾個零件。

圖2.1刀具裝置件圖2.2可移動固件平臺下邊分別羅列了構建的整體視覺圖以及正視圖,側視圖等。圖2.3整體視覺圖從上圖的整體視覺圖中不難看出,可移動固定平臺有X軸移動行程,與Y軸移動行程。其工作范圍分別是X=120mm,Y=160mm;采用滾珠絲杠桿作為傳動裝置,絲杠導程4mm。設計中伺服電機最大進給速度2m/min。在軟件裝配時,X軸Y軸的導軌安裝十分麻煩,因為無法將固定平臺拆卸下來,自然不知道其中連接方式,上網查詢了很多銑床裝配圖,也無法完整的復制出移動平臺的安裝方式,更無從在軟件中制作約束。圖2.4正視圖圖2.5側視圖2.3二維工程圖3、單片機的介紹及程序說明3.1單片機的概述自1946年美國軍方定制的第一臺計算機現世以來,計算機的微型化便從未停止過其腳步,最開始的計算機機箱需要幾間屋子盛放,后來變成火車頭大小,再到八九十年代的臺式機,筆記本,平板電腦。如今,計算機已經變成了指甲大小,這便是單片機。單片機全稱單片微型計算機,又被稱為微控制器、單片機,是微型計算機家族中的一個重要成員。單片機是將微處理器(計算機的中央處理單元CPU)CentralproeessingUnit)、一定容量的RAM和ROM以及I/O接口、定時等電路集成在一片芯片上。而不單單是完成某一個邏輯功能的芯片。概括的講:一塊芯片就是一臺計算機,它的體積小、質量輕、價格低、為學習應用和開發(fā)提供了便利條件。?虬1FDDr:心P0.1^D1Pg物EEL?PCM1■:心PU.祁度PCI&:疵PO7fAD7PZ.Q'PBPW.1㈣P22JAIDPSENP2.^11ALEP24/A12EaP25JA13P2^:A14P27JA15PILIP3LLiRKDP1.1R3VTXDP1.2P3.2ilNTOPI3pa.artNTiPl.4pa.q-TOPLSR3iiT1Pl6P:16JWRF1.7F37JFD91131j246二8■9R-1>b43?123-4一6R-7rtoo1234■33333-^33Q222221I111111圖3.1AT89C51單片機單片機是一塊集成芯片,除了具有集成芯片的特點外還有許多其他不同特點,本次畢設選用的是AT89C51這塊單片機。這是一種帶閃存可編程只讀存儲器的單片機。AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活價廉的方案。上圖3.1便是本次畢設選用的AT89C51單片機,在proteus中的模型。3.2單片機控制系統(tǒng)設計單片機編程之前需要規(guī)劃出整個系統(tǒng)的控制流程圖,通過流程圖指導程序編譯,電子電路連接等。下圖是本次畢設大體流程控制,分別從指令輸入,到單片機與電路互動,指導伺服系統(tǒng),電機轉動帶動銑床。下圖3.2為大體控制流程圖。指令諭入M占軸!T仙,正轉,反轉,X軸移動教據mY軸移動數據圖3.2控制系統(tǒng)流程圖3.3程序說明此次畢設的程序編譯部分,圖3.3的流程圖進行編譯,首先進行頭文件調用#include<reg52.h>,定義需要使用的各種編碼table[]={0x3f,0x06..0x79,0x71},隨后各定義全局變量u11,u12,key1等,定義變量輸入sbitPWM1=P3A4。定義延遲函數voiddelay(uintx),定義初始化函數voidinit(),定義共陰極數碼管顯示函數voiddisplay(ucharsegNo,ucharnum),定義鍵盤掃描函數voidkeyScan(),定義主

函數voidmain(void)。在主函數中分別調用初始化函數,鍵盤掃描函數,在顯示函數中顯示。最后編寫中斷函數,控制輸出波形。下圖圖3.3為指導本次編程的流程圖:圖3.3編程流程圖在編程中,最為重要的便是鍵盤掃描函數,在鍵盤掃描函數中使用switch函數,分別對矩陣鍵盤的每一行進行詢問,待相應之后分別對每一個回應,對應的每一個鍵位進行定義,以實現矩陣鍵盤的各種功能。4、Proteus中電子電路建立及仿真模擬4.1proteus仿真軟件的介紹PROTEUS軟件是由英國LabcenterElectronics公司開發(fā)的EDA工具軟件。它從1989年問世至今,經過了近20的使用、發(fā)展和完善,功能越來越強大,性能越來越好。PROTEUS安裝以后,主要由兩個程序組成:ARES和ISIS。前者主要用于PCB自動或人工布線及其電路仿真,后者主要采用原理布圖的方法繪制電路并進行相應的仿真。除了上述基本應用之外,PROTEUS革命性的功能在于它的電路仿真是互動的,針對微處理器的應用,可以直接在基于原理圖的虛擬原型上編程,并實現軟件源代碼級的調試,還可以直接實時動態(tài)地模擬按鍵、鍵盤的輸入,LED、液晶顯示的輸出,同時配合虛擬工具如示波器、邏輯分析儀等進行相應的測量和觀測4.2仿真電路實現過程以前學習proteus只是做了一些簡單的如跑馬燈,定時器,靜態(tài)數字顯示等模擬,雖然知道這款軟件功能十分強大,但很少編寫大程序。這次畢設一開始雖然在心底構思了一些方案,有簡單的流程設計,但一動手開始寫程序,就給了筆者迎頭一棒一一將電路圖設計出來之后(如圖4.1),根本不知道從哪下手寫程序,老師說這個畢設并不困難,只需要一兩百行的程序就可以了。可是筆者閉關三天,才苦苦寫出了二三十行程序,更讓筆者心涼的是,筆者的數碼管根本不顯示任何數字,連亂碼都沒有!更別說控制伺服電機了,不好的時候電機根本不動,就算問了同學,調試了一下程序,電機居然很不給面子的直接轉到了頭。這要是實際工程應用,筆者的程序恐怕會謀殺很大一批數控銑床。痛定思痛之下,筆者不得不認清現實,從頭開始。先圖書館借了許多proteus相關的書籍,又從網上下載了一些編程視頻觀看學習。

LUL1I-acTEfTk...:十H:lInrM苗..._!=!_?o--aLUL1I-acTEfTk...:十H:lInrM苗..._!=!_?o--a—圖4.1,原電路圖??-"卜IOQ..I.cTE>!T\.出--C2--iXTAL1FDJLWCFD.1.WIFC.+i^s-POMSriiiwspn加ALEP2CA13fE&AUFITi'AtP"DFl.lrizraaffFnf勺Tim?3*miT\SP35IT1MSra.w11::Jlia從最簡單的程序入手,將本次畢設的程序分三段調試,這里邊需要提一句,北京航空航天大學出版的《proteus輔助的單片機原理實踐》這本書對筆者幫助很大。筆者按照書上的教程,簡單練習了幾個小程序熱手,之后將這次的畢設題目分解成三個小題目。分別是:8位共陰極數碼管顯示,矩陣鍵盤輸入,伺服電機控制。首先是8位共陰極數碼管顯示,筆者更改之前圖1中使用的PG12864F顯示器,改用編碼為7SEG-MPX8-CC-BLUE的8位共陰極數碼管。八位共陰極數碼管的顯示并不困難,從0至F的十六位數字都有各自的代碼顯示,只要在主程序中調用顯示程序,并在對應的位上輸入數值編碼,便可以完成顯示,程序簡簡單單的十數行,筆者便完成了生日的輸出,如圖4.2所示。

iqgpQHPgAECDEFGDF1234507366666而找日)60陽初制:::::“1矽b.1虹心小住岫b.7PDJJ'filDPOJi'AHI:::::“1矽b.1虹心小住岫b.7PDJJ'filDPOJi'AHIFDZi'mIQXT>12FDa'HiaFEl.H.頌p□卻urp□住皿P.5TPD.Ti'.W叩」P.fdpss'AnP23h.HALEPS.-h'AS以pss'A-aP2.3A1+-PZ.T^.-SF1I]P3H'P^<DP1.1P31E:KPUF1.+P3.4/IDP1三P35.T1P1.Wpi.sTfiirF1.7Pl-THW■<岑專-SM-S專3M1DSES仰這里邊還有一個小插曲,為了連線方便,筆者將數碼管的數字接口接到了AT89C51單片機的P0口,將位選接口接到了單片機的P2口,可是屏幕根本不亮。當時簡直要瘋了,砸電腦的心思都有,心說連一個顯示程序都寫不出來,還能不能畢業(yè)了。后來按照書上的電路圖,將位選接口接到了單片機的P1口。模擬開始之后,屏幕居然顯示了筆者的生日,當時成就感立刻就來了。位選接口必須接到P1口,就好像外部中斷控制最好接到P3A2到P3A5口一樣。然后是矩陣鍵盤輸入,最開始筆者學習書上使用for循環(huán),調用16位矩陣鍵盤編碼實現矩陣鍵盤輸入,可是悲劇的發(fā)現,筆者對for循環(huán)并沒有天賦,尤其是矩陣鍵盤要實現數字,正反轉,復位,啟停等不同功能。很快筆者就改用if循環(huán),在if循環(huán)中嵌套switch語句,雖然不如for循環(huán)簡單明了,需要對矩陣鍵盤的四個橫行詢問,并對每一個縱行代碼進行編譯,但恰好滿足筆者對每個鍵值的定義。如圖3所示,筆者定義了一個矩陣鍵盤,并將矩陣鍵盤每一個對應值都顯示在數碼管中。

FciwmFOIrtUdFD2VMX3F..WFoa^isP.ETra??PSA'.*CFZZLAJDrserAL=P221AJ1FZ4lA£Z反Xft'ELA,zswaF3.7I/-.SFWFciwmFOIrtUdFD2VMX3F..WFoa^isP.ETra??PSA'.*CFZZLAJDrserAL=P221AJ1FZ4lA£Z反Xft'ELA,zswaF3.7I/-.SFWF1.1P12Fi^irnF13FlilTTTM.+pj.i/Tnrri后口目IJTKF1.7FS.lfElT圖4.3,矩陣鍵盤伺服電機的控制算是三個分題目中最困難的,如圖4.4所示筆者選用了編號為MOTOR-PWMSERVO的伺服電機,要控制伺服電機的速度與偏轉角度(銑刀的位置),需要對PWM端口輸入不同頻率的方形波,這就涉及到中斷控制的定時器與計數器了。Proteus的編程書籍中介紹了很多中斷方面的知識,但說實話,筆者到現在也并沒有完全學明白,很多中斷都是憑著感覺,一點一點將程序調試出來的。定時器/計數器控制寄存器TCON的中斷請求標志格式為:TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H其中關于中斷的就有6位,中斷方式又有數種,對于書上的初始化函數中,ET0=1,TR0=1,與EX0=1,IT0=1,有什么具體區(qū)別根本搞不懂。按照書上將伺服電機的控制電路連接出來,程序也抄寫在KEIL軟件中,編譯運行后伺服電機也如愿控制,但只要進行微調,比如說書上的程序電機每一次沈陽航空航天大學畢業(yè)設計轉動15度,但要控制銑床,就算對自己的要求再低,怎么也要把精度保持在1mm一下,如果電機每一步都轉動15度,那需要使用的電傳和齒輪系統(tǒng)筆者根本無法想象。足足花了數天時間,筆者在調試伺服電機的程序,逐行理解程序的含義,對每一行的程序都進行標注,逐行改變程序賦值,希望能有奇跡出現。最后經由老師點撥,筆者更改了定時器初值,每1um便進行一次中斷,又調節(jié)了頻率與占空比,終于輸出了比較滿意的方形波,讓伺服電機每一次轉動的范圍下降到了3度,比原來足足放大了5倍,節(jié)省了許多齒輪。但這又導致后來合成程序中出現了一個問題,筆者的延遲函數也只能延遲更少的時間,如果延遲時間過長,數碼管的屏幕會不斷閃爍,甚至出現亂碼。pnn'Hicpn.ii.iiinXTW2paa-Hia叩*.辿?pns'.HiisPD.S'hMP.ETPn.T^HTPE.liffiPZ^'.h-E]PZJ'h.HALEP2.4i'H.t2百.PZS'h.QP2.Spnn'Hicpn.ii.iiinXTW2paa-Hia叩*.辿?pns'.HiisPD.S'hMP.ETPn.T^HTPE.liffiPZ^'.h-E]PZJ'h.HALEP2.4i'H.t2百.PZS'h.QP2.Sih.1+PS.Ti'h.-KP1DP3n'P:::iiP1.1P3.1iT::HP12Pl^iTKTT]F13piaTrrrP1.+Pl.+iTDP1SP3ST1P1.GP1.7P3.7iTTLU茅里-3?36主*王文211B630圖4.4,伺服電機前后用了數周的時間,終于做出了零零碎碎將近10個仿真電路及其對應的程序,眼看著其他同學已經開始調試大程序,但筆者心中卻頗有成就,因為筆者的大程序中,大部分語句都是親手編譯調試,筆者知道每一行語句的意義,編譯出現錯誤筆者能夠很快的更改,數碼管顯示出現不合心意的時候,筆者也能定位到相應的語句。

終于,筆者帶著將近一個月的積累,開始合成大程序,筆者將更改之后的三個子程序嵌入到大程序中,并用主函數分別調用初始化函數,鍵盤掃描函數,顯示函數,筆者以為準備工作做得充足,主函數只要區(qū)區(qū)數行就可以完成這次畢設,結果仿真出來的結果讓筆者哭笑不得。第一次仿真,8位數碼管只亮了6個,調試之后,正轉(E)反轉(F)的顯示代碼隨時改變,位移顯示部分更是奇葩,輸入數字之后,只顯示11,22,33,44等數字,根本無法輸入正常的數值,更別說舵機了,舵機也跟著亂轉,就連現在,筆者調出來的程序,復位鍵還無法讓舵機復位。噬《△:):::::::::::郵:正轉普)吱家「廠'nornc'Krn-i?HrD3P<RPD^kClIvns^a,ra?A?btpct□3rz-tn>ira^mrp□.碩iFlfTIrajM:raiiTF殳0診O-MMCJaJEIHg;:達到控制f■■涯噬《△:):::::::::::郵:正轉普)吱家「廠'nornc'Krn-i?HrD3P<RPD^kClIvns^a,ra?A?btpct□3rz-tn>ira^mrp□.碩iFlfTIrajM:raiiTF殳0診O-MMCJaJEIHg;:達到控制f■■涯:片::'」.啟腳橢慕芯矗公件兩臺伺服電機控制錠刀走刃劾fit用方糧如長曲X;Ytt輸入正成轉動方向廠每云凝TKY軸輸入數.據時,,都吸點擊X;丫軸按瓦擻據'E替F換,?輸成好之后r癌擊?啟卜停銷,電機H始轉而株刀目的g:也機工作范圍為E45-F1SbFOSOiX^tiOOdi-.^-.樸3£!曲8A汪::.■■■.:V?;...31-*_--?■R?|>.耶鏈i:■o*4.3程序實現簡述及其源程序全部源程序及其說明#include<reg52.h>〃調用頭文件#defineucharunsignedchar//簡化定義語句#defineuintunsignedint〃共陰極數碼管,數字編碼ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};〃共陰極數碼管,位選編碼ucharcodeseg[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};ucharu11,u12,u21,u22,u31,u32,a,b,c,d,u41,u42,key21,key22,key1;//x軸,u11=9,Y軸u12=10,正轉反轉,正轉E,u21=14,反轉F,u22=15,位置,u31=,u32sbitPWM1=P3A4;//X軸電機控制sbitPWM2=P3A5;//Y軸電機控制sbitXZHOU=P3A2;//X軸鍵值輸入sbitYZHOU=P3A3;//Y軸鍵值輸入ucharDutyCycle1=43;//[28,56],占空比變量ucharDutyCycle2=43;uchardida1=0;//軟件計數變量uchardida2=0;〃延時函數voiddelay(uintx){uchari;while(x--)for(i=0;i<110;i++);}//初始化函數voidinit(){TMOD=0x02;〃設置定時器0工作方式在2TH0=(256-1);〃定時器初值設定TL0=(256-1);〃定時器初值設定ET0=1;〃使能定時器0中斷TR0=1;〃開啟定時器EA=1;〃使能總中斷PWM1=1;〃初始化PWM1,開始輸出高電平PWM2=1;}//8位共陰極數碼管顯示函數voiddisplay(ucharsegNo,ucharnum){P0=seg[segNo];//通過P0端口選擇顯示的位P1=table[num];//通過P1端口顯示數字delay(0.5);}〃按鍵掃描函數,X軸控制voidkeyScan(){uchart;〃定義局部變量delay(0.5);u11=10,u12=11;//X軸顯示代碼A,Y軸顯示代碼bP2=0xfe;〃第一行閉合,1,2,3,X軸正轉四個位置t=P2;t=t&0xf0;if(t!=0xf0){delay(0.5);t=P2;t=t&0xf0;if(t!=0xf0)〃第一行閉合的情況下{t=P2;switch(t){case0xee:〃第一列閉合(鍵盤1位置)key1=1;break;case0xde:〃第二列閉合(鍵盤2位置)key1=2;break;case0xbe:〃第三列閉合(鍵盤3位置)key1=3;break;case0x7e://第四列閉合(x軸正轉,e,14)u21=14;break;}while(t!=0xf0)〃松手檢測{t=P2;t=t&0xf0;}}}〃第二行閉合,4,5,6,X軸反轉四個位置P2=0xfd;t=P2;t=t&0xf0;if(t!=0xf0){delay(0.5);t=P2;t=t&0xf0;if(t!=0xf0)〃第二行閉合的情況下{t=P2;switch(t){case0xed:〃第一列閉合(鍵盤4位置)key1=4;break;case0xdd:〃第二列閉合(鍵盤5位置)key1=5;break;case0xbd://第三列閉合(鍵盤6位置)key1=6;break;case0x7d://第四列閉合(x軸反轉f)u21=15;//f=15break;}while(t!=0xf0)〃松手檢測{t=P2;t=t&0xf0;}}}〃第三行閉合,7,8,9,Y軸正轉四個位置P2=0xfb;t=P2;t=t&0xf0;if(t!=0xf0){delay(0.5);t=P2;t=t&0xf0;if(t!=0xf0)〃第三行閉合的情況下{t=P2;switch(t){case0xeb:〃第一列閉合(鍵盤7位置)key1=7;break;case0xdb://第二列閉合(鍵盤8位置)key1=8;break;case0xbb://第三列閉合(鍵盤9位置)key1=9;break;case0x7b://第四列閉合(y軸正轉)u22=14;break;}while(t!=0xf0)〃松手檢測{t=P2;t=t&0xf0;}}}〃第四行閉合,復位,0,啟停,Y軸反轉四個位置P2=0xf7;t=P2;t=t&0xf0;if(t!=0xf0){delay(0.5);t=P2;t=t&0xf0;if(t!=0xf0)〃第四行閉合的情況下{t=P2;switch(t){case0xe7:〃第一列閉合(鍵盤復位位置)key1=0,key21=0,key22=0,u21=0,u22=0,u31=0,u32=0,u41=0,u42=0,DutyCycle1=43,DutyCycle2=43,c=0,d=0;break;case0xd7:〃第二列閉合(鍵盤0位置)key1=0;break;case0xb7://第三列閉合(鍵盤啟停位置)//x軸數字為c,DutyCycle1x軸伺服電機占空比,控制電機轉動角度//y軸數字為d,DutyCycle2y軸伺服電機占空比,控制電機轉動角度c=u31*10+u41;//cd=u32*10+u42;//dbreak;case0x77://第四列閉合(y軸反轉)u22=15;break;}while(t!=0xf0)〃松手檢測{t=P2;t=t&0xf0;}}delay(0.5);}}〃主函數voidmain(void){init();//調用初始化函數while(1){〃不按顯示(!XZHOU==0),點擊顯示(!XZHOU)按下顯示(YZHOU==0)keyScan();〃調用鍵盤掃描函數if((!XZHOU)||(!YZHOU))〃向XY軸分別輸入數字{if(!XZHOU)〃如果電機X軸按鈕,鍵入數值{〃將數值分別存入u31,u41delay(1);a=key1;if(a!=key1)u41=a;if(u31=u41)u31=a;if(u31!=u41)u31=u41;u41=a;delay(1);}if(!YZHOU)//如果電機X軸按鈕,鍵入數值{〃將數值分別存入u32,u42delay(1);b=key1;if(b!=key1)u42=b;if(u32=u42)u32=b;if(u32!=u42)u32=u42;u42=b;delay(1);}while((!XZHOU)||(!YZHOU));//松手檢測}〃調用顯示函數,第一至第八位display(7,u11);//X軸(A)10display(6,u21);//正轉(e)/反轉(F)14,15display(5,u31);//位置display(4,u41);display(3,u12);//y軸(b)11display(2,u22);//正轉(E)/反轉(F)display(1,u32);//位置display(0,u42);delay(0.5);//x軸數字為c,DutyCycle1x軸伺服電機占空比,控制電機轉動角度//y軸數字為d,DutyCycle2y軸伺服電機占空比,控制電機轉動角度〃根據正轉反轉顯示,控制舵機轉向if(u21<=14)DutyCycle1=c+43;if(u21>=15)DutyCycle1=43-c;if(u22<=14)DutyCycle2=d+43;

溫馨提示

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

評論

0/150

提交評論