基于單片機(jī)控制的數(shù)控X-Y工作臺(tái)系統(tǒng)設(shè)計(jì)--插補(bǔ)部分_第1頁(yè)
基于單片機(jī)控制的數(shù)控X-Y工作臺(tái)系統(tǒng)設(shè)計(jì)--插補(bǔ)部分_第2頁(yè)
基于單片機(jī)控制的數(shù)控X-Y工作臺(tái)系統(tǒng)設(shè)計(jì)--插補(bǔ)部分_第3頁(yè)
基于單片機(jī)控制的數(shù)控X-Y工作臺(tái)系統(tǒng)設(shè)計(jì)--插補(bǔ)部分_第4頁(yè)
基于單片機(jī)控制的數(shù)控X-Y工作臺(tái)系統(tǒng)設(shè)計(jì)--插補(bǔ)部分_第5頁(yè)
已閱讀5頁(yè),還剩90頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于單片機(jī)控制的數(shù)控X-Y工作臺(tái)系統(tǒng)設(shè)計(jì)插補(bǔ)部分摘 要本設(shè)計(jì)研究的課題主要是基于單片機(jī)控制的數(shù)控X-Y工作臺(tái)系統(tǒng)設(shè)計(jì)插補(bǔ)部分設(shè)計(jì)。在系統(tǒng)程序設(shè)計(jì)上運(yùn)用逐點(diǎn)比較法使步進(jìn)電機(jī)實(shí)現(xiàn)單坐標(biāo)定位、兩坐標(biāo)直線插補(bǔ)和圓弧插補(bǔ)的基本功能;在此功能基礎(chǔ)上通過(guò)建立象限判別程序,使X-Y工作臺(tái)達(dá)到四象限的工作要求;并編寫(xiě)了代碼處理指令,使CPU能夠根據(jù)讀入的指令信息(G代碼與X軸和Y軸坐標(biāo)),分別向X軸和Y軸步進(jìn)電機(jī)輸出執(zhí)行指令所需的控制信號(hào),從而完成指定的工序。該設(shè)計(jì)選用KeilVision2軟件進(jìn)行程序的編譯和調(diào)試,在Proteus環(huán)境下實(shí)現(xiàn)進(jìn)一步的調(diào)試并仿真得出程序的運(yùn)行結(jié)果。此次設(shè)計(jì)的程序均能在Proteu

2、s中的控制系統(tǒng)仿真電路圖中仿真通過(guò),仿真時(shí),只需從鍵盤(pán)輸入G代碼后,步進(jìn)電機(jī)就能通過(guò)直線插補(bǔ)和圓弧插補(bǔ),完成平面輪廓加工。關(guān)鍵字:插補(bǔ) 數(shù)控X-Y工作臺(tái) 步進(jìn)電機(jī) 單片機(jī)Design of X-Y NC Worktable Based on MicrocontrollerInterpolation partABSTRACTThe subject of this design study is mainly based on MCU control system design for CNC XY table - interpolation part of the design.Procedur

3、es used in the system design by point by point comparison then single-coordinate positioning, linear interpolation of the two coordinates, circular Interpolation of the two coordinates by use the stepper motor; on the basis of this, establish quadrant identification procedures so that XY table can w

4、ork in four quadrants; and write the code handler,so CPU according to the information which have been read(G code and the X-axis and Y-axis coordinates), output signals to two stepper motor separately for control the table how to move on X-axis and Y-axis to finish the specified process.The design o

5、f the software programs used KeilVision2 compile and debug, debugging at the Proteus and get the results of simulation. the results of the design of the program in the simulation by Proteus is wonderful, when simulation the program, just need input G code by the keyboard, stepper motor can control t

6、he table through linear interpolation and circular interpolation to finish plane contour machining.Key words: Interpolation X-Y NC Worktable Stepping Motor Microcontroller目 錄摘 要 . I ABSTRACT . II前言 . 1 1 X-Y數(shù)控工作臺(tái)設(shè)計(jì)簡(jiǎn)介 . 21.1 X-Y數(shù)控工作臺(tái)總體方案分析 . 21.2 仿真開(kāi)發(fā)環(huán)境Proteus簡(jiǎn)介 . 21.3 程序開(kāi)發(fā)環(huán)境KeilVision2簡(jiǎn)介 . 2 2 X-Y數(shù)控

7、工作臺(tái)機(jī)械部件功能分析 . 42.1 步進(jìn)電動(dòng)機(jī)的工作原理 . 42.2 步進(jìn)電動(dòng)機(jī)的工作方式 . 4 3 X-Y數(shù)控工作臺(tái)硬件電路分析 . 63.1 控制系統(tǒng)微控制器AT89C52 . 63.1.1 AT89C52單片機(jī)的主要工作特性 . 63.1.2 AT89C52單片機(jī)的內(nèi)部結(jié)構(gòu) . 63.1.3 AT89C52單片機(jī)的各引腳功能 . 153.2 可編程并行接口芯片8255A . 163.2.1 8255A的內(nèi)部結(jié)構(gòu) . 163.2.2 8255A的引腳功能 . 173.2.3 8255A的工作方式 . 183.2.4 8255A控制字 . 19 4 基于PROTEUS仿真電路分析 .

