




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、三維伺服數(shù)控平臺設(shè)計學(xué) 院機電工程學(xué)院專 業(yè)班 級學(xué) 號姓 名指導(dǎo)教師負責(zé)教師摘 要由數(shù)字信息導(dǎo)向的控制程序?qū)C械運動和工作過程進行操控的技術(shù),就是所謂的數(shù)控加工技術(shù)。這門技術(shù)概括使用了計算機技術(shù)、微電子技術(shù)、伺服驅(qū)動、主動控制和精密測繪等學(xué)科的集成應(yīng)用。數(shù)控銑床的核心在于控制系統(tǒng),控制系統(tǒng)實現(xiàn)了數(shù)字化的零件的輸入程序,完成輸入信息的存儲、數(shù)據(jù)的變換和插補的運算等,從而實現(xiàn)各種控制功能。銑床控制系統(tǒng)的設(shè)計必須考慮軟硬件的匹配,其設(shè)計必須從經(jīng)濟、實用、可行等諸多方面考慮。本次畢設(shè)以AT89C51單片機為主體實現(xiàn)的控制系統(tǒng),在硬件設(shè)計上易于實現(xiàn)有效的控制功能,結(jié)構(gòu)相對簡單;在軟件設(shè)計上,通過插補程
2、序的編制,相對容易地實現(xiàn)對銑床的運行方向和運行速度等方面的控制。起先用SolidWorks軟件畫出銑床,然后用單片機進行控制。用Proteus進行仿真模擬。電路仿真技術(shù)就是通過軟件來實現(xiàn)并檢驗所設(shè)計電路功能的過程。Proteus不僅是模擬電路、數(shù)字電路、模擬混合電路的設(shè)計平臺,更是世界上最先進的單片機和嵌入式系統(tǒng)的設(shè)計與仿真平臺。關(guān)鍵詞:數(shù)控加工;單片機;SolidWorks;ProteusDesign of 3D servo numerical control platformAbstractThe technology of controlling the mechanical movem
3、ent and working process by the digital information - oriented control program is the so-called numerical control technology.The technology of this technology is summarized in the application of computer technology, microelectronics technology, servo drive, active control and precision mapping and ot
4、her subjects.The core of the CNC milling machine lies in the control system, control system to realize the digital parts of the input program, complete the input information storage, data transform and interpolation operation, in order to achieve a variety of control functions.The design of the cont
5、rol system for milling machine must consider the matching of the hardware and software, and it must be considered from the aspects of economy, practicality and feasibility. The complete set of AT89C51 as the main control system. In the hardware design easy to achieve effective control function, stru
6、cture is relatively simple; in the software design, interpolation procedures through the preparation of, relatively easy to achieve running direction and speed of the milling machine control. At first, using SolidWorks software to draw a milling machine, and then use the microcontroller to control.
7、Simulation with Proteus. Circuit simulation technology is to achieve and test the function of the circuit by software. Proteus is not only the design platform of analog circuit, digital circuit and analog circuit, but also the most advanced MCU and embedded system in the world.Keywords:Single chip m
8、icrocomputer SolidWorks Proteus目 錄摘 要IDesign of 3D servo numerical control platformII1、緒 論11.1 引言11.2 數(shù)控技術(shù)的發(fā)展方向及本次畢設(shè)的主旨11.3 數(shù)控技術(shù)的國內(nèi)現(xiàn)狀及發(fā)展趨勢22、三維建模及二維工程圖42.1 SolidWorks軟件介紹42.2 三維實際建模過程42.3 二維工程圖63、單片機的介紹及程序說明73.1 單片機的概述73.2 單片機控制系統(tǒng)設(shè)計83.3 程序說明84、Proteus中電子電路建立及仿真模擬104.1 proteus仿真軟件的介紹104.2 仿真電路實現(xiàn)過程104
9、.3 程序?qū)崿F(xiàn)簡述及其源程序15參考文獻11、緒 論1.1 引言近些年來,計算機技術(shù)不斷發(fā)展,計算機圖形處理能力不斷增強,以計算機為依托的仿真技術(shù)也快速發(fā)展起來,并在短時間內(nèi)應(yīng)用于各工程領(lǐng)域。在計算機平臺上進行機械零件的設(shè)計、校核,電子電路的設(shè)計,軟件的編程,最終進行系統(tǒng)運動仿真,己經(jīng)逐漸成為機電一體化設(shè)計的發(fā)展趨勢。設(shè)計與制造的傳統(tǒng)步驟,第一步是方案設(shè)計及論證,第二步進行產(chǎn)品設(shè)計。在第二步完成后,為了驗證第二步的設(shè)計有無問題,通常要制造一臺母機進行試驗,這些試驗中常常出現(xiàn)破壞性的結(jié)果。當(dāng)試驗顯現(xiàn)發(fā)現(xiàn)缺點不足時,又要回頭修改第二步設(shè)計并再用樣機驗證。這是一個周而復(fù)始、不斷循環(huán)的設(shè)計一試驗一設(shè)計
10、過程,只有通過這種嚴苛而復(fù)雜的過程,產(chǎn)品才能達到所要求的性能。不過這一程序是冗長的,尤其對于結(jié)構(gòu)繁復(fù)的系統(tǒng),設(shè)計周期更是無法縮短,哪還用談對市場的靈活反應(yīng)了。時下大多數(shù)的情況是,企業(yè)工程師們?yōu)榱舜_保產(chǎn)品按時投向市場而不得已中斷簡化這一過程,使產(chǎn)品在上市后便出現(xiàn)這樣那樣的問題,這也是許多人認為國內(nèi)企業(yè)先天不足的由來。時下的大背景是激烈市場競爭,在實際樣機平臺上的設(shè)計驗證程序嚴重地限制了其產(chǎn)品質(zhì)量、其成本及其對市場的占有。隨著全球化經(jīng)貿(mào)態(tài)勢的日漸顯現(xiàn),要想奪競爭取趨激烈的市場,并擴大市場占有率。便應(yīng)運出現(xiàn)了開發(fā)周期短暫,產(chǎn)品質(zhì)量足夠保障,成本低廉以及對市場反應(yīng)靈活運營方式。哪個公司早推出產(chǎn)品,哪個
11、公司就占有市場。顯然傳統(tǒng)的設(shè)計與制造步驟根本無法滿足以上要求。1.2 數(shù)控技術(shù)的發(fā)展方向及本次畢設(shè)的主旨已經(jīng)問世40多年的數(shù)控技術(shù)是基于諸多基礎(chǔ)學(xué)科而發(fā)展起來的,這是一門不算新興,但卻舉足輕重的跨越性科學(xué),是自動化,機電一體化,簡單化,居家化,小型化制造業(yè)的基石。在未來,數(shù)控技術(shù),仿真模擬技術(shù)的不斷升級改良,普及大眾,基礎(chǔ)零件更容易獲得,企業(yè)源代碼的逐步放送,會使得有興趣,有志于此的人可以在家中,用簡單的機床加工出自己設(shè)計的手機,遙控器等數(shù)碼產(chǎn)品。也可以對各種買來的家用電子元件進行個性化的魔改。就好像美國電影中,一個鄉(xiāng)下農(nóng)場中,個人的愛好小作坊居然也能發(fā)展,制造出改變世界的發(fā)明一樣。這些都是數(shù)
12、字化技術(shù),數(shù)控技術(shù),仿真模擬技術(shù)大統(tǒng)一的必然結(jié)果。本次畢設(shè)就是對于數(shù)控銑床進行一次簡單的二次開發(fā),通過畢設(shè)中設(shè)計出的4乘4矩陣鍵盤,實現(xiàn)銑刀X軸,Y軸的控制走向。這個二次開發(fā)可以連接已有的數(shù)控銑床,使工人們不必在使用銑床之前,背誦大量G17,G18,G90,G40等預(yù)存語言,可以通過簡單的X軸,Y軸正傳反轉(zhuǎn)來控制。也可以連接普通的非數(shù)字化銑床,將其升級為半自動化銑床,解放手工操作。當(dāng)然,本次畢設(shè)立意的確不凡,但筆者能力實在有限,所設(shè)計出的電子電路及操控軟件并不符合實際生產(chǎn)生活需要,但通過本次畢設(shè),讓筆者對于電子電路及單片機開發(fā)應(yīng)用大感興趣,并親手調(diào)試程序,理解銑床控制的基本原理。1.3 數(shù)控技
13、術(shù)的國內(nèi)現(xiàn)狀及發(fā)展趨勢我國的數(shù)控技術(shù)起步較晚,雖然在學(xué)校精工實習(xí)時接觸了一些數(shù)字化機床,但大多是一代,二代,三代的老式機床,命令語句復(fù)雜,且不知能。精工實習(xí)過程中,在銑床實習(xí)時,筆者曾編譯了一段程序,將蠟塊銑成摩托諾拉的某款經(jīng)典機型,當(dāng)然,現(xiàn)在的手機大多為平板觸屏手機,簡單的程序就可以銑出超薄的平面機型,似乎根本不用迫切發(fā)展數(shù)控技術(shù),當(dāng)然,此為笑言。筆者在假期實習(xí)時,曾進入一些工廠實習(xí)工作,這些工廠中還保留著大量非數(shù)控的銑床,車床等機床。一些老工人手藝精湛,根本不需要背誦繁復(fù)的數(shù)控指令,看幾眼零件,摸幾下就能加工出精美利落的成品。但未來的工業(yè)是大工業(yè)時代,大批量機加制成品依然占據(jù)著絕大部分市場
14、。我國也不再是當(dāng)年那個發(fā)射東方紅一號時,有幾塊鋼板還是老師傅一錘子一錘子才敲打出弧形的國情了。在筆者看來數(shù)字技術(shù)必然如上文所說一樣,逐漸簡單化,平民化,全民有興趣之人都可以參與進來,都可以按照自己的個性加工出自己的零件,編寫調(diào)試出帶有個人特點的程序,組裝自己心儀的產(chǎn)品,實現(xiàn)每個人不同的要求。2、三維建模及二維工程圖2.1 SolidWorks軟件介紹 目前流行的主流高、中端三維CAD軟件很多,如UG、II、CATIA、ProE、SolidEdge、SolidWorks等,選擇空間很大。所有方才所述的軟件中,都供應(yīng)了過程裝置以及運動干涉檢驗、仿真模擬等功能,以及最重要的系統(tǒng)二次開發(fā)接口。這使得熟
15、用上述軟件之人可以自行開發(fā)出自己用著順手的應(yīng)用程序。SolidWorks是一套基于Windows的CADCAECAMPDM桌面集成系統(tǒng),是美國SolidWorks公司于1995年11月研制的。該軟件將二維制圖和三維構(gòu)型技術(shù)巧妙的雜糅為一體,操作便宜,上手極快,可以完成復(fù)雜的構(gòu)型設(shè)計、大型裝配、高級曲面設(shè)計造型和設(shè)計修改等。集構(gòu)型設(shè)計、應(yīng)力分析、仿真加工和數(shù)據(jù)管理于一款軟件,可以模擬動態(tài)裝配過程,計算質(zhì)量特征,可將三維實體構(gòu)件轉(zhuǎn)化為二維平面工程圖。2.2 三維實際建模過程實際建模復(fù)雜艱辛,筆者以前學(xué)過CAD、CATIA等建模軟件,這次經(jīng)同學(xué)介紹學(xué)習(xí)使用SolidWorks這款軟件,單前期學(xué)習(xí)準備
16、便花了兩周時間,畫出了七八個小零件,總算初步學(xué)會使用這款軟件。根據(jù)實際測量所得銑床尺寸,將此次三維構(gòu)件分解為三個零構(gòu)件,分別為銑床底座,可移動固件平臺,刀具裝置件。如下圖2.1,2.2便是其中刀具裝置件與可移動固件平臺兩個零件。其中可移動平臺的固定卡具很不好建模,孔多件難,還不好測量,特意接了一個卡尺反復(fù)測量,有照了很多照片對比建模,但最后還是反復(fù)跑了機械館數(shù)次,才測得準確數(shù)字,勉強畫出了幾個零件。 圖 2.1刀具裝置件 圖2.2 可移動固件平臺 下邊分別羅列了構(gòu)建的整體視覺圖以及正視圖,側(cè)視圖等。圖2.3 整體視覺圖從上圖的整體視覺圖中不難看出,可移動固定平臺有X軸移動行程,與Y軸移動行程。
17、其工作范圍分別是X=120mm,Y=160mm;采用滾珠絲杠桿作為傳動裝置,絲杠導(dǎo)程4mm。設(shè)計中伺服電機最大進給速度2m/min。在軟件裝配時,X軸Y軸的導(dǎo)軌安裝十分麻煩,因為無法將固定平臺拆卸下來,自然不知道其中連接方式,上網(wǎng)查詢了很多銑床裝配圖,也無法完整的復(fù)制出移動平臺的安裝方式,更無從在軟件中制作約束。 圖2.4 正視圖 圖2.5 側(cè)視圖2.3 二維工程圖3、單片機的介紹及程序說明3.1 單片機的概述自1946年美國軍方定制的第一臺計算機現(xiàn)世以來,計算機的微型化便從未停止過其腳步,最開始的計算機機箱需要幾間屋子盛放,后來變成火車頭大小,再到八九十年代的臺式機,筆記本,平板電腦。如今,
18、計算機已經(jīng)變成了指甲大小,這便是單片機。單片機全稱單片微型計算機,又被稱為微控制器、單片機,是微型計算機家族中的一個重要成員。單片機是將微處理器(計算機的中央處理單元CPU)CentralproeessingUnit)、一定容量的RAM和ROM以及I/O接口、定時等電路集成在一片芯片上。而不單單是完成某一個邏輯功能的芯片。概括的講:一塊芯片就是一臺計算機,它的體積小、質(zhì)量輕、價格低、為學(xué)習(xí)應(yīng)用和開發(fā)提供了便利條件。圖3.1 AT89C51單片機單片機是一塊集成芯片,除了具有集成芯片的特點外還有許多其他不同特點,本次畢設(shè)選用的是AT89C51這塊單片機。這是一種帶閃存可編程只讀存儲器的單片機。A
19、T89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活價廉的方案。上圖3.1便是本次畢設(shè)選用的AT89C51單片機,在proteus中的模型。3.2 單片機控制系統(tǒng)設(shè)計單片機編程之前需要規(guī)劃出整個系統(tǒng)的控制流程圖,通過流程圖指導(dǎo)程序編譯,電子電路連接等。下圖是本次畢設(shè)大體流程控制,分別從指令輸入,到單片機與電路互動,指導(dǎo)伺服系統(tǒng),電機轉(zhuǎn)動帶動銑床。下圖3.2為大體控制流程圖。圖3.2 控制系統(tǒng)流程圖3.3 程序說明此次畢設(shè)的程序編譯部分,圖3.3的流程圖進行編譯,首先進行頭文件調(diào)用#include<reg52.h>,定義需要使用的各種編碼table=0x3f,0x06.
20、0x79,0x71,隨后各定義全局變量u11,u12,key1等,定義變量輸入sbit PWM1=P34。定義延遲函數(shù)void delay(uint x),定義初始化函數(shù)void init(),定義共陰極數(shù)碼管顯示函數(shù)void display(uchar segNo,uchar num),定義鍵盤掃描函數(shù)void keyScan(),定義主函數(shù)void main(void)。在主函數(shù)中分別調(diào)用初始化函數(shù),鍵盤掃描函數(shù),在顯示函數(shù)中顯示。最后編寫中斷函數(shù),控制輸出波形。下圖圖3.3為指導(dǎo)本次編程的流程圖:圖3.3 編程流程圖在編程中,最為重要的便是鍵盤掃描函數(shù),在鍵盤掃描函數(shù)中使用switch函
21、數(shù),分別對矩陣鍵盤的每一行進行詢問,待相應(yīng)之后分別對每一個回應(yīng),對應(yīng)的每一個鍵位進行定義,以實現(xiàn)矩陣鍵盤的各種功能。4、Proteus中電子電路建立及仿真模擬4.1 proteus仿真軟件的介紹PROTEUS軟件是由英國 Labcenter Electronics公司開發(fā)的EDA工具軟件。它從1989年問世至今,經(jīng)過了近20的使用、發(fā)展和完善,功能越來越強大,性能越來越好。PROTEUS安裝以后,主要由兩個程序組成:ARES和ISIS。前者主要用于PCB自動或人工布線及其電路仿真,后者主要采用原理布圖的方法繪制電路并進行相應(yīng)的仿真。除了上述基本應(yīng)用之外,PROTEUS 革命性的功能在于它的電路
22、仿真是互動的,針對微處理器的應(yīng)用,可以直接在基于原理圖的虛擬原型上編程,并實現(xiàn)軟件源代碼級的調(diào)試,還可以直接實時動態(tài)地模擬按鍵、鍵盤的輸入,LED、液晶顯示的輸出,同時配合虛擬工具如示波器、邏輯分析儀等進行相應(yīng)的測量和觀測4.2 仿真電路實現(xiàn)過程以前學(xué)習(xí)proteus只是做了一些簡單的如跑馬燈,定時器,靜態(tài)數(shù)字顯示等模擬,雖然知道這款軟件功能十分強大,但很少編寫大程序。這次畢設(shè)一開始雖然在心底構(gòu)思了一些方案,有簡單的流程設(shè)計,但一動手開始寫程序,就給了筆者迎頭一棒將電路圖設(shè)計出來之后(如圖4.1),根本不知道從哪下手寫程序,老師說這個畢設(shè)并不困難,只需要一兩百行的程序就可以了??墒枪P者閉關(guān)三天
23、,才苦苦寫出了二三十行程序,更讓筆者心涼的是,筆者的數(shù)碼管根本不顯示任何數(shù)字,連亂碼都沒有!更別說控制伺服電機了,不好的時候電機根本不動,就算問了同學(xué),調(diào)試了一下程序,電機居然很不給面子的直接轉(zhuǎn)到了頭。這要是實際工程應(yīng)用,筆者的程序恐怕會謀殺很大一批數(shù)控銑床。痛定思痛之下,筆者不得不認清現(xiàn)實,從頭開始。先圖書館借了許多proteus相關(guān)的書籍,又從網(wǎng)上下載了一些編程視頻觀看學(xué)習(xí)。圖4.1,原電路圖從最簡單的程序入手,將本次畢設(shè)的程序分三段調(diào)試,這里邊需要提一句,北京航空航天大學(xué)出版的proteus輔助的單片機原理實踐這本書對筆者幫助很大。筆者按照書上的教程,簡單練習(xí)了幾個小程序熱手,之后將這次
24、的畢設(shè)題目分解成三個小題目。分別是:8位共陰極數(shù)碼管顯示,矩陣鍵盤輸入,伺服電機控制。首先是8位共陰極數(shù)碼管顯示,筆者更改之前圖1中使用的PG12864F顯示器,改用編碼為7SEG-MPX8-CC-BLUE的8位共陰極數(shù)碼管。八位共陰極數(shù)碼管的顯示并不困難,從0至F的十六位數(shù)字都有各自的代碼顯示,只要在主程序中調(diào)用顯示程序,并在對應(yīng)的位上輸入數(shù)值編碼,便可以完成顯示,程序簡簡單單的十?dāng)?shù)行,筆者便完成了生日的輸出,如圖4.2所示。圖4.2,生日截圖這里邊還有一個小插曲,為了連線方便,筆者將數(shù)碼管的數(shù)字接口接到了AT89C51單片機的P0口,將位選接口接到了單片機的P2口,可是屏幕根本不亮。當(dāng)時簡
25、直要瘋了,砸電腦的心思都有,心說連一個顯示程序都寫不出來,還能不能畢業(yè)了。后來按照書上的電路圖,將位選接口接到了單片機的P1口。模擬開始之后,屏幕居然顯示了筆者的生日,當(dāng)時成就感立刻就來了。位選接口必須接到P1口,就好像外部中斷控制最好接到P32到P35口一樣。然后是矩陣鍵盤輸入,最開始筆者學(xué)習(xí)書上使用for循環(huán),調(diào)用16位矩陣鍵盤編碼實現(xiàn)矩陣鍵盤輸入,可是悲劇的發(fā)現(xiàn),筆者對for循環(huán)并沒有天賦,尤其是矩陣鍵盤要實現(xiàn)數(shù)字,正反轉(zhuǎn),復(fù)位,啟停等不同功能。很快筆者就改用if循環(huán),在if循環(huán)中嵌套switch語句,雖然不如for循環(huán)簡單明了,需要對矩陣鍵盤的四個橫行詢問,并對每一個縱行代碼進行編譯,
26、但恰好滿足筆者對每個鍵值的定義。如圖3所示,筆者定義了一個矩陣鍵盤,并將矩陣鍵盤每一個對應(yīng)值都顯示在數(shù)碼管中。圖4.3,矩陣鍵盤伺服電機的控制算是三個分題目中最困難的,如圖4.4所示筆者選用了編號為MOTOR-PWMSERVO的伺服電機,要控制伺服電機的速度與偏轉(zhuǎn)角度(銑刀的位置),需要對PWM端口輸入不同頻率的方形波,這就涉及到中斷控制的定時器與計數(shù)器了。Proteus的編程書籍中介紹了很多中斷方面的知識,但說實話,筆者到現(xiàn)在也并沒有完全學(xué)明白,很多中斷都是憑著感覺,一點一點將程序調(diào)試出來的。定時器/計數(shù)器控制寄存器TCON的中斷請求標志格式為:TCONTF1TR1TF0TR0IE1IT1I
27、E0IT0位地址8FH8EH8DH8CH8BH8AH89H88H其中關(guān)于中斷的就有6位,中斷方式又有數(shù)種,對于書上的初始化函數(shù)中,ET0=1,TR0=1,與EX0=1,IT0=1,有什么具體區(qū)別根本搞不懂。按照書上將伺服電機的控制電路連接出來,程序也抄寫在KEIL軟件中,編譯運行后伺服電機也如愿控制,但只要進行微調(diào),比如說書上的程序電機每一次轉(zhuǎn)動15度,但要控制銑床,就算對自己的要求再低,怎么也要把精度保持在1mm一下,如果電機每一步都轉(zhuǎn)動15度,那需要使用的電傳和齒輪系統(tǒng)筆者根本無法想象。足足花了數(shù)天時間,筆者在調(diào)試伺服電機的程序,逐行理解程序的含義,對每一行的程序都進行標注,逐行改變程序賦
28、值,希望能有奇跡出現(xiàn)。最后經(jīng)由老師點撥,筆者更改了定時器初值,每1um便進行一次中斷,又調(diào)節(jié)了頻率與占空比,終于輸出了比較滿意的方形波,讓伺服電機每一次轉(zhuǎn)動的范圍下降到了3度,比原來足足放大了5倍,節(jié)省了許多齒輪。但這又導(dǎo)致后來合成程序中出現(xiàn)了一個問題,筆者的延遲函數(shù)也只能延遲更少的時間,如果延遲時間過長,數(shù)碼管的屏幕會不斷閃爍,甚至出現(xiàn)亂碼。圖4.4,伺服電機前后用了數(shù)周的時間,終于做出了零零碎碎將近10個仿真電路及其對應(yīng)的程序,眼看著其他同學(xué)已經(jīng)開始調(diào)試大程序,但筆者心中卻頗有成就,因為筆者的大程序中,大部分語句都是親手編譯調(diào)試,筆者知道每一行語句的意義,編譯出現(xiàn)錯誤筆者能夠很快的更改,數(shù)
29、碼管顯示出現(xiàn)不合心意的時候,筆者也能定位到相應(yīng)的語句。終于,筆者帶著將近一個月的積累,開始合成大程序,筆者將更改之后的三個子程序嵌入到大程序中,并用主函數(shù)分別調(diào)用初始化函數(shù),鍵盤掃描函數(shù),顯示函數(shù),筆者以為準備工作做得充足,主函數(shù)只要區(qū)區(qū)數(shù)行就可以完成這次畢設(shè),結(jié)果仿真出來的結(jié)果讓筆者哭笑不得。第一次仿真,8位數(shù)碼管只亮了6個,調(diào)試之后,正轉(zhuǎn)(E)反轉(zhuǎn)(F)的顯示代碼隨時改變,位移顯示部分更是奇葩,輸入數(shù)字之后,只顯示11,22,33,44等數(shù)字,根本無法輸入正常的數(shù)值,更別說舵機了,舵機也跟著亂轉(zhuǎn),就連現(xiàn)在,筆者調(diào)出來的程序,復(fù)位鍵還無法讓舵機復(fù)位。圖4.5 最終電路實現(xiàn)4.3 程序?qū)崿F(xiàn)簡述
30、及其源程序全部源程序及其說明 #include<reg52.h> /調(diào)用頭文件 #define uchar unsigned char /簡化定義語句 #define uint unsigned int/共陰極數(shù)碼管,數(shù)字編碼 uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/共陰極數(shù)碼管,位選編碼 uchar code seg=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe; uchar u11,u12,
31、u21,u22,u31,u32,a,b,c,d,u41,u42,key21,key22,key1;/x軸,u11=9,Y軸u12=10,正轉(zhuǎn)反轉(zhuǎn),正轉(zhuǎn)E,u21=14,反轉(zhuǎn)F,u22=15,位置,u31=,u32sbit PWM1=P34;/X軸電機控制sbit PWM2=P35;/Y軸電機控制sbit XZHOU=P32;/X軸鍵值輸入sbit YZHOU=P33;/Y軸鍵值輸入uchar DutyCycle1=43;/28,56,占空比變量uchar DutyCycle2=43;uchar dida1=0;/軟件計數(shù)變量uchar dida2=0;/延時函數(shù)void delay(uint
32、x) uchar i; while(x-) for(i=0;i<110;i+); / 初始化函數(shù)void init() TMOD=0x02; /設(shè)置定時器0工作方式在2 TH0=(256-1); /定時器初值設(shè)定 TL0=(256-1); /定時器初值設(shè)定 ET0=1; /使能定時器0中斷 TR0=1; /開啟定時器 EA=1; /使能總中斷 PWM1=1; /初始化PWM1,開始輸出高電平 PWM2=1;/8位共陰極數(shù)碼管顯示函數(shù) void display(uchar segNo,uchar num) P0=segsegNo;/通過P0端口選擇顯示的位 P1=tablenum;/通過P
33、1端口顯示數(shù)字 delay(0.5);/按鍵掃描函數(shù),X軸控制void keyScan() uchar t; /定義局部變量 delay(0.5);u11=10,u12=11;/X軸顯示代碼A,Y軸顯示代碼b P2=0xfe; /第一行閉合,1,2,3,X軸正轉(zhuǎn)四個位置 t=P2; t=t&0xf0; if(t!=0xf0) delay(0.5); t=P2; t=t&0xf0; if(t!=0xf0) /第一行閉合的情況下 t=P2; switch(t) case 0xee : /第一列閉合(鍵盤1位置) key1=1; break; case 0xde : /第二列閉合(鍵
34、盤2位置) key1=2; break; case 0xbe :/第三列閉合(鍵盤3位置) key1=3; break; case 0x7e :/第四列閉合(x軸正轉(zhuǎn),e,14) u21=14; break;while(t!=0xf0) /松手檢測 t=P2; t=t&0xf0; /第二行閉合,4,5,6,X軸反轉(zhuǎn)四個位置 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) case 0xed : /第一列閉合(鍵盤
35、4位置) key1=4; break; case 0xdd :/第二列閉合(鍵盤5位置) key1=5; break; case 0xbd :/第三列閉合(鍵盤6位置) key1=6; break; case 0x7d :/第四列閉合(x軸反轉(zhuǎn)f) u21=15;/f=15 break;while(t!=0xf0) /松手檢測 t=P2; t=t&0xf0; /第三行閉合,7,8,9,Y軸正轉(zhuǎn)四個位置 P2=0xfb; t=P2; t=t&0xf0; if(t!=0xf0) delay(0.5); t=P2; t=t&0xf0; if(t!=0xf0) /第三行閉合的情
36、況下 t=P2; switch(t) case 0xeb :/第一列閉合(鍵盤7位置) key1=7; break; case 0xdb:/第二列閉合(鍵盤8位置) key1=8; break; case 0xbb :/第三列閉合(鍵盤9位置) key1=9; break; case 0x7b :/第四列閉合(y軸正轉(zhuǎn)) u22=14; break;while(t!=0xf0) /松手檢測 t=P2; t=t&0xf0; /第四行閉合,復(fù)位,0,啟停,Y軸反轉(zhuǎn)四個位置 P2=0xf7; t=P2; t=t&0xf0; if(t!=0xf0) delay(0.5); t=P2;
37、t=t&0xf0; if(t!=0xf0) /第四行閉合的情況下 t=P2; switch(t) case 0xe7 :/第一列閉合(鍵盤復(fù)位位置) 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; case 0xd7 :/第二列閉合(鍵盤0位置) key1=0; break; case 0xb7 :/第三列閉合(鍵盤啟停位置)/x軸數(shù)字為c,DutyCycle1 x軸伺服電機占空比,控制電機轉(zhuǎn)動角度 /y軸數(shù)字為d, DutyCy
38、cle2 y軸伺服電機占空比,控制電機轉(zhuǎn)動角度 c=u31*10+u41;/c d=u32*10+u42;/d break; case 0x77 :/第四列閉合(y軸反轉(zhuǎn)) u22=15; break;while(t!=0xf0) /松手檢測 t=P2; t=t&0xf0; delay(0.5); /主函數(shù)void main(void) init();/調(diào)用初始化函數(shù) while(1) /不按顯示(!XZHOU=0) ,點擊顯示(!XZHOU) 按下顯示 (YZHOU=0) keyScan(); /調(diào)用鍵盤掃描函數(shù) if(!XZHOU)|(!YZHOU) /向XY軸分別輸入數(shù)字 if(
39、!XZHOU) /如果電機X軸按鈕,鍵入數(shù)值 /將數(shù)值分別存入u31,u41 delay(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軸按鈕,鍵入數(shù)值 /將數(shù)值分別存入u32,u42 delay(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); /松手檢測
40、/調(diào)用顯示函數(shù),第一至第八位 display(7,u11);/X軸 (A)10 display(6,u21); /正轉(zhuǎn)(e)/反轉(zhuǎn)(F) 14,15 display(5,u31);/位置 display(4,u41); display(3,u12);/y軸 (b)11 display(2,u22); /正轉(zhuǎn)(E)/反轉(zhuǎn)(F) display(1,u32); /位置 display(0,u42); delay(0.5); /x軸數(shù)字為c,DutyCycle1 x軸伺服電機占空比,控制電機轉(zhuǎn)動角度 /y軸數(shù)字為d, DutyCycle2 y軸伺服電機占空比,控制電機轉(zhuǎn)動角度 /根據(jù)正轉(zhuǎn)反轉(zhuǎn)顯示,控
41、制舵機轉(zhuǎn)向 if(u21<=14) DutyCycle1=c+43; if(u21>=15) DutyCycle1=43-c; if(u22<=14) DutyCycle2=d+43; if(u22>=15) DutyCycle2=43-d; if(u21<=0) DutyCycle1=43; if(u22<=0) DutyCycle2=43; /定時器0中斷服務(wù)函數(shù)void time0()interrupt 1 dida1+; if(dida1>=DutyCycle1) PWM1=0;/低電平 else /改變PWM口的電平,獲得PWM波形 PWM1=1;/高電平 if(dida1=100) dida1=0; /一個PWM周期(1*100us=0.1ms)完成后,軟件計數(shù)變量清零 dida2+; if(dida2&
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大數(shù)據(jù)分析師職業(yè)技能測試卷:數(shù)據(jù)清洗與預(yù)處理實戰(zhàn)試題集
- 2025年安全生產(chǎn)專業(yè)人員考試:隱患治理標準與實施步驟試題
- 2025年婚姻家庭咨詢師職業(yè)技能鑒定歷年真題試題四
- 2025年中學(xué)教師資格考試《綜合素質(zhì)》教育信息化應(yīng)用能力備考指南試題匯編
- 2025年壓力管道檢驗員資格考試試卷:壓力管道檢驗員考試備考技巧試題
- 2025年醫(yī)保知識考試題庫及答案:醫(yī)保目錄解讀與醫(yī)療保險信息化試題試卷
- 2025年專升本藝術(shù)概論考試模擬卷:藝術(shù)作品賞析技巧與藝術(shù)審美體驗試題
- 2025年醫(yī)??荚囶}庫:醫(yī)保目錄解讀與醫(yī)保基金管理試題集
- 2025年大數(shù)據(jù)分析師職業(yè)技能測試卷:數(shù)據(jù)倉庫優(yōu)化與性能提升試題解析
- 人事經(jīng)理在互聯(lián)網(wǎng)公司的崗位職責(zé)
- 23S519 小型排水構(gòu)筑物(帶書簽)
- 小型軋鋼機結(jié)構(gòu)設(shè)計
- 房屋拆除工程專項施工方案
- 像冠軍一樣教學(xué)讀后感3實用
- 電力安全生產(chǎn)事故調(diào)查規(guī)程
- GB/T 18781-2023珍珠分級
- GA/T 544-2021多道心理測試系統(tǒng)通用技術(shù)規(guī)范
- 腰椎間盤突出癥的針刀治療課件
- 《法理學(xué)》考試筆記與重點
- DB44!T+2419-2023全生曬柑普茶生產(chǎn)技術(shù)規(guī)程
- (52)-皰疹性咽峽炎小兒推拿探秘
評論
0/150
提交評論