【正文】
ler ——Interpolation partABSTRACTThe subject of this design study is mainly based on MCU control system design for CNC XY table interpolation part of the design. Procedures used in the system design by point by point parison then singlecoordinate positioning, linear interpolation of the two coordinates, circular Interpolation of the two coordinates by use the stepper motor。2010屆畢業(yè)設計基于單片機控制的數控XY工作臺系統(tǒng)設計 ——插補部分摘 要本設計研究的課題主要是基于單片機控制的數控XY工作臺系統(tǒng)設計—插補部分設計。此次設計的程序均能在Proteus中的控制系統(tǒng)仿真電路圖中仿真通過,仿真時,只需從鍵盤輸入G代碼后,步進電機就能通過直線插補和圓弧插補,完成平面輪廓加工。XY數控工作臺是許多機電一體化設備的基本部件,通常由導軌座、滑動模塊、工作平臺、滾珠絲杠螺母副,以及步進電機的部件構成。通過該設計使自身具有一定的系統(tǒng)化編程思想和能力,能夠獨立完成項目的設計。它運行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:① 實現(xiàn)了單片機仿真和SPICE電路仿真相結合。③ 提供軟件調試功能。它支持所有的KEIL8051工具,包括C編譯器、宏匯編器、連接/定位器、目標代碼到HEX的轉換器。③ 通過μVision2的各種選項,配置51編譯器、A51宏編譯器、BL51連接定位器以及Debug調試器的功能。2 XY數控工作臺機械部件功能分析 步進電動機的工作原理步進電動機又叫脈沖電動機,它是一種將電脈沖信號轉換為角位移的機電式數模(D/A)轉換器。步進電動機的工作就是步進轉動。開始時,開關SB接通電源,SA、SC、SD斷開,B相磁極和轉子0、3號齒對齊,同時,轉子的4號齒就和C、D相繞組磁極產生錯齒,5號齒就和D、A相繞組磁極產生錯齒。 步進電動機的工作方式步進電動機可工作于單相通電方式,也可工作于雙相通電方式和單相、雙相交叉通電方式。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,八拍工作方式既可以保持較高的轉動力矩又可以提高控制精度。? ,[4] 丁明亮,:基于Keil C與Proteus[M].北京:北京航空航天大學出版社,2009,第2頁.。運算器的功能是進行算術邏輯運算、位處理操作和數據的傳送,主要包括:算術/邏輯運算單元(ALU)運算器的核心部件,用來完成基本的算術運算、邏輯運算和位處理操作。F0用戶標志位用戶標識位。保留位保留位,無意義??刂破饔沙绦蛴嫈灯鱌C、指令寄存器IR、指令譯碼器ID、堆棧指針SP、數據指針DPTR、定時及控制邏輯電路等組成。本次設計選用最小系統(tǒng)設計單片機,即不擴展,AT89C52的存儲器結構較為簡單:只有單片機自身提供的8KB Flash程序存儲器ROM和256字節(jié)數據存儲器RAM。工作寄存器又分為4組,在當前的運行程序中只有某一組是被激活的,誰被激活由程序狀態(tài)寄存器PSW的RSRS0兩位決定,如表32所列。P0~P3口同RAM統(tǒng)一編址,可以當作特殊功能寄存器SFR來尋址。P0、PPP3作為通用的輸入口時,必須使電路中的鎖存器寫入高電平“1”,使場效應管(FET)VF1截止,以避免鎖存器輸出為“0”時場效應管VF1導通使引腳狀態(tài)始終被鉗位在“0”狀態(tài)。包括端口鎖存器的“讀—改—寫”操作和讀引腳的操作。(4)AT89C52單片機的特殊功能部分AT89C52單片機內部集成有定時器/計數器、串行通信控制器、外部中斷控制器等特殊功能部件,從而使AT89C52單片機具有定時/計數功能、全雙工串行通信功能、實現(xiàn)對外部事件實時響應的中斷處理功能。表34 控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0表35 方式控制寄存器TMODT/C1T/C0D7D6D5D4D3D2D1D0GATEC/M1M0GATEC/M1M0表36 特殊功能寄存器標志位的功能特殊功能寄存器標志位定義和功能計數寄存器TH1T1計數器高8位寄存器TH0T0計數器高8位寄存器TL1T1計數器低8位寄存器TL0T0計數器低8位寄存器控制寄存器 TCONTF1T/C1的溢出標志,溢出時由硬件置1,進入中斷后又由硬件自動清0TR1T/C1的啟動和停止位,由軟件控制。方式控制寄存器TMODGATE當GATE位置1時,T/C0受到雙重控制;只有為高電平且TR0位置1時T/C0才開始工作;當GATE位清0時,T/C0僅受到TR0的控制。6個中斷源的符號、名稱及產生的條件如下::外部中斷0,低電平或下降沿引起。TI/RI:串行I/O中斷,串行端口完成一幀字符發(fā)送/接受后引起中斷。當CPU檢測到INT1低電平或下降沿且IT1=1時,由內部硬件置位IE1標志位(IE1=1),向CPU請求中斷,當CPU響應中斷并轉向該中斷服務程序執(zhí)行時,由硬件內部自動將IE1清0。IT0用軟件置位/復位IT0來選擇外部中斷INT0是下降沿觸發(fā)還是電平觸發(fā)中斷請求。ES串行口中斷控制位,ES=1,允許串行口發(fā)送/接受中斷;ES=0,禁止串行口中斷。EX0外部中斷0控制位,EX0=1,允許中斷;EX0=0,禁止外部中斷0中斷。PT1=1設定定時器T1為高優(yōu)先級中斷;PT1=0為低優(yōu)先級中斷PX1外部中斷1優(yōu)先級控制位。PX0外部中斷0優(yōu)先級控制位。當振蕩器工作時,RST引腳出項兩個機器周期以上高電平將使單片機復位。對Flash 存儲器編程期間,該引腳還用于輸入編程脈沖。欲使CPU 僅訪問外部程序存儲器(地址為0000H—FFFFH),端必須保持低電平(接地)。本次設計因為接高電平。8255A的24條I/O線可編程分為兩組,有3種工作方式,其中,方式0是最為簡單和常用的一種,該方式下端口A、B、C僅作簡單的出入/輸出使用。A口由一個8位數據輸出緩沖/鎖存器和一個8位數據輸入緩沖/鎖存器組成,B口和C口各由一個8位數據輸出緩沖/鎖存器和一個8位數據輸入緩沖器(無輸入數據緩沖器,故B口不能在模式2下工作)組成。讀/寫控制邏輯:接收CPU送來的讀/寫信號和選口地址,用于控制對8255A的讀/寫。 RESRT:復位線,高電平有效。 A0、A1:地址輸入線,用于選中PA、PB、PC口和控制寄存器中哪一個工作。 PA7~PA0:雙向I/O總線。PB7為最高位,用于傳送I/O數據,可以設定為輸入或輸出方式。④ 電源線(2條):Vcc為+5V電源線,GND為地線。PC口分成兩部分:上半口(PC4~PC7)、下半口(PC0~PC3),兩部分可分別設置傳動方向。這種聯(lián)絡信號時由8155A內部規(guī)定的,不是由使用者指定的。只有PA口可工作于此方式,這時PA口既可輸入又可輸出,PC口的PC3~PC7用作輸入/輸出的同步控制信號??刂葡到y(tǒng)硬件資源的分配如表41所列。表42 X向步進電動機正轉時PC口各引腳輸出電平與Y向電機相位關系X向步進電機相位可編程控制器8255A的PC口各引腳的電平PC口輸出的16進制數PC0PC1PC2PC3PC4PC5PC6PC7A100000000x01AB110000000x03B010000000x02BC011000000x06C001000000x04CD001100000x0cD000100000x08DA100100000x09表43 Y向步進電動機正轉時PC口各引腳輸出電平與Y向電機相位關系Y向步進電機相位可編程控制器8255A的PC口各引腳的電平PC口輸出的16進制數PC0PC1PC2PC3PC4PC5PC6PC7A000010000x10AB000011000x30B000001000x20BC000001100x60C000000100x40CD000000110xc0D000000010x80DA000010010x90 四行四列矩陣式鍵盤控制電路分析圖43為四行四列矩陣式鍵盤控制電路原理圖,原理圖的設計上,在鍵盤的行掃描線上設置了上拉電阻,~,~。改顯示電路能及時的顯示鍵盤電路輸入的指令,如G代碼、X坐標和Y坐標。最終我們可以通過步進電機的走刀路線就能檢驗出程序是否能實現(xiàn)相應的功能。 逐點比較法的插補原理數控機床在加工曲線時,用折線逼近所要加工的曲線。如果原來在給定軌跡的下方,下一步就向給定軌跡的上方走,如果原來在給定軌跡的里面,下一步就向給定軌跡的外面走,如此,走一步,看一看,比較一次,決定下一步走向,以便逼近給定軌跡,即形成逐點比較插補。當按下start鍵時首先進入象限判斷函數xiangxian( ),然后插補計時所用計時器0開始計時,每次計時器0溢出時便會進入插補方式選擇函數panduan( ),在此函數中判斷輸入代碼標志位flag_g=?,根據判斷的結果分別進入相應的插補程序。當X不等于x_finish_value時說明X還未走到預定的X位置,則返回象限判斷,繼續(xù)X軸進給程序。因此偏差計算是逐點比較法關鍵的一步。按著(73)計算偏差,要做兩次乘法,一次減法,比較麻煩,因此需要進一步簡化。 直線插補中的終點判別機制逐點比較法的終點判斷有多種方法,例如以下兩種:(1)設置Nx和Ny兩個減法計數器,在加工開始前,在Nx和Ny計數器中分別存入終點坐標值Xe和Ye,在X坐標(或Y坐標)進給一步時,就在Nx計數器(或Ny計數器)中減去1,知道這兩個計數器中的數都減到零時,到達終點。判別刀具當前位置相對于給定輪廓的偏差狀況;(2)坐標進給。 直線插補中的進給判別機制不同象限直線查補的偏差符號及進給方向如圖72所示。當判別式值flag_3小于零的時候通過判斷象限標志位flag_xiangxian是否為1或2,即判斷終點終點位置時候在一、二象限,成立運行Y軸正向進給程序,不成立運行Y軸反向進給程序。比較Rm和R實際上是實比較它們的平方值。為了簡化偏差判別式(82)的計算,下面推導出簡化的偏差計算的遞推公式。可將X方向的走步步數Nx=│XeX0│和y方向的走步步數Ny=│YeY0│的總和Nxy作為一個計數器,每走一步,從Nxy中減1,當Nxy=0時發(fā)出終點到信號。前面介紹了第一象限逆圓弧的插補計算,為了導出其他各項顯得插補計算,下面先來推導一下第一象限順圓弧的插補計算公式。圖83 4個象限的圓弧插補的對稱關系對于圖83,SR1與NR2對稱于+Y軸,SR3與NR4對稱于Y軸,SR4與NR1對稱于+X軸,SR2與NR3對稱于X軸,SR2與NR1對稱于+Y軸,SR4與NR3對稱于Y軸,SR1與NR4對稱于+X軸,SR3與NR2對稱于X軸。判斷偏差判別式結果flag_3是否不小于零,若flag_3大于等于零再對象限進行判斷。如果為象限四則運行X軸反向進給程序,進行偏差判別運算flag_3=flag_32*x_g2+1,改變坐標值x_g2=x_g21。如果為象限三則運行X軸反向進給程序,進行偏差判別運算flag_3=flag_3+2*x_g2+1,改變坐標值x_g2=x_g2+1。當按下start且輸入指令為G3時進入逆圓插補程序,逆圓插補程序流程與順圓插補程序流程基本相同。如果為象限二則運行Y軸反向進給程序,進行偏差判別運算flag_3=flag_32*y_g2+1,改變坐標值y_g2=y_g21。如果為象限一則運行Y軸正向進給程序,進行偏差判別運算flag_3=flag_3+2*y_g2+1,改變坐標值y_g2=y_g2+1。在進行完進給,偏差判別,坐標改變后進行終點判別,計算flag_finish= flag_finish1后,判斷flag_finish是否等于零,如果不是,回到之前的判斷flag_3的程序,如果flag_finish=0,則逆圓插補程序結束。當enter鍵按下時X值賦值給X_start_value,Y值賦值給Y_start_value。 G0與G1情況象限判斷程序分析NNNYYY開始x_finish_value ≥0?y_finish_value ≥0?Flag_xiangxian=4y_finish_value=y_finish_valueflag_xiangxian=1y_finish_value ≥0