8、214.1 X-Y數(shù)控工作臺(tái)控制系統(tǒng)仿真電路圖 . 214.2 X-Y數(shù)控工作臺(tái)控制系統(tǒng)硬件資源及其分配 . 214.3 電路模塊圖分析 . 224.3.1 X-Y向步進(jìn)電機(jī)控制電路分析 . 224.3.2 四行四列矩陣式鍵盤(pán)控制電路分析 . 234.3.3 X-Y數(shù)控工作臺(tái)顯示電路分析 . 244.4 程序在仿真電路圖中實(shí)現(xiàn)的功能 . 25 5 X-Y數(shù)控工作臺(tái)總程序軟件設(shè)計(jì) . 265.1 程序總流程分析 . 265.2 Main 函數(shù)功能解釋 . 265.3 逐點(diǎn)比較法的插補(bǔ)原理 . 275.4 逐點(diǎn)比較法插補(bǔ)的優(yōu)點(diǎn) . 275.5 插補(bǔ)總流程分析 . 27 6 X-Y數(shù)控工作臺(tái)快速進(jìn)給

9、軟件設(shè)計(jì) . 286.1 快速進(jìn)給程序分析 . 28 7 X-Y數(shù)控工作臺(tái)直線插補(bǔ)軟件設(shè)計(jì) . 307.1 逐點(diǎn)比較法的直線插補(bǔ)的數(shù)學(xué)原理 . 307.1.1 逐點(diǎn)比較法的直線查補(bǔ)的偏差判別機(jī)制 . 307.1.2 直線插補(bǔ)中的終點(diǎn)判別機(jī)制 . 317.1.3 直線插補(bǔ)計(jì)算過(guò)程 . 317.1.4 直線插補(bǔ)中的進(jìn)給判別機(jī)制 . 317.2 直線插補(bǔ)程序分析 . 328 X-Y數(shù)控工作臺(tái)圓弧插補(bǔ)軟件設(shè)計(jì) . 348.1 逐點(diǎn)比較法的圓弧插補(bǔ)的數(shù)學(xué)原理 . 348.1.1 逐點(diǎn)比較法的圓弧查補(bǔ)的偏差判別機(jī)制 . 348.1.2 圓弧插補(bǔ)中的終點(diǎn)判別機(jī)制 . 358.1.3 圓弧插補(bǔ)計(jì)算過(guò)程 . 3

10、58.1.4 4個(gè)象限的圓弧插補(bǔ) . 358.2 順圓插補(bǔ)程序分析 . 378.3 逆圓插補(bǔ)程序分析 . 39 9 X-Y數(shù)控工作臺(tái)代碼處理軟件設(shè)計(jì) . 419.1 代碼處理程序分析 . 41 10 X-Y數(shù)控工作臺(tái)象限判別軟件設(shè)計(jì) . 43 10.1 象限判斷總程序分析 . 43 10.2 G0與G1情況象限判斷程序分析 . 43 10.3 G2情況象限判斷程序分析 . 45 10.4 G3情況象限判斷程序分析 . 45 11 中斷程序設(shè)計(jì)方法 . 47 11.1 定時(shí)器中斷程序解釋 . 47 11.2 外部中斷程序解釋 . 47結(jié)論與展望 . 48參考文獻(xiàn) . 49附錄A 總程序: . 5

11、0附錄B 文獻(xiàn)翻譯原文 . 75附錄C 文獻(xiàn)翻譯譯文 . 83謝 辭 . 90前言本次畢業(yè)設(shè)計(jì)的選題為基于單片機(jī)控制的數(shù)控X-Y工作臺(tái)系統(tǒng)設(shè)計(jì)插補(bǔ)部分。 X-Y數(shù)控工作臺(tái)是許多機(jī)電一體化設(shè)備的基本部件,通常由導(dǎo)軌座、滑動(dòng)模塊、工作平臺(tái)、滾珠絲杠螺母副,以及步進(jìn)電機(jī)的部件構(gòu)成。控制系統(tǒng)可選用標(biāo)準(zhǔn)的工業(yè)控制計(jì)算機(jī),也可設(shè)計(jì)專用的微機(jī)控制系統(tǒng)。本設(shè)計(jì)用AT89C52組成專用單片機(jī)控制系統(tǒng),從鍵盤(pán)輸入G代碼后,能通過(guò)直線插補(bǔ)和圓弧插補(bǔ),完成平面輪廓加工。通過(guò)正確的運(yùn)用大學(xué)四年學(xué)到的知識(shí)完成本次畢業(yè)設(shè)計(jì),可以更好的掌握有關(guān)機(jī)電一體化系統(tǒng)的設(shè)計(jì)過(guò)程和單片機(jī)的編程思想。通過(guò)該設(shè)計(jì)使自身具有一定的系統(tǒng)化編程思

12、想和能力,能夠獨(dú)立完成項(xiàng)目的設(shè)計(jì)。研究技術(shù)路線:1.單片機(jī)輸入/輸出端口;2.單片機(jī)的中斷系統(tǒng);3.單片機(jī)的定時(shí)/計(jì)數(shù)器;4.C語(yǔ)言順序與選擇結(jié)構(gòu)程序設(shè)計(jì);5.C語(yǔ)言循環(huán)結(jié)構(gòu)程序設(shè)計(jì);6.C語(yǔ)言數(shù)據(jù)類型運(yùn)算符、數(shù)組、函數(shù)、指針的運(yùn)用與設(shè)計(jì);7.C語(yǔ)言程序設(shè)計(jì)編譯預(yù)處理;8.在PROTEUS中進(jìn)行系統(tǒng)的調(diào)試與仿真。11 X-Y數(shù)控工作臺(tái)設(shè)計(jì)簡(jiǎn)介1.1 X-Y數(shù)控工作臺(tái)總體方案分析總體方案圖如圖1-1所示:圖1-1 X-Y數(shù)控工作臺(tái)總體方案圖X-Y數(shù)控工作臺(tái)是實(shí)現(xiàn)平面X、Y坐標(biāo)運(yùn)動(dòng)的典型關(guān)鍵部件,能夠分別沿X向和Y向移動(dòng)。本次設(shè)計(jì)的X-Y數(shù)控工作臺(tái)選用的是微機(jī)控制系統(tǒng)(AT89C52單片機(jī)),在基

