【溫馨提示】 dwg后綴的文件為CAD圖,可編輯,無水印,高清圖,壓縮包內含CAD圖的預覽圖片,僅用于預覽,壓縮包內文檔可直接點開預覽,需要原稿請自助充值下載,壓縮包內的文件及預覽,所見即所得,請細心查看有疑問可以咨詢QQ:414951605或1304139763
用普通刀具在立體平版印刷格
式中對三角雕塑面的數(shù)控加工
一個產生數(shù)字控制刀具路徑的統(tǒng)一方法已經出現(xiàn),這個刀具路徑是用普通刀具在立體平版印刷格式中對三角形雕塑表面的數(shù)字控制加工產生的。這個方法的產生很重要,這是是因為一個立體平板印刷格式的應用象征著一個計算機輔助設計模型已經在很短的一段時間內被工業(yè)界廣泛接受。這不僅是因為比如特別需要運用這種方法的快速設計模型的應用,而且還歸結于現(xiàn)在可以直接用數(shù)字化和反向工程過程來制造復雜的立體平板印刷模型。雖然有很多支持立體平板印刷文件的計算機輔助設計和計算機輔助制造的軟件系統(tǒng),但在這些文章中只有幾頁紙直接涉及到從立體平板印刷文件來的數(shù)字控制加工問題。一種用普通自動編程切削刀具產生刀具路徑的一般計算算法已經出現(xiàn)。這種算法看起來普遍,它可適用于包括球頭刀、平底刀和內圓角精銑刀在內的各種各樣的切削刀具。為了減少計算時間,一個用彩色小石塊鑲嵌產生網狀詢問區(qū)域高的效方法也已經產生。用模仿加工和真正的機械加工制造的實例來說明所提出的方法的效率。
1、介紹
目前,多數(shù)計算機輔助設計(CAD) 系統(tǒng)利用參數(shù)表面代表CAD 模型的幾何形狀。由于各種各樣的設計或制造過程的不同,需要轉換不同的計算機輔助設計系統(tǒng)(CAD)和計算機輔助制造系統(tǒng)(CAM)之間的模型。中立數(shù)據文件譬如最初的圖表交換規(guī)格(IGES) 廣泛地被用于(美國產品數(shù)據協(xié)會1996) 。最初的圖表交換規(guī)格(IGES)描述在建立CAD 模型時可能被使用的信息、定義個體模型時的參數(shù)量和各個個體之間不同的關系。但是,使用最初的圖表交換規(guī)格(IGES)翻譯CAD 模型并不是總是容易的,這是因為大多數(shù)計算機輔助設計系統(tǒng)(CAD)使用不同的內部表示方法而且轉換并不是總是直接的而錯誤又比較多。與最初的圖表交換規(guī)格(IGES) 相比,立體平版印刷(STL) 格式比較簡單,并且它的實施比較容易 (Jacobs 和Reid 1992 年, Kochan 1993) ?;旧希粋€立體平版印刷(STL)文件只包含一個三角形和它們的法線傳播媒介。立體平版印刷(STL)文件不能替換最初的圖表交換規(guī)格(IGES),最初的圖表交換規(guī)格(IGES)包含更多與設計相關的信息,然而對于許多順流制造業(yè)活動譬如迅速設計模型、數(shù)字控制(NC) 加工制造甚至有限元素分析來說,這些信息包含在立體平版印刷(STL)之中的信息是充足的。由于它的簡單和在各種各樣的工程學領域中的不同用途,立體平版印刷(STL)翻譯受到大多數(shù)計算機輔助設計和計算機輔助制造(CAD/CAM)系統(tǒng)的支持。在過去,立體平版印刷(STL)文件是負擔對內存分配和計算速度的任務。但是,隨著中央處理單元的加速,更多力量和存儲芯片逐漸變得更加便宜,這不再是轉換和處理立體平版印刷(STL) 文件時的一個障礙。此外,最新的三維掃描技術也促使反向工程的應用迅速增長,在反向工程應用中,創(chuàng)造很大并且很復雜的模型后,將它存放在立體平版印刷(STL)文件之中(Chuang 等2002) 。人們現(xiàn)在已經普遍接受這樣一個事實,分成三角形的表面和立體平版印刷(STL) 文件的應用將使設計和制造業(yè)應用變得越來越普遍。
在過去,人們已經學到了許多三軸機械加工刀具路徑的計劃方法 (Dragomatz 和Mann 1997) 。刀具路徑的產生方法可以分成兩種類型: 解析和參數(shù)(Zeid 1991) 。前者產生于橫切機械加工表面的短剖面飛機。而后者產生于沿著平面或者曲面走刀的數(shù)字控制刀具路徑,而刀具切削點(CL) 通常是用計算機從機械制造加工表面的設置來進行計算的(Kishinami等1987 年,Tang 等1995 年,Choi 等1997 年,Lee 2003 年)。參數(shù)設置方法在應用精確表面信息之中有其特定的優(yōu)點,但是它可能不適合應用于加工帶有很多凸臺的復合表面并且很容易受到凹平面的損壞(Choi 和Jerard 1998) 。在另一方面,解析的方法的優(yōu)點是可以產生沒有凹平面損壞現(xiàn)象的刀具路徑,但是它的缺點的是不能產生直線的走刀路徑和進行清角加工的刀具路徑(Dragomatz 和Mann 1997) 。所以,在零件的現(xiàn)實加工之中,解析和參數(shù)路徑的應用策略在互換性之中被運用。立體平版印刷(STL)加工主要是應用解析的加工策略,這是因為它不包含有完整的表面信息。在解析路徑計劃之中,當切削刀具接觸到機械加工表面時, CLs就被計算出來。在解析路徑計劃之中一個最有效的方法是繪制Z軸 (Choi 等1988 年,Choi 1991 年,Saito 和Takahashi 1991 年,林和劉1998) 。繪制Z軸的方法計算柵格數(shù)據庫設置中的無干涉CLs。機械加工是精確度取決于庫柵格數(shù)據的密度。這通常是一個對柵格數(shù)據庫大的存儲空間的分配的需要。Hwang 和他的同事提出這樣一個方法,就是用平底刀、球頭刀和圓角精銑刀從三角形表面產生無干涉機械機械刀具路徑(Hwang 1992 年,Hwang 和Chang 1998) 。但是,這種方法是相對于不同的切削刀, 而且它的算法限制可切削刀類型的開發(fā)。盡管在現(xiàn)實之中使用著更多不同的切削刀具類型。例如,經常用一把細而利的精銑刀具作為淺槽的標號。它會繁瑣而笨拙地產生所有需要的刀具的不同算法和代碼。
本論文介紹一種直接產生刀具路徑的統(tǒng)一方法,這種方法是用通用的自動編程加工刀具(APT)在立體平版印刷(STL)的三角形表面上產生的(Kral 1986)。APT切削刀的拓撲結構定義通常被用于數(shù)字控制的應用實例,但大多數(shù)刀具路徑的形成方法都是為特殊的刀具類型開發(fā)的,不的通用的 (Chung?等1998 年,Chiou and Lee 1999) 。在這里為所有刀具類型產生的刀具路徑形成是普遍的,在這里以包括球頭刀、平底刀和圓角精銑刀以及其它更多的刀具作為代表(圖3 和4)。從這個研究結果來看,只有一種系統(tǒng)的和統(tǒng)一的算法是必要的, 這個算法對通用APT切削刀的原則是非常兼容的。為了減少在處理一個大立體平版印刷(STL)文件時的計算時間,一個在區(qū)域詢問方面的高效方法產生了。
2、在三軸機械加工中的數(shù)字控制刀具路徑計劃
在實際的應用之中,數(shù)字控制刀具路徑可以適用于各種不同的機械加工過程(Choi 等1994) (圖1):
圖1 數(shù)字控制刀具路徑計劃中不同的機械加工過程
主要規(guī)程包括粗加工、半精加工和去除咬邊加工(通常叫做平行加工或清角加工) 。用大尺寸的切削刀具和高的進給量進行粗加工(通常用平底精銑刀)可以高效率地去除龐大的重復材料。為得到一個更好的加工表面,在精加工之前通常通常要進行幾次半精加工(通常是用圓精銑刀和球頭精銑刀)。完成了半精加工之后,工件表面就留下均勻厚度的材料,這個厚度是作為精加工(通常是用小的球頭精銑刀)要去除的工序余量薄層。有時完成精加工后還需要進行平行加工和清角加工,因為沿壁角邊緣有一個咬邊的區(qū)域 (圖2)。一種更小的切削刀具是用在精加工之后的加工過程,以塑造局部角度外形或邊緣并且去除未切削的材料。根據上述討論,產生CLs通用切削刀具的一個統(tǒng)一方法的形成是不僅實用的, 而且更加容易實施和維護。因為有有效覺得方法來將三角形參數(shù)或所包含的表面的公差控制在允許的范圍內,在這里開發(fā)的算法能夠對普通的計算機輔助制造(CAM)產生一個‘核心引擎作用’。
圖2 咬邊區(qū)域
3、普通幾何形狀的APT 切削刀
根據APT 的定義,可以用如圖3所示的參數(shù)來將普通幾何形狀的切削刀具完整地描述出來:
圖3 普通幾何形狀刀具的參量
d、切削刀具直徑,刀具直徑是輻形距離兩倍,這個輻形距離的切削刀具軸到上部和下部直線段交叉點的距離計量的;
r、壁角半徑;
e 輻形距離,它是從切削軸到壁角圈子中心的距離,如果它的壁角和中心是在工具軸的同一邊,那么它是正面的,否則它就是反面的;
f、從終點到壁角圈子中心的距離,這個距離是通過平行于工具軸來測量的。
切削刀具參數(shù)的值的必須與其內部的各種參數(shù)相一致,而且不能違背某些規(guī)定的約束,以便適當?shù)孛枋鲈试S范圍之內加工刀具的幾何形狀(Kral 1986)如圖4所示是切削刀具集合形狀的幾種選擇:
圖4 根據APT 定義的機械加工刀具形狀的幾種選擇
一些附屬參量的方法如下,被使用幫助描述CL 點的計算。這些附屬參數(shù)可用于幫助描述刀具切削點的計算。
R=+(Lc-tan1)tan2--------(1)
那里的半徑R,是切削刀具在加工零件表面上的最大伸出界限。這個界限將用于幫助尋找在伸出區(qū)域內的相交的三角形。從機械加工的切削刀具的幾何學外形來看,圓環(huán)圈子的半徑R1和R2 的計算方法如下:
R1=(u+)/2-------------(2)
哪里
R2=e+(vsin(22)+)/2-----(3)
和
V=((R-e)/tan2)-(Le-f)
哪里
L=Lc-f+----------(4)
距離L,是用半徑R2從圓環(huán)圈子的中心開始計量來進行計算的,計算的方法如下:
L=Lc-f+
在刀具參側面上距離分別為R1和R2的兩個不同的點從工具軸開始將機械加工切削刀具分成三個不同的區(qū)域。在上面的部分是錐體截面體其半徑是R,R2高度是L,中間部分是圓環(huán)半徑e和壁角圓半徑r,底部是半徑R1 和高度R1 圈子錐體tan_1。
通常,切削刀具側面不需要包含所有三個區(qū)域。比如在上圖4中是(a)圖,它的形狀是一個圓筒;在圖4中的(c)圖,花托成為一個半圓球;在圖4中的中(d),它是一把逐漸變得尖細切削刀。
4、形成刀具切削區(qū)域的算法
數(shù)字控制加工中形成塑造傳統(tǒng)的實體模型的方法需要垂直于刀具切削表面(CL)的平面。雖然它在概念是簡單的,但是還是有幾的缺點。首先,垂直表面的形成不是一個瑣細的問題。在固體模型中,界限表示法(B Rep)模型是最普遍的代表形式。被整理的不均勻的B多槽軸(NURBS)表面的垂距是復雜的而且計算費用昂貴的操作。其次,被整理的表面的垂距可以容易地制造復雜的自身內部的交叉點和外部的交叉點(以毗鄰表面)問題。此外,這個統(tǒng)一的垂距表面只實用于球頭銑刀刀具切削區(qū)域的產生。用圓角銑刀加工形成的刀具切削區(qū)域垂距表面是一個更加困難的問題,更不用說更加通用的APT刀具??偟膩碚f,用垂距表面在數(shù)字控制刀具路徑中產生傳統(tǒng)的實體模型在計算過程中是復雜的,而且計算的效率也很底。
此外,解析機械加工中,在給定部分參數(shù)表面后,機械加工刀具路徑是從垂距部分表面和平行于工具軸的一系列垂直平面的交叉點產生的。非線性等式解決的方法也許包含在要尋找的交叉點曲線中。對于一個立體平版印刷(STL)模型,因為零件表面已經被分成三角形,刀具路徑的形成是從多面體表面開始計算CLs的。在許多情況下,唯一線性運算是很有必要的。如圖5所示,切削刀具與零件表面接觸的地方叫做刀具接觸點(CC),而刀具的端點被定義為刀具切削點。在機械加工中,刀具接觸點(CC)并不是固定的,而刀具切削點(CL)的x-y 坐標值可以任意確定(多數(shù)情況下是落在固定的網格點)。唯一的未知數(shù)就是刀具切削點的Z軸坐標值。因此,刀具路徑通常的由很多連續(xù)的刀具切削點組成。當工具軸向二維點(xc,yc)移動時,零件表面將形成一個區(qū)域,這個區(qū)域是半徑為R的二維圓組成的,這個二維圓的圓心在(xc,yc)點上。這個區(qū)域叫做刀具接觸點(CC)(圖5)。
圖5 CC點、CL點和CC區(qū)域
本文提出一種計算無推斷從零件表面的那些小的三角形來的刀具切削點(CL)的算法,這些零件表面與刀具接觸點(CC)區(qū)域是重疊的。當切削刀具與一個三角形多面體接觸時,刀具接觸點(CC)可能位于端點、小平面或者是邊沿上。對于切削刀具本身,刀具接觸點(CC)可能與包絡線、花托區(qū)域或更低的錐體連在一起。對于這些各種各樣的聯(lián)系情況,刀具切削點(CL)的計算方法是不相同的。先確定接觸區(qū)域和刀具接觸點(CC)是非常必要的,然后從刀具接觸點(CC)區(qū)域可以計算出刀具路徑的刀具切削點(CL)。對于一把普通的APT 切削刀具,有九類型計算模型。實際上,
并不是每把切削刀具都包含有三個區(qū)域。通常,一把切削刀具只包含有一個或者兩個切削區(qū)域(圖4)。刀具切削點(CL)的計算過程首先是從分成三角形小平面的刀具接觸點(CC)區(qū)域開始的。這是一個節(jié)約時間的策略,因為如果刀具接觸點(CC)小平面里面, 切削刀具就不接觸到端點或者三角形的邊沿,因此,后面二者更加費時的步驟就可能得到避免。
AT89C2051 Description
The AT89C2051 is a low-voltage, high-performance CMOS 8-bit micr-ocomputer with 2 Kbytes of Flash programmable and erasable read only m-emory (PEROM). The device is manufactured using Atmel’s high density nonvolatile memory technology and is compatible with the industry standar-d MCS-51? instruction set and pinout. By combining a versatile 8-bit CP-U with Flash on a monolithic chip, the Atmel AT89C2051 is a powerful microcomputer which provides a highly flexible and cost effective solutiont-o many embedded control applications.
The AT89C2051 provides the following standard features: 2 Kbytes ofFlash, 128 bytes of RAM, 15 I/O lines, two 16-bit timer/counters, a five v-ector two-level interrupt architecture, a full duplex serial port, a precision analog comparator, on-chip oscillator and clock circuitry. In addition, the A-T89C2051 is designed with static logic for operation down to zero freque-ncy and supports two software selectable power saving modes. The Idle M-ode stops the CPU while allowing the RAM, timer/counters, serial port an-d interrupt system to continue functioning. The Power Down Mode saves the RAM contents but freezes the oscillator disabling all other chip functio-ns until the next hardware reset. Pin Configuration:
Oscillator Characteristics
XTAL1 and XTAL2 are the input and output, respectively, of an inverti-ng amplifier which can be configured for use as an on-chip oscillator, as s-hown in Figure 1. Either a quartz crystal or ceramic resonator may beused. To drive the device from an external clock source, XTAL2 should b-eleft unconnected while XTAL1 is driven as shown in Figure 2. There ar-eno requirements on the duty cycle of the external clock signal, since the input to the internal clocking circuitry is through a divide-by-two flip-flop,but minimum and maximum voltage high and low time specifications mustbe observed.
Restrictions on Certain Instructions
The AT89C2051 and is an economical and cost-effective member of Atmel’s growing family of microcontrollers. It contains 2 Kbytes of flash program memory. It is fully compatible with the MCS-51 architecture, andcan be programmed using the MCS-51 instruction set. However, there are a few considerations one must keep in mind when utilizing certain instructions to program this device.
All the instructions related to jumping or branching should be restricte-d such that the destination address falls within the physical program mem-ory space of the device, which is 2K for the AT89C2051. This should be the responsibility of the software programmer. For example, LJMP 7E0H would be a valid instruction for the AT89C2051 (with 2K of memory), w-hereas LJMP 900H would not.
1. Branching instructions:
LCALL, LJMP, ACALL, AJMP, SJMP, JMP @A+DPTR These uncon-ditional branching instructions will execute correctly as long as the progra-mmer keeps in mind that the destination branching address must fall withi-n the physical boundaries of the program memory size (locations 00H to 7FFH for the 89C2051). Violating the physical space limits may cause unkn-own program behavior.
CJNE [...], DJNZ [...], JB, JNB, JC, JNC, JBC, JZ, JNZ With these c-onditional branching instructions the same rule above applies. Again, violat-ing the memory boundaries may cause erratic execution.
For applications involving interrupts the normal interrupt service routin-e address locations of the 80C51 family architecture have been preserved.
2. MOVX-related instructions, Data Memory:
The AT89C2051 contains 128 bytes of internal data memory. Thus, inthe AT89C2051 the stack depth is limited to 128 bytes, the amount of ava-ilable RAM. External DATA memory access is not supported in this devi-ce, nor is external PROGRAM memory execution. Therefore, no MOVX [...] instructions should be included in the program.
A typical 80C51 assembler will still assemble instructions, even if the-y are written in violation of the restrictions mentioned above. It is the res-ponsibility of the controller user to know the physical features and limitati-ons of the device being used and adjust the instructions used correspondin-gly.
Program Memory Lock Bits
On the chip are two lock bits which can be left unprogrammed (U) o-r can be programmed (P) to obtain the additional features listed in the ta-ble below:
Lock Bit Protection Modes
Program Lock Bits
LB1 LB2
Protection Type
1 U U
No program lock features
2 P U
Further programming of the Flash is disabled.
3 P P
Same as mode 2, also verify is disabled.
Note:1.The Lock Bits can only be erased with the Chip Erase operation
Idle Mode
In idle mode, the CPU puts itself to sleep while all the onchip periph-erals remain active. The mode is invoked by software. The content of the on-chip RAM and all the special functions registers remain unchanged during this mode. The idle mode can be terminated by any enabled interrupt or b-y a hardware reset.
P1.0 and P1.1 should be set to ’0’ if no external pullups are used, or set to ’1’ if external pullups are used.
It should be noted that when idle is terminated by a hardware reset, t-he device normally resumes program execution, from where it left off, up-to two machine cycles before the internal reset algorithm takes control. On-chip hardware inhibits access to internal RAM in this event, but access tothe port pins is not inhibited. To eliminate the possibility of an unexpectedwrite to a port pin when Idle is terminated by reset, the instruction follow-ing the one that invokes Idle should not be one that writes to a port pin-or to external memory.
Power Down Mode
In the power down mode the oscillator is stopped, and the instruction that invokes power down is the last instruction executed. The on-chip RA-M and Special Function Registers retain their values until the power downmode is terminated. The only exit from power down is a hardware reset.R-eset redefines the SFRs but does not change the onchip RAM. The reset should not be activated before VCC is restored to its normal operatin-g level and must be held active long enough to allow the oscillator to res-tart and stabilize.
P1.0 and P1.1 should be set to ’0’ if no external pullups are used, or set to ’1’ if external pullups are used.
Programming The Flash
The AT89C2051 is shipped with the 2 Kbytes of on-chip PEROM co-de memory array in the erased state (i.e., contents = FFH) and ready to b-e programmed. The code memory array is programmed one byte at a tim-e. Once the array is programmed, to re-program any non-blank byte, the e-ntire memory array needs to be erased electrically.
Internal Address Counter: The AT89C2051 contains an internal PEROM address counter which is always reset to 000H on the rising edge of RST and is advanced by applying a positive going pulse to pin XTAL1.
Data Polling: The AT89C2051 features Data Polling to indicate the end ofa write cycle. During a write cycle, an attempted read of the last byte wri-tten will result in the complement of the written data on P1.7. Once the write cycle has been completed, true data is valid on all outputs, and the next cycle may begin. Data Polling may begin any time after a write cycl-e has been initiated.
Ready/Busy: The Progress of byte programming can also be monitored by the RDY/BSY output signal. Pin P3.1 is pulled low after P3.2 goes Highduring programming to indicate BUSY. P3.1 is pulled High again when pr-ogramming is done to indicate READY.
Program Verify: If lock bits LB1 and LB2 have not been programmed co-de data can be read back via the data lines for verification:
1. Reset the internal address counter to 000H by bringing RST from’L’to ’H’.
2. Apply the appropriate control signals for Read Code data and read the output data at the port P1 pins.
3. Pulse pin XTAL1 once to advance the internal address counter.
4. Read the next code data byte at the port P1 pins.
5. Repeat steps 3 and 4 until the entire array is read. The lock bits canno-t be verified directly. Verification of the lock bits is achieved by observin-g that their features are enabled.
Chip Erase: The entire PEROM array (2 Kbytes) and the two Lock Bits are erased electrically by using the proper combination of control signals a-nd by holding P3.2 low for 10 ms. The code array is written with all “1-"s in the Chip Erase operation and must be executed before any nonblankmemory byte can be re-programmed.
Reading the Signature Bytes: The signature bytes are read by the same p-rocedure as a normal verification of locations 000H, 001H, and 002H, exc-ept that P3.5 and P3.7 must be pulled to a logic low. The values returne-dare as follows.
(000H) = 1EH indicates manufactured by Atmel
(001H) = 21H indicates 89C2051
Programming Interface:
Every code byte in the Flash array can be written and the entire arra-y can be erased by using the appropriate combination of control signals. T-he write operation cycle is self-timed and once initiated, will automaticallytime itself to completion.
AT89C2051功能特性:
AT89C2051是一種低電壓,高性能CMOS 8位單片機,片內含2k bytes的可反復擦寫的只讀程序存儲器(PEROM)和128 bytes的隨機隨取數(shù)據存儲器(RAM),器件采用ATMEL 公司的高密度,非易失性存儲技術生產,兼容標準MCS-51指令系統(tǒng),片內置通用8位中央處理器和Flash 存儲單元,功能強大AT89C2051單片機可為您提供許多高性價比的應用場合。
AT89C2051提供以下標準功能:2k字節(jié)Flash閃速存儲器,128字節(jié)內部RAM,15個I/O口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結構,一個全雙工串行通信口,內置一個精密比較器,片內振蕩器及時鐘電路。同時,AT89C2051可降至0Hz的表態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下個硬件復位。引腳結構如下
振蕩器特征:
XTAL1、 XTAL2為片內振蕩器的反相放大器的輸入和輸出端,如下圖所示??刹捎檬⒕w或陶瓷振蕩器組成時鐘振蕩器,如需從外部輸入時鐘驅動AT89C2051,時鐘信號從XTAL1輸入,XTAL2應懸空。由于輸入到內部電路經過一個2分頻觸發(fā)器,所以輸入的外部時鐘信號無需要特殊要求,但它必須符合電平的最大和最小值及時序規(guī)范。
某些指令的約束條件:
AT89C2051是經濟型低價位的微控制器,它含有2k字節(jié)的Flash閃速程序存儲器,指令系統(tǒng)與MCS—51完全兼容,可使用MCS—51指令系統(tǒng)對其進行編程。但是在使用某些有關指令編程時,程序員須注意一些事項。
和跳轉或分支有關的指令有一定的空間約束,使目的地址能安全落在AT89C2051的2k字節(jié)的物理程序存儲器空間內,程序員必須注意這一點。對于2k字節(jié)存儲器的AT89C2051來說,LJMP 7E0H是一條有效指令,而LJMP 900H則為無效指令。
1.分支指令:
對于LCALL、LJMP、ACALL、AJMP、SJMP、JMP@+DPTR等指令,只要程序員記住這些分支指令的目的地址在程序存儲器大小的物理范圍內(AT89C2051程序地址空間為:000H—7FFH單元),這些無條件分支就會正確執(zhí)行,超出物理空間的限制會出現(xiàn)不可預知的程序出錯。CJNE[……]、DJNZ[……]、JB、JNB、JC、JNC、JBC、JZ、JNZ等這些條件轉移指令的使用與上述原則一樣,同樣,超出物理空間的限制也會引起不可預知的程序出錯。至于中斷的使用,80C51系列硬件結構中已保留標準中斷服務子程序的地址。
2.與MOVX相關的指令,數(shù)據存儲器:
AT89C2051包含128字節(jié)內部數(shù)據存儲器,這樣,AT89C2051的堆棧深度局限于內部RAM的128字節(jié)范圍內,它既不支持外部數(shù)據存儲器的訪問,也不支持外部程序存儲器的執(zhí)行,因此程序中不應有MOVX[……]指令。
一般的80C51匯編器即使在違反上述指令約束而寫入指令時仍對指令進行匯編,用戶應了解正在使用的AT89C2051微控制器的存儲器物理空間和約束范圍,適當?shù)卣{整所使用的指令尋址范圍以適應AT89C2051。
程序存儲器的加密:AT89C2051可使用對芯片上的兩個加密位進行編程(P)或不編程(U)來得到如下表所示的功能:
空閑模式:
在空閑模式下,CPU保持睡眠狀態(tài)而所有片內的外設仍保持激活狀態(tài),這種方式由軟件產生。此時,片內RAM和秘有特殊功能寄存器的內容保持不變。空閑模式可由任何允許的中斷請求硬件復位終止。
P1.0 和P1.1在不使用外部上拉電阻的情況下應設置為”0”,或者在使用上拉電阻的情況下設置為“1”。
應注意的是:在用硬件復位終止空閑模式時,AT89C2051通常從程序停止一直到內部復位獲得控制之前的兩個機器周期處恢復程序執(zhí)行。在這種情況下片內硬件禁止對內部RAM的讀寫,但允許對端口的訪問,要消除萬事硬件復位終止空閑模式對端口意外寫入的可能,原則上進入空閑模式指令的下一條指令不應對端口引腳或外部存儲器進行訪問。
掉電模式:
在掉電模式,振蕩器停止工作,進入掉電模式的指令性計劃是最后一條被執(zhí)行的指令,片內RAM的特殊功能寄存器的內容在終止掉電模式前被凍結。退出掉電模式的唯一方法是硬件復位,復位后將重新定義全部特殊功能寄存器但不改變RAM中的內容,在VCC恢復到正常工作電平前,復位應無效,且必須保持一定時間以使振蕩器重啟動并穩(wěn)定工作。
P1.0 和P1.1在不使用外部上拉電阻的情況下應設置為“0”,或者在使用外部上拉電阻時應設為“1”。
Flash閃速存儲器的編程:
AT89C2051是在擦除狀態(tài)下用2k字節(jié)的片內PEROM代碼存儲陣列封裝微控制器,其程序存儲器是可反復編程的。代碼存儲陣列一次編程一個字節(jié),一旦陣列被編程,如需重新編程一非空字節(jié),必須對整個存儲器陣列進行電擦除。
內部址計數(shù)器:AT89C2051內部包含一個PEROM編程地址計數(shù)器,它總在RST上升沿到來時復位到000H,并在XTAL1引腳上出現(xiàn)正跳變脈沖時進行加1計數(shù)。
數(shù)據查詢:AT89C2051具有寫周期結束的數(shù)據查詢功能,在寫周期期間,對最后寫入的字節(jié)嘗試將令P1.7上寫入數(shù)據通信的操作結束。當寫周期完成,全部輸出端的真實數(shù)據有效,同時下一個周期開始,數(shù)據查詢可在寫周期被初始化的任一時刻開始。
Ready/Busy:字節(jié)編程的進度可通過“RDY/BSY”輸出信號監(jiān)測,編程期間,P3.1引腳在P3.2變高“H”后被拉低來指示“BSY”,在編程結束后被再次拉高”H”來指示“RDY”。
程序校驗:如果加密LB1、LB2沒有進行編程,則代碼數(shù)據可通過校驗數(shù)據線讀?。?
1.使RST從“L”變?yōu)椤癏”,復位內部的地址計數(shù)器為期為000H。
2.對代碼數(shù)據加上正確的控制信號即可在P1口引腳上讀取數(shù)據。
3.XTAL1引腳跳變一次使內部地址計數(shù)器加1。
4.從P1口讀取下一個代碼字節(jié)。
5.重復3到4步驟,即可將全部單元的數(shù)據讀取。加密位不可直接校驗,加密位的校驗可通過對存儲器和校驗和寫入狀態(tài)來驗證。
芯片擦除:利用控制信號的正確組合并保持P3.2引腳10mS的低電平即可將PEROM(2k字節(jié))陣列和兩個加密位整片擦除,代碼陣列在片擦除操作中將任何非空單元寫入“1”可被再編程之前進行。
讀片內簽名字節(jié):除P3.25、P3.7必須被拉成邏輯低電平外,讀簽名字節(jié)的過程和單元000H、001H及002H的正常校驗相同,返回值意義如下:
(000H)=1EH聲明產品由ATMEL公司制造。
(001H)=2IH聲明為89C2051單片機。
編程接口:Flash閃速陣列中的每一代碼字節(jié)進行寫入且整個存儲器可在控制信號的正確組合下進行擦除,寫操作周期是自身寫時的,初始化后它將自動定時到操作完成。
9