6es7212-1bb23-0xb8工廠直銷
數(shù)控刀具的選擇和切削用量的確定是數(shù)控加工工藝中的重要內(nèi)容,它不僅影響數(shù)控機(jī)床的加工效率,而且直接影響加工質(zhì)量。cad/cam技術(shù)的發(fā)展,使得在數(shù)控加工中直接利用cad的設(shè)計(jì)數(shù)據(jù)成為可能,特別是dnc系統(tǒng)微機(jī)與數(shù)控機(jī)床的聯(lián)接,使得設(shè)計(jì)、工藝規(guī)劃及編程的整個過程全部在計(jì)算機(jī)上完成,一般不需要輸出專門的工藝文件。 目前,許多cad/cam軟件包都提供自動編程功能,這些軟件一般是在編程界面中提示工藝規(guī)劃的有關(guān)問題,如,刀具選擇、加工路徑規(guī)劃、切削用量設(shè)定等,編程人員只要設(shè)置了有關(guān)的參數(shù),就可以自動生成nc程序并傳輸至數(shù)控機(jī)床完成加工。 因此,數(shù)控加工中的刀具選擇和切削用量確定是在人機(jī)交互狀態(tài)下完成的,這與普通機(jī)床加工形成鮮明的對比,同時也要求編程人員必須掌握刀具選擇和切削用量確定的基本原則,在編程時充分考慮數(shù)控加工的特點(diǎn),能夠正確選擇刀刃具及切削用量。
1 怎樣進(jìn)一步降低功耗
功耗,在電池供電的儀器儀表中是一個重要的考慮因素。pic16c××系列單片機(jī)本身的功耗較低(在5v,4mhz振蕩頻率時工作電流小于2ma)。為進(jìn)一步降低功耗,在保證滿足工作要求的前提下,可采用降低工作頻率的方法,工作頻率的下降可大大降低功耗(如pic16c××在3v,32khz下工作,其電流可減小到15μa),但較低的工作頻率可能導(dǎo)致部分子程序(如數(shù)學(xué)計(jì)算)需占用較多的時間。在這種情況下,當(dāng)單片機(jī)的振蕩方式采用rc電路形式時,可以采用中途提高工作頻率的辦法來解決。
具體做法是在閑置的一個i/o腳(如rb1)和osc1管腳之間跨接一電阻(r1),如圖1所示。低速狀態(tài)置rb1=0。需進(jìn)行快速運(yùn)算時先置rb1=1,由于充電時,電容電壓上升得快,工作頻率增高,運(yùn)算時間減少,運(yùn)算結(jié)束又置rb1=0,進(jìn)入低速、低功耗狀態(tài)。工作頻率的變化量依r1的阻值而定(注意r1不能選得太小,以防振蕩電路不起振,一般選取大于5kω)。 另外,進(jìn)一步降低功耗可充分利用“sleep”指令。執(zhí)行“sleep”指令,機(jī)器處于睡眠狀態(tài),功耗為幾個微安。程序不僅可在待命狀態(tài)使用“sleep”指令來等待事件,也可在延時程序里使用(見例1、例2)。在延時程序中使用“sleep”指令降低功耗是一個方面,同時,即使是關(guān)中斷狀態(tài),port b端口電平的變化可喚醒“sleep”,提前結(jié)束延時程序。這一點(diǎn)在一些應(yīng)用場合特別有用。同時注意在使用“sleep”時要處理好與wdt、中斷的關(guān)系。
了解乘除法函數(shù)對寄存器的占用
由于pic片內(nèi)ram僅幾十個字節(jié),空間特別寶貴,而mplab-c編譯器對ram地址具有不釋放性,即一個變量使用的地址不能再分配給其它變量。如ram空間不能滿足太多變量的要求,一些變量只能由用戶強(qiáng)制分配相同的ram空間交替使用。而mplab-c中的乘除法函數(shù)需借用ram空間來存放中間結(jié)果,所以如果乘除法函數(shù)占用的ram與用戶變量的地址重疊時,就會導(dǎo)致出現(xiàn)不可預(yù)測的結(jié)果。如果c程序中用到乘除法運(yùn)算,最好先通過程序機(jī)器碼的反匯編代碼(包含在生成的lst文件中)查看乘除法占用地址是否與其它變量地址有沖突,以免程序跑飛。mplab-c手冊并沒有給出其乘除法函數(shù)對具體ram地址的占用情況。例5是乘法函數(shù)對0×13、0×14、0×19、0×1a地址占用情況。
例5
4 對芯片重復(fù)編程
對無硬件仿真器的用戶,總是選用帶eprom的芯片來調(diào)試程序。每更改一次程序,都是將原來的內(nèi)容先擦除,再編程,其過程浪費(fèi)了相當(dāng)多的時間,又縮短了芯片的使用壽命。如果后一次編程的結(jié)果較前一次,僅是對應(yīng)的機(jī)器碼字節(jié)的相同位由“1”變成“0”,就可在前一次編程芯片上再次寫入數(shù)據(jù),而不必擦除原片內(nèi)容。 在程序的調(diào)試過程中,經(jīng)常遇到常數(shù)的調(diào)整,如常數(shù)的改變能保證對應(yīng)位由“1”變“0”,都可在原片內(nèi)容的基礎(chǔ)繼續(xù)編程。另外,由于指令“nop”對應(yīng)的機(jī)器碼為“00”,調(diào)試過程中指令的刪除,先用“nop”指令替代,編譯后也可在原片內(nèi)容上繼續(xù)編程。 另外,在對帶eprom的芯片編程時,特別注意程序保密狀態(tài)位。廠家對新一代帶eprom芯片的保密狀態(tài)位已由原來的eprom可擦型改為了熔絲型,一旦程序代碼保密熔絲編程為“0”,可重復(fù)編程的 eprom 芯片就無法再次編程了。使用時應(yīng)注意這點(diǎn),以免造成不必要的浪費(fèi)(microchip 資料并未對此做出說明)。
編寫pic單片機(jī)的源程序,除了源程序的開始處要求嚴(yán)格的列表指令外,還需注意源程序中字母符號大小寫的有關(guān)規(guī)則,否則在pc機(jī)上匯編源程序時不會成功。筆者用下列的pic16f84單片機(jī)對b口送數(shù)的源程序(源程序各自定義)為實(shí)例,說明其注意的問題?!ist p=pic16f84 #include p16f84incorg0start clrw;起始地址 bsfstatus,5 ;選體1 movwf trisb?。恢胋口為輸出 bcf status,5;status,5復(fù)位 movw 0xaa ;可使b口的led間亮 movwf portb;b口輸出10101010loopgoto loop end上述源程序中因用了偽指令include,在這里是指把列表的pic16f84文件(在mplab中)讀入源程序作為上述源程序的一部分,所以凡是mplab中有關(guān)pic16f84已有的寄存器在上述源程序中無需再用賦值指令(equ)賦值,這就使所建立的源程序大為簡化。此外,由于有了偽指令include,所以根據(jù)mplab軟件中的格式,在源程序中的操作數(shù)凡是涉及mplab已規(guī)定的寄存器名稱,其字母一律只能大寫,不能小寫,其余操作碼、標(biāo)號字母可任意大小寫,但0x中的x應(yīng)小寫,否則匯編不會成功。鑒于上述原因,為了書寫方便,所以在使用mplab軟件時,pic單片機(jī)的源程序均用大寫字母為宜(0x例外)。