13、于AT89C52單片機(jī)的原理上設(shè)計(jì)了一個(gè)小型的微機(jī)控制系統(tǒng),運(yùn)用C51編程將控制信號(hào)送到執(zhí)行器件(X和Y向步進(jìn)電動(dòng)機(jī)),通過(guò)機(jī)械傳動(dòng)機(jī)構(gòu)(齒輪減速和絲桿傳動(dòng)),帶動(dòng)機(jī)械執(zhí)行機(jī)構(gòu)(工作臺(tái))做X向和Y向的運(yùn)動(dòng);實(shí)現(xiàn)四象限單坐標(biāo)快速定位,雙坐標(biāo)直線、圓弧插補(bǔ)等功能;最終選擇通過(guò)Proteus與Keil聯(lián)機(jī)對(duì)設(shè)計(jì)的電路以及程序進(jìn)行仿真、1.2 仿真開(kāi)發(fā)環(huán)境Proteus簡(jiǎn)介Proteus ISIS是美國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是: 實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具

14、有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、SPI調(diào)試器、鍵盤(pán)和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。 支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。 提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如KeilVision2等軟件。 具有強(qiáng)大

15、的原理圖繪制功能1。1.3 程序開(kāi)發(fā)環(huán)境KeilVision2簡(jiǎn)介Vision2是一個(gè)標(biāo)準(zhǔn)的Windows應(yīng)用程序,支持長(zhǎng)文件名操作,其界面類似于MS Visual C+,可以再Windows95/98/2000/XP平臺(tái)上運(yùn)行,功能十分強(qiáng)大。它支持所有的1李泉溪.單片機(jī)原理與應(yīng)用實(shí)例仿真.北京:北京航空航天大學(xué)出版社M,2009,第90頁(yè).2KEIL8051工具,包括C編譯器、宏匯編器、連接/定位器、目標(biāo)代碼到HEX的轉(zhuǎn)換器。采用Keil C51開(kāi)發(fā)8051單片機(jī)應(yīng)用程序一般需要以下步驟: 在Vision2集成開(kāi)發(fā)環(huán)境中創(chuàng)建一個(gè)新項(xiàng)目文件(Project),并為該項(xiàng)目選定合適的單片機(jī)CPU器

16、件。 利用Vision2的文件編輯器編寫(xiě)C語(yǔ)言(或匯編語(yǔ)言)源程序文件,并將文件添加到項(xiàng)目中去。一個(gè)項(xiàng)目可以包含多個(gè)文件,除源程序文件外還可以有庫(kù)文件或文本說(shuō)明文件。 通過(guò)Vision2的各種選項(xiàng),配置51編譯器、A51宏編譯器、BL51連接定位器以及Debug調(diào)試器的功能。 利用Vision2的構(gòu)造(Build)工功能對(duì)項(xiàng)目中的源程序文件進(jìn)行編譯連接,生成絕對(duì)目標(biāo)代碼和可選的HEX文件。如果出現(xiàn)編譯連接錯(cuò)誤則返回第2步,修改源程序中的錯(cuò)誤后重新構(gòu)造整個(gè)項(xiàng)目。 將沒(méi)有錯(cuò)誤的絕對(duì)目標(biāo)代碼裝入Vision2調(diào)試器進(jìn)行仿真調(diào)試,調(diào)試成功后將HEX文件寫(xiě)入到單片機(jī)應(yīng)用系統(tǒng)的EPROM中2。 2 周潤(rùn)景

17、,張麗娜,劉映群.PROTEUS入門(mén)使用教程M.北京:機(jī)械工業(yè)出版社,2007,第82頁(yè).32 X-Y數(shù)控工作臺(tái)機(jī)械部件功能分析2.1 步進(jìn)電動(dòng)機(jī)的工作原理步進(jìn)電動(dòng)機(jī)又叫脈沖電動(dòng)機(jī),它是一種將電脈沖信號(hào)轉(zhuǎn)換為角位移的機(jī)電式數(shù)模(D/A)轉(zhuǎn)換器。在開(kāi)環(huán)數(shù)字程序控制系統(tǒng)中,輸出控制部分常采用步進(jìn)電動(dòng)機(jī)作為驅(qū)動(dòng)元件。步進(jìn)電動(dòng)機(jī)控制線路接受微機(jī)發(fā)來(lái)的指令脈沖,控制步進(jìn)電動(dòng)機(jī)作相應(yīng)地轉(zhuǎn)動(dòng),從而是步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)數(shù)控系統(tǒng)的工作臺(tái)。很明顯,指令脈沖的總數(shù)就決定了數(shù)控系統(tǒng)的工作臺(tái)的總移動(dòng)量,指令脈沖的頻率就決定了移動(dòng)的速度3。步進(jìn)電動(dòng)機(jī)的工作就是步進(jìn)轉(zhuǎn)動(dòng)。在一般的步進(jìn)電動(dòng)機(jī)工作中,其電源都是采用單極性的直流電源

