數(shù)控的選擇和切削用量的確定是數(shù)控加工工藝中的重要內(nèi)容,它不僅影響數(shù)控機(jī)床的加工效率,而且直接影響加工。
CAD/CAM技術(shù)的發(fā)展,使得在數(shù)控加工中直接利用CAD的設(shè)計(jì)數(shù)據(jù)成為可能,特別是DNC微機(jī)與數(shù)控機(jī)床的聯(lián)接,使得設(shè)計(jì)、工藝規(guī)劃及編程的整個(gè)全部在計(jì)算機(jī)上完成,一般不需要輸出專門的工藝文件。
目前,許多CAD/CAM包都提供自動(dòng)編程功能,這些一般是在編程界面中提示工藝規(guī)劃的有關(guān)問題,如,選擇、加工路徑規(guī)劃、切削用量設(shè)定等,編程人員只要設(shè)置了有關(guān)的參數(shù),就可以自動(dòng)生成NC程序并傳輸至數(shù)控機(jī)床完成加工。
因此,數(shù)控加工中的選擇和切削用量確定是在人機(jī)交互狀態(tài)下完成的,這與普通機(jī)床加工形成鮮明的對(duì)比,同時(shí)也要求編程人員必須選擇和切削用量確定的基本原則,在編程時(shí)充分考慮數(shù)控加工的特點(diǎn),能夠正確選擇刀刃具及切削用量。
1 怎樣進(jìn)一步功耗
功耗,在電池供電的儀器儀表中是一個(gè)重要的考慮因素。
PIC16C××系列單片機(jī)本身的功耗較低(在5V,4MHz振蕩時(shí)工作電流小于2mA)。
為進(jìn)一步功耗,在保證工作要求的前提下,可采用工作的,工作的下降可大大功耗(如PIC16C××在3V,32kHz下工作,其電流可減小到15μA),但較低的工作可能部分子程序(如數(shù)學(xué)計(jì)算)需占用較多的時(shí)間。
在這種情況下,當(dāng)單片機(jī)的振蕩采用RC電路形式時(shí),可以采用中途工作的辦法來(lái)解決。
具體做法是在閑置的一個(gè)I/O腳(如RB1)和OSC1管腳之間跨接一電阻(R1),如圖1所示。
低速狀態(tài)置RB1=0。
需進(jìn)行快速運(yùn)算時(shí)先置RB1=1,由于充電時(shí),電容電壓上升得快,工作,運(yùn)算時(shí)間,運(yùn)算結(jié)束又置RB1=0,進(jìn)入低速、低功耗狀態(tài)。
工作的變化量依R1的阻值而定(注意R1不能選得太小,以防振蕩電路不起振,一般選取大于5kΩ)。
另外,進(jìn)一步功耗可充分利用“sleep"指令。
執(zhí)行“sleep"指令,機(jī)器處于睡眠狀態(tài),功耗為幾個(gè)微安。
程序不僅可在待命狀態(tài)使用“sleep"指令來(lái)等待事件,也可在延時(shí)程序里使用(見例1、例2)。
在延時(shí)程序中使用“sleep"指令功耗是一個(gè)方面,同時(shí),即使是關(guān)中斷狀態(tài),Port B端口電平的變化可喚醒“sleep",提前結(jié)束延時(shí)程序。
這一點(diǎn)在一些應(yīng)用特別有用。
同時(shí)注意在使用“sleep"時(shí)要處理好與WDT、中斷的關(guān)系。
了解乘除法函數(shù)對(duì)寄存器的占用
由于PIC片內(nèi)RAM僅幾十個(gè)字節(jié),空間特別寶貴,而Mplab-C編譯器對(duì)RAM地址具有不釋放性,即一個(gè)變量使用的地址不能再分配給其它變量。
如RAM空間不能太多變量的要求,一些變量只能由用戶強(qiáng)制分配相同的RAM空間交替使用。
而Mplab-C中的乘除法函數(shù)需借用RAM空間來(lái)存放中間結(jié)果,所以如果乘除法函數(shù)占用的RAM與用戶變量的地址重疊時(shí),就會(huì)出現(xiàn)不可的結(jié)果。
如果C程序中用到乘除法運(yùn)算先通序機(jī)器碼的反匯編代碼(包含在生成的LST文件中)查看乘除法占用地址是否與其它變量地址有沖突,以免程序跑飛。
Mplab-C手冊(cè)并沒有給出其乘除法函數(shù)對(duì)具體RAM地址的占用情況。
例5是乘法函數(shù)對(duì)0×13、0×14、0×19、0×1A地址占用情況。
例5
4 對(duì)芯片重復(fù)編程
對(duì)無(wú)硬件器的用戶,總是選用帶EPROM的芯片來(lái)調(diào)試程序。
每更改一次程序,都是將原來(lái)的內(nèi)容先擦除,再編程,其浪費(fèi)了相當(dāng)多的時(shí)間,又縮短了芯片的使用壽命。
如果后一次編程的結(jié)果較前一次,僅是對(duì)應(yīng)的機(jī)器碼字節(jié)的相同位由“1"變成“0",就可在前一次編程芯片上再次寫入數(shù)據(jù),而不必擦除原片內(nèi)容。
在程序的調(diào)試中,經(jīng)常遇到常數(shù)的,如常數(shù)的改變能保證對(duì)應(yīng)位由“1"變“0",都可在原片內(nèi)容的基礎(chǔ)繼續(xù)編程。
另外,由于指令“NOP"對(duì)應(yīng)的機(jī)器碼為“00",調(diào)試中指令的,先用“NOP"指令替代,編譯后也可在原片內(nèi)容上繼續(xù)編程。
另外,在對(duì)帶EPROM的芯片編程時(shí),特別注意程序保密狀態(tài)位。
廠家對(duì)新一代帶EPROM芯片的保密狀態(tài)位已由原來(lái)的EPROM可擦型改為了熔絲型,一旦程序代碼保密熔絲編程為“0",可重復(fù)編程的 EPROM 芯片就無(wú)法再次編程了。
使用時(shí)應(yīng)注意這點(diǎn),以免造成不必要的浪費(fèi)(Microchip 資料并未對(duì)此做出說明)。
編寫PIC單片機(jī)的源程序,除了源程序的開始處要求嚴(yán)格的列表指令外,還需注意源程序中字母符號(hào)大小寫的有關(guān)規(guī)則,否則在PC機(jī)上匯編源程序時(shí)不會(huì)成功。
筆者用下列的PIC16F84單片機(jī)對(duì)B口送數(shù)的源程序(源程序各自定義)為實(shí)例,說明其注意的問題。
LIST P=PIC16F84 #INCLUDE P16F84INC ORG 0START CLRW ;起始地址 BSF STATUS,5 ;選體1 MOVWF TRI ;置B口為輸出 BCF STATUS,5;STATUS,5復(fù)位 MOVW 0
xAA ;可使B口的 LED間亮 MOVWF PORTB ;B口輸出10 101010LOOP GOTO LOOP END 上述源程序中因用了偽指令I(lǐng)NCLUDE,在這里是指把列表的PIC16F84文件(在MPLAB中)讀入源程序作為上述源程序的一部分,所以凡是MPLAB中有關(guān)PIC16F84已有的寄存器在上述源程序中無(wú)需再用賦值指令(EQU)賦值,這就使所建立的源程序大為簡(jiǎn)化。
此外,由于有了偽指令I(lǐng)NCLUDE,所以根據(jù)MPLAB中的格式,在源程序中的操作數(shù)凡是涉及MPLAB已規(guī)定的寄存器名稱,其字母一律只能大寫,不能小寫,其余操作碼、標(biāo)號(hào)字母可任意大小寫,但0x中的x應(yīng)小寫,否則匯編不會(huì)成功。
鑒于上述原因,為了書寫方便,所以在使用MPLAB時(shí),PIC單片機(jī)的源程序均用大寫字母為宜(0x例外)。