【溫馨提示】 dwg后綴的文件為CAD圖,可編輯,無(wú)水印,高清圖,壓縮包內(nèi)含CAD圖的預(yù)覽圖片,僅用于預(yù)覽,壓縮包內(nèi)文檔可直接點(diǎn)開(kāi)預(yù)覽,需要原稿請(qǐng)自助充值下載,壓縮包內(nèi)的文件及預(yù)覽,所見(jiàn)即所得,請(qǐng)細(xì)心查看有疑問(wèn)可以咨詢QQ:414951605或1304139763
用普通刀具在立體平版印刷格
式中對(duì)三角雕塑面的數(shù)控加工
一個(gè)產(chǎn)生數(shù)字控制刀具路徑的統(tǒng)一方法已經(jīng)出現(xiàn),這個(gè)刀具路徑是用普通刀具在立體平版印刷格式中對(duì)三角形雕塑表面的數(shù)字控制加工產(chǎn)生的。這個(gè)方法的產(chǎn)生很重要,這是是因?yàn)橐粋€(gè)立體平板印刷格式的應(yīng)用象征著一個(gè)計(jì)算機(jī)輔助設(shè)計(jì)模型已經(jīng)在很短的一段時(shí)間內(nèi)被工業(yè)界廣泛接受。這不僅是因?yàn)楸热缣貏e需要運(yùn)用這種方法的快速設(shè)計(jì)模型的應(yīng)用,而且還歸結(jié)于現(xiàn)在可以直接用數(shù)字化和反向工程過(guò)程來(lái)制造復(fù)雜的立體平板印刷模型。雖然有很多支持立體平板印刷文件的計(jì)算機(jī)輔助設(shè)計(jì)和計(jì)算機(jī)輔助制造的軟件系統(tǒng),但在這些文章中只有幾頁(yè)紙直接涉及到從立體平板印刷文件來(lái)的數(shù)字控制加工問(wèn)題。一種用普通自動(dòng)編程切削刀具產(chǎn)生刀具路徑的一般計(jì)算算法已經(jīng)出現(xiàn)。這種算法看起來(lái)普遍,它可適用于包括球頭刀、平底刀和內(nèi)圓角精銑刀在內(nèi)的各種各樣的切削刀具。為了減少計(jì)算時(shí)間,一個(gè)用彩色小石塊鑲嵌產(chǎn)生網(wǎng)狀詢問(wèn)區(qū)域高的效方法也已經(jīng)產(chǎn)生。用模仿加工和真正的機(jī)械加工制造的實(shí)例來(lái)說(shuō)明所提出的方法的效率。
1、介紹
目前,多數(shù)計(jì)算機(jī)輔助設(shè)計(jì)(CAD) 系統(tǒng)利用參數(shù)表面代表CAD 模型的幾何形狀。由于各種各樣的設(shè)計(jì)或制造過(guò)程的不同,需要轉(zhuǎn)換不同的計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)(CAD)和計(jì)算機(jī)輔助制造系統(tǒng)(CAM)之間的模型。中立數(shù)據(jù)文件譬如最初的圖表交換規(guī)格(IGES) 廣泛地被用于(美國(guó)產(chǎn)品數(shù)據(jù)協(xié)會(huì)1996) 。最初的圖表交換規(guī)格(IGES)描述在建立CAD 模型時(shí)可能被使用的信息、定義個(gè)體模型時(shí)的參數(shù)量和各個(gè)個(gè)體之間不同的關(guān)系。但是,使用最初的圖表交換規(guī)格(IGES)翻譯CAD 模型并不是總是容易的,這是因?yàn)榇蠖鄶?shù)計(jì)算機(jī)輔助設(shè)計(jì)系統(tǒng)(CAD)使用不同的內(nèi)部表示方法而且轉(zhuǎn)換并不是總是直接的而錯(cuò)誤又比較多。與最初的圖表交換規(guī)格(IGES) 相比,立體平版印刷(STL) 格式比較簡(jiǎn)單,并且它的實(shí)施比較容易 (Jacobs 和Reid 1992 年, Kochan 1993) 。基本上,一個(gè)立體平版印刷(STL)文件只包含一個(gè)三角形和它們的法線傳播媒介。立體平版印刷(STL)文件不能替換最初的圖表交換規(guī)格(IGES),最初的圖表交換規(guī)格(IGES)包含更多與設(shè)計(jì)相關(guān)的信息,然而對(duì)于許多順流制造業(yè)活動(dòng)譬如迅速設(shè)計(jì)模型、數(shù)字控制(NC) 加工制造甚至有限元素分析來(lái)說(shuō),這些信息包含在立體平版印刷(STL)之中的信息是充足的。由于它的簡(jiǎn)單和在各種各樣的工程學(xué)領(lǐng)域中的不同用途,立體平版印刷(STL)翻譯受到大多數(shù)計(jì)算機(jī)輔助設(shè)計(jì)和計(jì)算機(jī)輔助制造(CAD/CAM)系統(tǒng)的支持。在過(guò)去,立體平版印刷(STL)文件是負(fù)擔(dān)對(duì)內(nèi)存分配和計(jì)算速度的任務(wù)。但是,隨著中央處理單元的加速,更多力量和存儲(chǔ)芯片逐漸變得更加便宜,這不再是轉(zhuǎn)換和處理立體平版印刷(STL) 文件時(shí)的一個(gè)障礙。此外,最新的三維掃描技術(shù)也促使反向工程的應(yīng)用迅速增長(zhǎng),在反向工程應(yīng)用中,創(chuàng)造很大并且很復(fù)雜的模型后,將它存放在立體平版印刷(STL)文件之中(Chuang 等2002) 。人們現(xiàn)在已經(jīng)普遍接受這樣一個(gè)事實(shí),分成三角形的表面和立體平版印刷(STL) 文件的應(yīng)用將使設(shè)計(jì)和制造業(yè)應(yīng)用變得越來(lái)越普遍。
在過(guò)去,人們已經(jīng)學(xué)到了許多三軸機(jī)械加工刀具路徑的計(jì)劃方法 (Dragomatz 和Mann 1997) 。刀具路徑的產(chǎn)生方法可以分成兩種類型: 解析和參數(shù)(Zeid 1991) 。前者產(chǎn)生于橫切機(jī)械加工表面的短剖面飛機(jī)。而后者產(chǎn)生于沿著平面或者曲面走刀的數(shù)字控制刀具路徑,而刀具切削點(diǎn)(CL) 通常是用計(jì)算機(jī)從機(jī)械制造加工表面的設(shè)置來(lái)進(jìn)行計(jì)算的(Kishinami等1987 年,Tang 等1995 年,Choi 等1997 年,Lee 2003 年)。參數(shù)設(shè)置方法在應(yīng)用精確表面信息之中有其特定的優(yōu)點(diǎn),但是它可能不適合應(yīng)用于加工帶有很多凸臺(tái)的復(fù)合表面并且很容易受到凹平面的損壞(Choi 和Jerard 1998) 。在另一方面,解析的方法的優(yōu)點(diǎn)是可以產(chǎn)生沒(méi)有凹平面損壞現(xiàn)象的刀具路徑,但是它的缺點(diǎn)的是不能產(chǎn)生直線的走刀路徑和進(jìn)行清角加工的刀具路徑(Dragomatz 和Mann 1997) 。所以,在零件的現(xiàn)實(shí)加工之中,解析和參數(shù)路徑的應(yīng)用策略在互換性之中被運(yùn)用。立體平版印刷(STL)加工主要是應(yīng)用解析的加工策略,這是因?yàn)樗话型暾谋砻嫘畔?。在解析路徑?jì)劃之中,當(dāng)切削刀具接觸到機(jī)械加工表面時(shí), CLs就被計(jì)算出來(lái)。在解析路徑計(jì)劃之中一個(gè)最有效的方法是繪制Z軸 (Choi 等1988 年,Choi 1991 年,Saito 和Takahashi 1991 年,林和劉1998) 。繪制Z軸的方法計(jì)算柵格數(shù)據(jù)庫(kù)設(shè)置中的無(wú)干涉CLs。機(jī)械加工是精確度取決于庫(kù)柵格數(shù)據(jù)的密度。這通常是一個(gè)對(duì)柵格數(shù)據(jù)庫(kù)大的存儲(chǔ)空間的分配的需要。Hwang 和他的同事提出這樣一個(gè)方法,就是用平底刀、球頭刀和圓角精銑刀從三角形表面產(chǎn)生無(wú)干涉機(jī)械機(jī)械刀具路徑(Hwang 1992 年,Hwang 和Chang 1998) 。但是,這種方法是相對(duì)于不同的切削刀, 而且它的算法限制可切削刀類型的開(kāi)發(fā)。盡管在現(xiàn)實(shí)之中使用著更多不同的切削刀具類型。例如,經(jīng)常用一把細(xì)而利的精銑刀具作為淺槽的標(biāo)號(hào)。它會(huì)繁瑣而笨拙地產(chǎn)生所有需要的刀具的不同算法和代碼。
本論文介紹一種直接產(chǎn)生刀具路徑的統(tǒng)一方法,這種方法是用通用的自動(dòng)編程加工刀具(APT)在立體平版印刷(STL)的三角形表面上產(chǎn)生的(Kral 1986)。APT切削刀的拓?fù)浣Y(jié)構(gòu)定義通常被用于數(shù)字控制的應(yīng)用實(shí)例,但大多數(shù)刀具路徑的形成方法都是為特殊的刀具類型開(kāi)發(fā)的,不的通用的 (Chung?等1998 年,Chiou and Lee 1999) 。在這里為所有刀具類型產(chǎn)生的刀具路徑形成是普遍的,在這里以包括球頭刀、平底刀和圓角精銑刀以及其它更多的刀具作為代表(圖3 和4)。從這個(gè)研究結(jié)果來(lái)看,只有一種系統(tǒng)的和統(tǒng)一的算法是必要的, 這個(gè)算法對(duì)通用APT切削刀的原則是非常兼容的。為了減少在處理一個(gè)大立體平版印刷(STL)文件時(shí)的計(jì)算時(shí)間,一個(gè)在區(qū)域詢問(wèn)方面的高效方法產(chǎn)生了。
2、在三軸機(jī)械加工中的數(shù)字控制刀具路徑計(jì)劃
在實(shí)際的應(yīng)用之中,數(shù)字控制刀具路徑可以適用于各種不同的機(jī)械加工過(guò)程(Choi 等1994) (圖1):
圖1 數(shù)字控制刀具路徑計(jì)劃中不同的機(jī)械加工過(guò)程
主要規(guī)程包括粗加工、半精加工和去除咬邊加工(通常叫做平行加工或清角加工) 。用大尺寸的切削刀具和高的進(jìn)給量進(jìn)行粗加工(通常用平底精銑刀)可以高效率地去除龐大的重復(fù)材料。為得到一個(gè)更好的加工表面,在精加工之前通常通常要進(jìn)行幾次半精加工(通常是用圓精銑刀和球頭精銑刀)。完成了半精加工之后,工件表面就留下均勻厚度的材料,這個(gè)厚度是作為精加工(通常是用小的球頭精銑刀)要去除的工序余量薄層。有時(shí)完成精加工后還需要進(jìn)行平行加工和清角加工,因?yàn)檠乇诮沁吘売幸粋€(gè)咬邊的區(qū)域 (圖2)。一種更小的切削刀具是用在精加工之后的加工過(guò)程,以塑造局部角度外形或邊緣并且去除未切削的材料。根據(jù)上述討論,產(chǎn)生CLs通用切削刀具的一個(gè)統(tǒng)一方法的形成是不僅實(shí)用的, 而且更加容易實(shí)施和維護(hù)。因?yàn)橛杏行вX(jué)得方法來(lái)將三角形參數(shù)或所包含的表面的公差控制在允許的范圍內(nèi),在這里開(kāi)發(fā)的算法能夠?qū)ζ胀ǖ挠?jì)算機(jī)輔助制造(CAM)產(chǎn)生一個(gè)‘核心引擎作用’。
圖2 咬邊區(qū)域
3、普通幾何形狀的APT 切削刀
根據(jù)APT 的定義,可以用如圖3所示的參數(shù)來(lái)將普通幾何形狀的切削刀具完整地描述出來(lái):
圖3 普通幾何形狀刀具的參量
d、切削刀具直徑,刀具直徑是輻形距離兩倍,這個(gè)輻形距離的切削刀具軸到上部和下部直線段交叉點(diǎn)的距離計(jì)量的;
r、壁角半徑;
e 輻形距離,它是從切削軸到壁角圈子中心的距離,如果它的壁角和中心是在工具軸的同一邊,那么它是正面的,否則它就是反面的;
f、從終點(diǎn)到壁角圈子中心的距離,這個(gè)距離是通過(guò)平行于工具軸來(lái)測(cè)量的。
切削刀具參數(shù)的值的必須與其內(nèi)部的各種參數(shù)相一致,而且不能違背某些規(guī)定的約束,以便適當(dāng)?shù)孛枋鲈试S范圍之內(nèi)加工刀具的幾何形狀(Kral 1986)如圖4所示是切削刀具集合形狀的幾種選擇:
圖4 根據(jù)APT 定義的機(jī)械加工刀具形狀的幾種選擇
一些附屬參量的方法如下,被使用幫助描述CL 點(diǎn)的計(jì)算。這些附屬參數(shù)可用于幫助描述刀具切削點(diǎn)的計(jì)算。
R=+(Lc-tan1)tan2--------(1)
那里的半徑R,是切削刀具在加工零件表面上的最大伸出界限。這個(gè)界限將用于幫助尋找在伸出區(qū)域內(nèi)的相交的三角形。從機(jī)械加工的切削刀具的幾何學(xué)外形來(lái)看,圓環(huán)圈子的半徑R1和R2 的計(jì)算方法如下:
R1=(u+)/2-------------(2)
哪里
R2=e+(vsin(22)+)/2-----(3)
和
V=((R-e)/tan2)-(Le-f)
哪里
L=Lc-f+----------(4)
距離L,是用半徑R2從圓環(huán)圈子的中心開(kāi)始計(jì)量來(lái)進(jìn)行計(jì)算的,計(jì)算的方法如下:
L=Lc-f+
在刀具參側(cè)面上距離分別為R1和R2的兩個(gè)不同的點(diǎn)從工具軸開(kāi)始將機(jī)械加工切削刀具分成三個(gè)不同的區(qū)域。在上面的部分是錐體截面體其半徑是R,R2高度是L,中間部分是圓環(huán)半徑e和壁角圓半徑r,底部是半徑R1 和高度R1 圈子錐體tan_1。
通常,切削刀具側(cè)面不需要包含所有三個(gè)區(qū)域。比如在上圖4中是(a)圖,它的形狀是一個(gè)圓筒;在圖4中的(c)圖,花托成為一個(gè)半圓球;在圖4中的中(d),它是一把逐漸變得尖細(xì)切削刀。
4、形成刀具切削區(qū)域的算法
數(shù)字控制加工中形成塑造傳統(tǒng)的實(shí)體模型的方法需要垂直于刀具切削表面(CL)的平面。雖然它在概念是簡(jiǎn)單的,但是還是有幾的缺點(diǎn)。首先,垂直表面的形成不是一個(gè)瑣細(xì)的問(wèn)題。在固體模型中,界限表示法(B Rep)模型是最普遍的代表形式。被整理的不均勻的B多槽軸(NURBS)表面的垂距是復(fù)雜的而且計(jì)算費(fèi)用昂貴的操作。其次,被整理的表面的垂距可以容易地制造復(fù)雜的自身內(nèi)部的交叉點(diǎn)和外部的交叉點(diǎn)(以毗鄰表面)問(wèn)題。此外,這個(gè)統(tǒng)一的垂距表面只實(shí)用于球頭銑刀刀具切削區(qū)域的產(chǎn)生。用圓角銑刀加工形成的刀具切削區(qū)域垂距表面是一個(gè)更加困難的問(wèn)題,更不用說(shuō)更加通用的APT刀具??偟膩?lái)說(shuō),用垂距表面在數(shù)字控制刀具路徑中產(chǎn)生傳統(tǒng)的實(shí)體模型在計(jì)算過(guò)程中是復(fù)雜的,而且計(jì)算的效率也很底。
此外,解析機(jī)械加工中,在給定部分參數(shù)表面后,機(jī)械加工刀具路徑是從垂距部分表面和平行于工具軸的一系列垂直平面的交叉點(diǎn)產(chǎn)生的。非線性等式解決的方法也許包含在要尋找的交叉點(diǎn)曲線中。對(duì)于一個(gè)立體平版印刷(STL)模型,因?yàn)榱慵砻嬉呀?jīng)被分成三角形,刀具路徑的形成是從多面體表面開(kāi)始計(jì)算CLs的。在許多情況下,唯一線性運(yùn)算是很有必要的。如圖5所示,切削刀具與零件表面接觸的地方叫做刀具接觸點(diǎn)(CC),而刀具的端點(diǎn)被定義為刀具切削點(diǎn)。在機(jī)械加工中,刀具接觸點(diǎn)(CC)并不是固定的,而刀具切削點(diǎn)(CL)的x-y 坐標(biāo)值可以任意確定(多數(shù)情況下是落在固定的網(wǎng)格點(diǎn))。唯一的未知數(shù)就是刀具切削點(diǎn)的Z軸坐標(biāo)值。因此,刀具路徑通常的由很多連續(xù)的刀具切削點(diǎn)組成。當(dāng)工具軸向二維點(diǎn)(xc,yc)移動(dòng)時(shí),零件表面將形成一個(gè)區(qū)域,這個(gè)區(qū)域是半徑為R的二維圓組成的,這個(gè)二維圓的圓心在(xc,yc)點(diǎn)上。這個(gè)區(qū)域叫做刀具接觸點(diǎn)(CC)(圖5)。
圖5 CC點(diǎn)、CL點(diǎn)和CC區(qū)域
本文提出一種計(jì)算無(wú)推斷從零件表面的那些小的三角形來(lái)的刀具切削點(diǎn)(CL)的算法,這些零件表面與刀具接觸點(diǎn)(CC)區(qū)域是重疊的。當(dāng)切削刀具與一個(gè)三角形多面體接觸時(shí),刀具接觸點(diǎn)(CC)可能位于端點(diǎn)、小平面或者是邊沿上。對(duì)于切削刀具本身,刀具接觸點(diǎn)(CC)可能與包絡(luò)線、花托區(qū)域或更低的錐體連在一起。對(duì)于這些各種各樣的聯(lián)系情況,刀具切削點(diǎn)(CL)的計(jì)算方法是不相同的。先確定接觸區(qū)域和刀具接觸點(diǎn)(CC)是非常必要的,然后從刀具接觸點(diǎn)(CC)區(qū)域可以計(jì)算出刀具路徑的刀具切削點(diǎn)(CL)。對(duì)于一把普通的APT 切削刀具,有九類型計(jì)算模型。實(shí)際上,
并不是每把切削刀具都包含有三個(gè)區(qū)域。通常,一把切削刀具只包含有一個(gè)或者兩個(gè)切削區(qū)域(圖4)。刀具切削點(diǎn)(CL)的計(jì)算過(guò)程首先是從分成三角形小平面的刀具接觸點(diǎn)(CC)區(qū)域開(kāi)始的。這是一個(gè)節(jié)約時(shí)間的策略,因?yàn)槿绻毒呓佑|點(diǎn)(CC)小平面里面, 切削刀具就不接觸到端點(diǎn)或者三角形的邊沿,因此,后面二者更加費(fèi)時(shí)的步驟就可能得到避免。
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位單片機(jī),片內(nèi)含2k bytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和128 bytes的隨機(jī)隨取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL 公司的高密度,非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash 存儲(chǔ)單元,功能強(qiáng)大AT89C2051單片機(jī)可為您提供許多高性價(jià)比的應(yīng)用場(chǎng)合。
AT89C2051提供以下標(biāo)準(zhǔn)功能:2k字節(jié)Flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,15個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,內(nèi)置一個(gè)精密比較器,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C2051可降至0Hz的表態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下個(gè)硬件復(fù)位。引腳結(jié)構(gòu)如下
振蕩器特征:
XTAL1、 XTAL2為片內(nèi)振蕩器的反相放大器的輸入和輸出端,如下圖所示??刹捎檬⒕w或陶瓷振蕩器組成時(shí)鐘振蕩器,如需從外部輸入時(shí)鐘驅(qū)動(dòng)AT89C2051,時(shí)鐘信號(hào)從XTAL1輸入,XTAL2應(yīng)懸空。由于輸入到內(nèi)部電路經(jīng)過(guò)一個(gè)2分頻觸發(fā)器,所以輸入的外部時(shí)鐘信號(hào)無(wú)需要特殊要求,但它必須符合電平的最大和最小值及時(shí)序規(guī)范。
某些指令的約束條件:
AT89C2051是經(jīng)濟(jì)型低價(jià)位的微控制器,它含有2k字節(jié)的Flash閃速程序存儲(chǔ)器,指令系統(tǒng)與MCS—51完全兼容,可使用MCS—51指令系統(tǒng)對(duì)其進(jìn)行編程。但是在使用某些有關(guān)指令編程時(shí),程序員須注意一些事項(xiàng)。
和跳轉(zhuǎn)或分支有關(guān)的指令有一定的空間約束,使目的地址能安全落在AT89C2051的2k字節(jié)的物理程序存儲(chǔ)器空間內(nèi),程序員必須注意這一點(diǎn)。對(duì)于2k字節(jié)存儲(chǔ)器的AT89C2051來(lái)說(shuō),LJMP 7E0H是一條有效指令,而LJMP 900H則為無(wú)效指令。
1.分支指令:
對(duì)于LCALL、LJMP、ACALL、AJMP、SJMP、JMP@+DPTR等指令,只要程序員記住這些分支指令的目的地址在程序存儲(chǔ)器大小的物理范圍內(nèi)(AT89C2051程序地址空間為:000H—7FFH單元),這些無(wú)條件分支就會(huì)正確執(zhí)行,超出物理空間的限制會(huì)出現(xiàn)不可預(yù)知的程序出錯(cuò)。CJNE[……]、DJNZ[……]、JB、JNB、JC、JNC、JBC、JZ、JNZ等這些條件轉(zhuǎn)移指令的使用與上述原則一樣,同樣,超出物理空間的限制也會(huì)引起不可預(yù)知的程序出錯(cuò)。至于中斷的使用,80C51系列硬件結(jié)構(gòu)中已保留標(biāo)準(zhǔn)中斷服務(wù)子程序的地址。
2.與MOVX相關(guān)的指令,數(shù)據(jù)存儲(chǔ)器:
AT89C2051包含128字節(jié)內(nèi)部數(shù)據(jù)存儲(chǔ)器,這樣,AT89C2051的堆棧深度局限于內(nèi)部RAM的128字節(jié)范圍內(nèi),它既不支持外部數(shù)據(jù)存儲(chǔ)器的訪問(wèn),也不支持外部程序存儲(chǔ)器的執(zhí)行,因此程序中不應(yīng)有MOVX[……]指令。
一般的80C51匯編器即使在違反上述指令約束而寫入指令時(shí)仍對(duì)指令進(jìn)行匯編,用戶應(yīng)了解正在使用的AT89C2051微控制器的存儲(chǔ)器物理空間和約束范圍,適當(dāng)?shù)卣{(diào)整所使用的指令尋址范圍以適應(yīng)AT89C2051。
程序存儲(chǔ)器的加密:AT89C2051可使用對(duì)芯片上的兩個(gè)加密位進(jìn)行編程(P)或不編程(U)來(lái)得到如下表所示的功能:
空閑模式:
在空閑模式下,CPU保持睡眠狀態(tài)而所有片內(nèi)的外設(shè)仍保持激活狀態(tài),這種方式由軟件產(chǎn)生。此時(shí),片內(nèi)RAM和秘有特殊功能寄存器的內(nèi)容保持不變??臻e模式可由任何允許的中斷請(qǐng)求硬件復(fù)位終止。
P1.0 和P1.1在不使用外部上拉電阻的情況下應(yīng)設(shè)置為”0”,或者在使用上拉電阻的情況下設(shè)置為“1”。
應(yīng)注意的是:在用硬件復(fù)位終止空閑模式時(shí),AT89C2051通常從程序停止一直到內(nèi)部復(fù)位獲得控制之前的兩個(gè)機(jī)器周期處恢復(fù)程序執(zhí)行。在這種情況下片內(nèi)硬件禁止對(duì)內(nèi)部RAM的讀寫,但允許對(duì)端口的訪問(wèn),要消除萬(wàn)事硬件復(fù)位終止空閑模式對(duì)端口意外寫入的可能,原則上進(jìn)入空閑模式指令的下一條指令不應(yīng)對(duì)端口引腳或外部存儲(chǔ)器進(jìn)行訪問(wèn)。
掉電模式:
在掉電模式,振蕩器停止工作,進(jìn)入掉電模式的指令性計(jì)劃是最后一條被執(zhí)行的指令,片內(nèi)RAM的特殊功能寄存器的內(nèi)容在終止掉電模式前被凍結(jié)。退出掉電模式的唯一方法是硬件復(fù)位,復(fù)位后將重新定義全部特殊功能寄存器但不改變RAM中的內(nèi)容,在VCC恢復(fù)到正常工作電平前,復(fù)位應(yīng)無(wú)效,且必須保持一定時(shí)間以使振蕩器重啟動(dòng)并穩(wěn)定工作。
P1.0 和P1.1在不使用外部上拉電阻的情況下應(yīng)設(shè)置為“0”,或者在使用外部上拉電阻時(shí)應(yīng)設(shè)為“1”。
Flash閃速存儲(chǔ)器的編程:
AT89C2051是在擦除狀態(tài)下用2k字節(jié)的片內(nèi)PEROM代碼存儲(chǔ)陣列封裝微控制器,其程序存儲(chǔ)器是可反復(fù)編程的。代碼存儲(chǔ)陣列一次編程一個(gè)字節(jié),一旦陣列被編程,如需重新編程一非空字節(jié),必須對(duì)整個(gè)存儲(chǔ)器陣列進(jìn)行電擦除。
內(nèi)部址計(jì)數(shù)器:AT89C2051內(nèi)部包含一個(gè)PEROM編程地址計(jì)數(shù)器,它總在RST上升沿到來(lái)時(shí)復(fù)位到000H,并在XTAL1引腳上出現(xiàn)正跳變脈沖時(shí)進(jìn)行加1計(jì)數(shù)。
數(shù)據(jù)查詢:AT89C2051具有寫周期結(jié)束的數(shù)據(jù)查詢功能,在寫周期期間,對(duì)最后寫入的字節(jié)嘗試將令P1.7上寫入數(shù)據(jù)通信的操作結(jié)束。當(dāng)寫周期完成,全部輸出端的真實(shí)數(shù)據(jù)有效,同時(shí)下一個(gè)周期開(kāi)始,數(shù)據(jù)查詢可在寫周期被初始化的任一時(shí)刻開(kāi)始。
Ready/Busy:字節(jié)編程的進(jìn)度可通過(guò)“RDY/BSY”輸出信號(hào)監(jiān)測(cè),編程期間,P3.1引腳在P3.2變高“H”后被拉低來(lái)指示“BSY”,在編程結(jié)束后被再次拉高”H”來(lái)指示“RDY”。
程序校驗(yàn):如果加密LB1、LB2沒(méi)有進(jìn)行編程,則代碼數(shù)據(jù)可通過(guò)校驗(yàn)數(shù)據(jù)線讀取:
1.使RST從“L”變?yōu)椤癏”,復(fù)位內(nèi)部的地址計(jì)數(shù)器為期為000H。
2.對(duì)代碼數(shù)據(jù)加上正確的控制信號(hào)即可在P1口引腳上讀取數(shù)據(jù)。
3.XTAL1引腳跳變一次使內(nèi)部地址計(jì)數(shù)器加1。
4.從P1口讀取下一個(gè)代碼字節(jié)。
5.重復(fù)3到4步驟,即可將全部單元的數(shù)據(jù)讀取。加密位不可直接校驗(yàn),加密位的校驗(yàn)可通過(guò)對(duì)存儲(chǔ)器和校驗(yàn)和寫入狀態(tài)來(lái)驗(yàn)證。
芯片擦除:利用控制信號(hào)的正確組合并保持P3.2引腳10mS的低電平即可將PEROM(2k字節(jié))陣列和兩個(gè)加密位整片擦除,代碼陣列在片擦除操作中將任何非空單元寫入“1”可被再編程之前進(jìn)行。
讀片內(nèi)簽名字節(jié):除P3.25、P3.7必須被拉成邏輯低電平外,讀簽名字節(jié)的過(guò)程和單元000H、001H及002H的正常校驗(yàn)相同,返回值意義如下:
(000H)=1EH聲明產(chǎn)品由ATMEL公司制造。
(001H)=2IH聲明為89C2051單片機(jī)。
編程接口:Flash閃速陣列中的每一代碼字節(jié)進(jìn)行寫入且整個(gè)存儲(chǔ)器可在控制信號(hào)的正確組合下進(jìn)行擦除,寫操作周期是自身寫時(shí)的,初始化后它將自動(dòng)定時(shí)到操作完成。
9