18、。要使步進(jìn)電動(dòng)機(jī)轉(zhuǎn)動(dòng),就必須對(duì)步進(jìn)電動(dòng)機(jī)定子的各項(xiàng)繞組以適當(dāng)?shù)臅r(shí)序進(jìn)行通電。圖2-1 四相步進(jìn)電機(jī)步進(jìn)示意圖圖2-1為四相步進(jìn)電動(dòng)機(jī)步進(jìn)示意圖。開(kāi)始時(shí),開(kāi)關(guān)SB接通電源,SA、SC、SD斷開(kāi),B相磁極和轉(zhuǎn)子0、3號(hào)齒對(duì)齊,同時(shí),轉(zhuǎn)子的1、4號(hào)齒就和C、D相繞組磁極產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和D、A相繞組磁極產(chǎn)生錯(cuò)齒。當(dāng)開(kāi)關(guān)SC接通電源,SB、SA、SD斷開(kāi)時(shí),由于C相繞組的磁力線和1、4號(hào)齒之間磁力線的作用,使轉(zhuǎn)子轉(zhuǎn)動(dòng),1、4號(hào)齒和C相繞組的磁極對(duì)齊。而0、3號(hào)齒和A、B相繞組產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和A、D相繞組磁極產(chǎn)生錯(cuò)齒。依次類推,A、B、C、D四相繞組輪流供電,則轉(zhuǎn)子會(huì)沿著A、B、C、D方向

19、轉(zhuǎn)動(dòng)。2.2 步進(jìn)電動(dòng)機(jī)的工作方式步進(jìn)電動(dòng)機(jī)可工作于單相通電方式,也可工作于雙相通電方式和單相、雙相交叉通電方式。選用不同的工作方式,可使步進(jìn)電動(dòng)機(jī)具有不同的工作性能,如減小步距、提高定位精度和工作穩(wěn)定性等。本系統(tǒng)選用的步進(jìn)電動(dòng)機(jī)是四相八拍工作方式,四相步進(jìn)電機(jī)按照通電順序的不同,3 尹志強(qiáng).機(jī)電一體化系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)指導(dǎo)書(shū)M.北京:機(jī)械工業(yè)出版社,2007,第58頁(yè).4可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉(zhuǎn)動(dòng)力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,八拍工作方式既可以保持較高的轉(zhuǎn)動(dòng)力矩又可以提高控制精度。圖2-2給出了三種工作方式下四

20、相步進(jìn)電動(dòng)機(jī)的波形圖,從圖中我們可以清晰的看到四相八拍步進(jìn)電動(dòng)機(jī)的通電相序?yàn)椋篈ABBBCCCDDDAAABB。圖2-2 四相步進(jìn)電動(dòng)機(jī)三種工作方式下的工作波形圖53 X-Y數(shù)控工作臺(tái)硬件電路分析3.1 控制系統(tǒng)微控制器AT89C523.1.1 AT89C52單片機(jī)的主要工作特性 8031CPU(8051的內(nèi)核); 8KB的快速擦寫(xiě)Flash存儲(chǔ)器,用于程序存儲(chǔ)器,可擦寫(xiě)次數(shù)為1000次; 256字節(jié)的RAM,其中高128字節(jié)地址被特殊功能寄存器SFR占用; 32跟可編程I/O端口:P0、P1、P2、P3; 2個(gè)可編程16位定時(shí)器:P3口的第二功能; 具有6個(gè)中斷源、5個(gè)中斷矢量、二級(jí)優(yōu)先權(quán)的

21、中斷系統(tǒng); 1個(gè)數(shù)據(jù)指針DPTR; 1個(gè)可編程的全雙工串行通信:P3口的第二功能; 具有“空閑”和“掉電”兩種低功耗工作方式; 可編程的3級(jí)程序鎖定位; 工作電源的電壓為(5±0.2)V; 振蕩器最高頻率為24 MHz; 編程頻率324 MHz,編程電流1 mA,編程電壓Vpp為5 V或12 V。 P1.0口的T2為定時(shí)器/計(jì)數(shù)器,P1.1口的T2EX為具有捕捉/重裝操作的定時(shí)器/計(jì)數(shù)器4。3.1.2 AT89C52單片機(jī)的內(nèi)部結(jié)構(gòu)AT89C52單片機(jī)的內(nèi)部結(jié)構(gòu)如圖3-1所示。可分為四大部分:內(nèi)核CPU部分、存儲(chǔ)器部分、I/O接口部分和特殊功能部分(如定時(shí)器/計(jì)數(shù)器、外中斷控制模塊等

22、)。(1)AT89C52單片機(jī)的CPUAT89C52單片機(jī)的CPU是8位字長(zhǎng),主要包括運(yùn)算器和控制器兩部分。運(yùn)算器的功能是進(jìn)行算術(shù)邏輯運(yùn)算、位處理操作和數(shù)據(jù)的傳送,主要包括:算術(shù)/邏輯運(yùn)算單元(ALU)運(yùn)算器的核心部件,用來(lái)完成基本的算術(shù)運(yùn)算、邏輯運(yùn)算和位處理操作。AT89C52具有極強(qiáng)的“位”處理功能,可以進(jìn)行加、減、乘、除、與、或、非、異或、左移、右移、半字節(jié)交換、BCD碼運(yùn)算、位處理、位檢測(cè)等運(yùn)算和操作;暫存器TMP1和TMP2作為ALU的兩個(gè)輸入,暫時(shí)存放參加運(yùn)算的數(shù)據(jù);累加器ACC是一個(gè)8位寄存器;寄存器B,執(zhí)行乘法或除法指令前,寄存器B用來(lái)存放乘數(shù)或除數(shù),ALU的另外一個(gè)輸入來(lái)自于

23、ACC,乘法或除法指令執(zhí)行完成后,寄存器B用來(lái)存放乘積的高8位或除法的余數(shù);執(zhí)行非乘法或除法指令時(shí),寄存器B可以作為一般用途的寄存器使用; 4 丁明亮,唐前輝.51單片機(jī)應(yīng)用設(shè)計(jì)與仿真:基于Keil C與ProteusM.北京:北京航空航天大學(xué)出版社,2009,第2頁(yè).6程序狀態(tài)字寄存器PSW是一個(gè)8位的標(biāo)志寄存器,用來(lái)存放當(dāng)前指令執(zhí)行后的有關(guān)狀態(tài),為以后指令的執(zhí)行提供狀態(tài)依據(jù),因此一些指令的執(zhí)行結(jié)果會(huì)影響PSW的相關(guān)狀態(tài)標(biāo)志;PSW中各位的狀態(tài)通常在指令執(zhí)行過(guò)程中自動(dòng)生成,同時(shí)AT89C52單片機(jī)的PSW是可編程的,通常程序可以改變PSW中各位的狀態(tài)標(biāo)志。程序狀態(tài)字PSW各位的狀態(tài)標(biāo)志定義如

24、圖3-2和表3-1所示;圖3-1 AT89C52單片機(jī)原理結(jié)構(gòu)圖圖3-2 PSW各位的狀態(tài)標(biāo)志7表3-1 PSW各位的定義CPU中控制器是控制讀取指令,識(shí)別指令并根據(jù)指令的性質(zhì)協(xié)調(diào)、控制單片機(jī)個(gè)組成部件有序工作的重要部件,是CPU乃至整個(gè)單片機(jī)的中樞神經(jīng)。控制器由程序計(jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、堆棧指針SP、數(shù)據(jù)指針DPTR、定時(shí)及控制邏輯電路等組成。控制器的主要功能是控制指令的讀入、譯碼和執(zhí)行,并對(duì)指令的執(zhí)行過(guò)程進(jìn)行定時(shí)和邏輯控制。根據(jù)不同的指令協(xié)調(diào)單片機(jī)各個(gè)單元有序工作。圖3-3 存儲(chǔ)器空間分布圖8(2)AT89C52單片機(jī)的存儲(chǔ)器AT89C52單片機(jī)芯片內(nèi)配置有8KB(0

25、000H1FFFH)的Flash程序存儲(chǔ)器ROM和256字節(jié)(00HFFH)的數(shù)據(jù)存儲(chǔ)器RAM,根據(jù)需要可外擴(kuò)到最大64KB的程序存儲(chǔ)器和64KB的數(shù)據(jù)存儲(chǔ)器,因此AT89C52的存儲(chǔ)器結(jié)構(gòu)可分為4部分:片內(nèi)程序存儲(chǔ)器、片外程序存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器(見(jiàn)圖3-3)。本次設(shè)計(jì)選用最小系統(tǒng)設(shè)計(jì)單片機(jī),即不擴(kuò)展,AT89C52的存儲(chǔ)器結(jié)構(gòu)較為簡(jiǎn)單:只有單片機(jī)自身提供的8KB Flash程序存儲(chǔ)器ROM和256字節(jié)數(shù)據(jù)存儲(chǔ)器RAM。使用時(shí),引腳要提高電平(5V),這時(shí),復(fù)位后CPU從片內(nèi)ROM區(qū)的0000H單元開(kāi)始讀取指令代碼,一直運(yùn)行到1FFFH單元。如圖1.6所示,虛線框內(nèi)左側(cè)為片

26、內(nèi)自帶的數(shù)據(jù)存儲(chǔ)器RAM,此256字節(jié)單元(00HFFH)的低128字節(jié)(00H7FH)單元為用戶使用去,高128字節(jié)(80HFFH)單元為特殊功能寄存器SFR區(qū)。片內(nèi)寄存器的00H7FH區(qū)又劃分成3塊:00H1FH塊是工作寄存器所用;20H2FH塊石有位尋址功能的單元區(qū);30H7FH是普通RAM區(qū)。工作寄存器又分為4組,在當(dāng)前的運(yùn)行程序中只有某一組是被激活的,誰(shuí)被激活由程序狀態(tài)寄存器PSW的RS1、RS0兩位決定,如表3-2所列。如表3-3所列出了特殊功能寄存器SFR的名稱、符號(hào)和地址。在程序設(shè)計(jì)中,可直接用寄存器名作為寄存器的符號(hào)地址使用。圖3-4 片內(nèi)數(shù)據(jù)寄存器的結(jié)構(gòu)9表3-2 工作寄存

27、器激活地址表表3-3 特殊功能寄存器SFR(3)AT89C52單片機(jī)的I/O接口AT89C52單片機(jī)內(nèi)部集成了4個(gè)可編程的并行I/O接口(P0P3),每個(gè)接口電路都有鎖存器和驅(qū)動(dòng)器,輸入接口電路具有三態(tài)門(mén)控制。P0P3口同RAM統(tǒng)一編址,可以當(dāng)作10特殊功能寄存器SFR來(lái)尋址。AT89C52單片機(jī)可以利用其I/O接口直接與外圍電路相連,使用時(shí),P0P3口在開(kāi)機(jī)或復(fù)位時(shí)均呈高電平。AT89C52單片機(jī)的并行I/O接口有以下應(yīng)用特性:P0、P1、P2、P3作為通用I/O口使用時(shí),輸入操作是讀引腳狀態(tài);輸出操作是對(duì)口的鎖存器的寫(xiě)入操作,鎖存器的狀態(tài)立即反映到引腳上。P1、P2、P3口作為輸出口時(shí),由

28、于電路內(nèi)部帶上拉電阻,因此無(wú)需外接上拉電阻,而P0口由于內(nèi)部無(wú)上啦電阻,因此使用它時(shí),必須外接上拉電阻。P0、P1、P2、P3作為通用的輸入口時(shí),必須使電路中的鎖存器寫(xiě)入高電平“1”,使場(chǎng)效應(yīng)管(FET)VF1截止,以避免鎖存器輸出為“0”時(shí)場(chǎng)效應(yīng)管VF1導(dǎo)通使引腳狀態(tài)始終被鉗位在“0”狀態(tài)。I/O口功能的自動(dòng)識(shí)別。無(wú)論是P0、P2口的總線復(fù)用功能,還是P3口的第二功能復(fù)用,單片機(jī)會(huì)自動(dòng)選擇,不需要指令選擇。兩種讀端口的方式。包括端口鎖存器的“讀改寫(xiě)”操作和讀引腳的操作。在單片機(jī)中,有些指令是讀端口鎖存器的,如一些邏輯運(yùn)算指令、置位/復(fù)位指令、條件轉(zhuǎn)移指令以及將I/O口作為目的地址的操作指令;

29、有些指令是讀引腳的,如以I/O口作為源操作數(shù)的指令。I/O口的驅(qū)動(dòng)特性。P0口每一個(gè)I/O口可驅(qū)動(dòng)8個(gè)LSTTL輸入,而P1、P2、P3口每一個(gè)I/O口可驅(qū)動(dòng)4個(gè)LSTTL輸入。(4)AT89C52單片機(jī)的特殊功能部分AT89C52單片機(jī)內(nèi)部集成有定時(shí)器/計(jì)數(shù)器、串行通信控制器、外部中斷控制器等特殊功能部件,從而使AT89C52單片機(jī)具有定時(shí)/計(jì)數(shù)功能、全雙工串行通信功能、實(shí)現(xiàn)對(duì)外部事件實(shí)時(shí)響應(yīng)的中斷處理功能。以下將重點(diǎn)介紹定時(shí)器/計(jì)數(shù)器以及外部中斷控制器等特殊功能部件,因?yàn)楸驹O(shè)計(jì)中,會(huì)重復(fù)多次使用到這些特殊功能部件。AT89C52單片機(jī)內(nèi)部設(shè)有兩個(gè)16位的可編程定時(shí)器/計(jì)數(shù)器,即定時(shí)器/計(jì)數(shù)

30、器0和定時(shí)器/計(jì)數(shù)器1,以及一個(gè)可編程定時(shí)器/計(jì)數(shù)器2;控制寄存器TCON見(jiàn)表3-4,方式控制寄存器TMOD表3-5,其相應(yīng)標(biāo)志位的功能及編程時(shí)的使用方法見(jiàn)表3-6、3-7。表3-4 控制寄存器TCON表3-5 方式控制寄存器TMOD11表3-6 特殊功能寄存器標(biāo)志位的功能表3.7 操作模式AT89C52有6個(gè)固定的可屏蔽中斷源,它們分別是兩個(gè)外部中斷INT0(P3.2)和INT1(P3.3),三個(gè)片內(nèi)定時(shí)器/計(jì)數(shù)器溢出中斷TF0、TF1和TF2,一個(gè)片內(nèi)串行口中斷TI或RI。6個(gè)中斷源有兩個(gè)中斷優(yōu)先級(jí),可形成中斷嵌套,并在程序存儲(chǔ)器中各有固定的中斷入口地址。6個(gè)中斷源的符號(hào)、名稱及產(chǎn)生的條件

31、如下:INT0:外部中斷0,由P3.2端口線引入,低電平或下降沿引起。12INT1:外部中斷1,由P3.3端口線引入,低電平或下降沿引起。T0:定時(shí)器/計(jì)數(shù)器0中斷,由T0計(jì)滿回零引起。T1:定時(shí)器/計(jì)數(shù)器1中斷,由T1計(jì)滿回零引起。TI/RI:串行I/O中斷,串行端口完成一幀字符發(fā)送/接受后引起中斷。T2:定時(shí)器/計(jì)數(shù)器2中斷,由T2計(jì)滿回零引起。下面將對(duì)本次設(shè)計(jì)中使用到的中斷控制其專用寄存器進(jìn)行分析,由于上述已對(duì)定時(shí)器/計(jì)數(shù)器0、1控制寄存器TCON做了分析,在此不做重復(fù)介紹;中斷允許控制寄存器IE見(jiàn)表3-8,中斷優(yōu)先級(jí)控制寄存器IP見(jiàn)表3-9,其相應(yīng)標(biāo)志位的功能及編程時(shí)的使用方法見(jiàn)表3-

32、10;表3-11為中斷服務(wù)程序的入口地址。表3-8 中斷允許控制寄存器IE表3-9 中斷優(yōu)先級(jí)控制寄存器IP表3-10 中斷控制專用寄存器標(biāo)志位的功能13表3-11 中斷服務(wù)程序的入口地址 143.1.3 AT89C52單片機(jī)的各引腳功能AT89C52單片機(jī)的引腳圖如圖3-5所示,由于上述分析中以對(duì)I/O進(jìn)行的系統(tǒng)性的介紹,下面只對(duì)其第二功能做具體的補(bǔ)充,詳細(xì)見(jiàn)表3-12。圖3-5 PDIP封裝形式的AT89C52單片機(jī)引腳排列VCC:電源電壓GND:接地RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出項(xiàng)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。 ALE/ PROG:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器

33、時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE 脈沖。對(duì)Flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖。PSEN:程序儲(chǔ)存允許PSEN輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。外部訪問(wèn)允許。欲使EA/VPP:如EA端為高電平(接EA端狀態(tài)。CPU 僅訪問(wèn)外部程序存儲(chǔ)器(地址為

34、0000HFFFFH),LB1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存。需注意的是:如果加密位EA端必須保持低電平(接地)Vcc端),CPU 則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。Flash 存儲(chǔ)器編程時(shí),該引腳加上+12V 的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V 編15程電壓Vpp。本次設(shè)計(jì)因?yàn)榻痈唠娖健TAL1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。表3-12 AT89C52單片機(jī)P0口和P3口引腳的第二功能3.2 可編程并行接口芯片8255A8255A有24條I/O線,分為A、B、C共3個(gè)端口來(lái)使用;8條數(shù)據(jù)線,用于數(shù)據(jù)和控制命令傳送;兩條地址線,讀

35、/寫(xiě)時(shí)用于選擇片內(nèi)的控制寄存器或A、B、C口對(duì)應(yīng)的3個(gè)端口寄存器PA、PB、PC;讀/寫(xiě)信號(hào)控制線各一根;還有復(fù)位信號(hào),片選信號(hào)、電源等引腳。8255A的24條I/O線可編程分為兩組,有3種工作方式,其中,方式0是最為簡(jiǎn)單和常用的一種,該方式下端口A、B、C僅作簡(jiǎn)單的出入/輸出使用。8255A的工作方式有其片內(nèi)的控制寄存器選擇。3.2.1 8255A的內(nèi)部結(jié)構(gòu)8255A內(nèi)部由PA、PB、PC這3個(gè)8位可編程雙向I/O口,A組控制器和B組控制器,數(shù)據(jù)緩沖器及讀/寫(xiě)控制邏輯4部分電路組成,其結(jié)構(gòu)如圖3-65所示。PA、PB、PC口:PA、PB、PC口均為8位I/O數(shù)據(jù)口,但結(jié)構(gòu)上略有差別。A口由一

36、個(gè)8位數(shù)據(jù)輸出緩沖/鎖存器和一個(gè)8位數(shù)據(jù)輸入緩沖/鎖存器組成,B口和C口各由一個(gè)8位數(shù)據(jù)輸出緩沖/鎖存器和一個(gè)8位數(shù)據(jù)輸入緩沖器(無(wú)輸入數(shù)據(jù)緩沖器,故B口不能在模式2下工作)組成。A組控制器和B組控制器:A、B組控制器對(duì)應(yīng)的控制字寄存器接受CPU送來(lái)的控制字,用于決定8255A的工作方式。A組控制器控制A口和C口上半部(PC4PC7),B組5 梁景凱,蓋玉先.機(jī)電一體化技術(shù)與系統(tǒng)M.北京:機(jī)械工業(yè)出版社,2006,第108頁(yè).16控制器控制B口和C口下半部(PC0PC3)。數(shù)據(jù)總線緩沖器:這是一個(gè)8位雙向三態(tài)驅(qū)動(dòng)器,用于8255A和單片機(jī)的數(shù)據(jù)總線相連,以實(shí)現(xiàn)8255A與單片機(jī)的數(shù)據(jù)發(fā)送。讀/

37、寫(xiě)控制邏輯:接收CPU送來(lái)的讀/寫(xiě)信號(hào)和選口地址,用于控制對(duì)8255A的讀/寫(xiě)。圖3-6 8255A邏輯結(jié)構(gòu)圖3.2.2 8255A的引腳功能8255A有40條引腳,采用雙列直插式封裝,見(jiàn)圖3.7。圖3-7 8255A引腳圖17 數(shù)據(jù)總線(8條):D0D7,用于傳送CPU和8255A間的數(shù)據(jù)、命令和狀態(tài)字。 控制總線(6條):· RESRT:復(fù)位線,高電平有效。 · ·CS:片選線,低電平有效。若CS為高電平,則8255A不被選中;若CS為低電平,則8255A選中。皆為低電平有效。若RD為低電平(WR必為高電平),RDWR為寫(xiě)命令線,則所選8255A處于讀狀態(tài);若

38、WR為低電平(必為高電平),則所選8255A處于寫(xiě)狀態(tài)。· A0、A1:地址輸入線,用于選中PA、PB、PC口和控制寄存器中哪一個(gè)工作。 上述控制線的功能如表3-12所列。表3-12 8255A控制線功能 并行I/O總線(24條):這些總線用于和外設(shè)相連,共分3組。· PA7PA0:雙向I/O總線。PA7為最高位,用于傳送I/O數(shù)據(jù),可以設(shè)定為輸入或輸出方式,也可設(shè)定為輸入/輸出雙向方式。· PB7PB0:雙向I/O總線。PB7為最高位,用于傳送I/O數(shù)據(jù),可以設(shè)定為輸入或輸出方式。· PC7PC0:雙向數(shù)據(jù)/控制總線。PC7為最高位,用于傳送I/O數(shù)據(jù)

39、或控制/狀態(tài)信息,可以設(shè)定為輸入或輸出方式,也可設(shè)定為控制/狀態(tài)方式。 電源線(2條):Vcc為+5V電源線,GND為地線。3.2.3 8255A的工作方式8255A有3種工作方式:方式0、方式1、方式2。方式0:基本輸入/輸出方式。這種方式中3個(gè)端口被設(shè)置成輸入或輸出口,但不能既18作輸入又作輸出。PC口分成兩部分:上半口(PC4PC7)、下半口(PC0PC3),兩部分可分別設(shè)置傳動(dòng)方向。各端口均可用于無(wú)條件數(shù)據(jù)傳送,也可通過(guò)人為指定PC口的某些位作為PA口、PB口的狀態(tài)信號(hào),進(jìn)行查詢方式傳送。方式1:選通輸入/輸出方式。這種方式下PA口、PB口通過(guò)編程設(shè)定為輸入口或輸出口,而PC口則分成兩

40、部分,分別用作PA口和PB口的控制和同步信號(hào),以便于8255A和CPU之間傳送信息和中斷請(qǐng)求。這種聯(lián)絡(luò)信號(hào)時(shí)由8155A內(nèi)部規(guī)定的,不是由使用者指定的。PC口的高4位服務(wù)于A口,稱A組。PC口的低4位服務(wù)于B口,稱B組。方式2:雙向總線方式。只有PA口可工作于此方式,這時(shí)PA口既可輸入又可輸出,PC口的PC3PC7用作輸入/輸出的同步控制信號(hào)。此時(shí),PB口可以工作于方式0,但不能工作于方式1。3.2.4 8255A控制字8255A方式控制字如圖3-8,分為兩種類型控制字:方式控制字如圖3.3和C口置位/復(fù)位控制字如圖3-8。方式控制字圖3-8 方式選擇控制字格式19C口置位/復(fù)位控制字圖3-9

41、C口控制字格式204 基于PROTEUS仿真電路分析4.1 X-Y數(shù)控工作臺(tái)控制系統(tǒng)仿真電路圖圖4-1 X-Y數(shù)控工作臺(tái)控制系統(tǒng)仿真電路圖4.2 X-Y數(shù)控工作臺(tái)控制系統(tǒng)硬件資源及其分配X-Y數(shù)控工作臺(tái)控制系統(tǒng)硬件資源主要包括有:AT89C52單片機(jī)、鎖存器74LS373、可編程控制器8255A、8位8段共陰數(shù)碼管、四行四列矩陣鍵盤(pán)、限位/急停按鈕、晶振電路、復(fù)位電路、以及六線制的四相八拍工作制的X和Y向步進(jìn)電動(dòng)機(jī)各一個(gè)。控制系統(tǒng)硬件資源的分配如表4-1所列。表4-1 X-Y數(shù)控工作臺(tái)控制系統(tǒng)硬件資源分配214.3 電路模塊圖分析4.3.1 X-Y向步進(jìn)電機(jī)控制電路分析圖4-2 X/Y向步進(jìn)電

42、機(jī)控制電路模擬圖圖4-2為X/Y向步進(jìn)電機(jī)控制電路模擬圖,從圖從我們可以看到仿真選用的是6線制的四相八拍步進(jìn)電機(jī),通過(guò)8255A的PC0PC3口分別向X向步進(jìn)電機(jī)輸入脈沖信號(hào),PC4PC7則分別向Y向步進(jìn)電機(jī)輸入脈沖信號(hào)。四相八拍步進(jìn)電機(jī)的正轉(zhuǎn)相序是AABBBCCCDDDA,反轉(zhuǎn)相序是DADCDCBCBBAA;表2-3將給出X向步進(jìn)電動(dòng)機(jī)正轉(zhuǎn)時(shí)PC口各引腳輸出電平與X向電機(jī)相位關(guān)系;表4-4將給出Y向步進(jìn)電動(dòng)機(jī)正轉(zhuǎn)時(shí)PC口各引腳輸出電平與22Y向電機(jī)相位關(guān)系;而反轉(zhuǎn)時(shí),控制的方式只需把從上往下循環(huán)改為從下往上循環(huán)即可。表4-2 X向步進(jìn)電動(dòng)機(jī)正轉(zhuǎn)時(shí)PC口各引腳輸出電平與Y向電機(jī)相位關(guān)系表4-3

43、 Y向步進(jìn)電動(dòng)機(jī)正轉(zhuǎn)時(shí)PC口各引腳輸出電平與Y向電機(jī)相位關(guān)系4.3.2 四行四列矩陣式鍵盤(pán)控制電路分析圖4-3為四行四列矩陣式鍵盤(pán)控制電路原理圖,原理圖的設(shè)計(jì)上,在鍵盤(pán)的行掃描線上設(shè)置了上拉電阻,P1.001.3為鍵盤(pán)控制電路的行掃描口,P1.41.7為鍵盤(pán)控制電路的列掃描口。鍵盤(pán)上設(shè)有了09共10個(gè)數(shù)字鍵、X坐標(biāo)鍵、Y左邊鍵、G代碼按鍵、數(shù)字符號(hào)負(fù)號(hào)鍵、ENTER(確認(rèn))鍵以及START(開(kāi)始)按鍵。通過(guò)這些按鍵能我們能直接向AT89C52單片機(jī)輸入指令、X坐標(biāo)和Y坐標(biāo)。23圖4-3 鍵盤(pán)硬件電路接線圖4.3.3 X-Y數(shù)控工作臺(tái)顯示電路分析圖4-4 X-Y數(shù)控工作臺(tái)仿真顯示電路數(shù)控X-Y工作臺(tái)顯示電路使用的是8位8段共陰極數(shù)碼管如圖4-4所示,引腳A、B、C、D、E、F、G和DP是數(shù)碼管的段驅(qū)動(dòng)信號(hào)輸入端口,從圖上看出,設(shè)計(jì)時(shí)連接的是8255A的PA口;引腳1、2、3、4、5、6、7和8分別是數(shù)碼管的位選擇信號(hào)輸入端口,設(shè)計(jì)時(shí)連接的是8255A的PB口。改顯示電路能及時(shí)的顯示鍵盤(pán)電路輸入的指令,如G代碼、X坐標(biāo)和Y坐標(biāo)。244.4 程序在仿真電路圖中實(shí)現(xiàn)的功能

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論