<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 元件/連接器 > 設計應用 > OTPROM型單片機內內部存儲器的使用研究

OTPROM型單片機內內部存儲器的使用研究

——
作者:中國石油大學(xué) 馮興田 張加勝 時(shí)間:2006-10-03 來(lái)源:21IC中國電子網(wǎng) 收藏

隨著(zhù)變頻調速以及微機控制技術(shù)的發(fā)展,適應電機控制的 8XC196MC系列應用越來(lái)越廣泛。     

與80C196MC相比,C帶有16 KB的OTPROM(One Tline Programmable Read-Only Memory),可以進(jìn)行片內編程操作,而且可以增強加密功能。對于普通的控制系統來(lái)說(shuō),其存儲容量足夠大,不必再使用外部擴展。然而C的OTPROM存在一個(gè)缺點(diǎn):不可擦除,也就是說(shuō)只能編程一次,不能實(shí)現重復編程,不利于大量普及使用。    

當程序從仿真器移植到單片機的OTPROM時(shí),并不能保證程序的一次成功性,由于單片機的不可擦除性,若程序脫機一次就使用一片單片機,顯然將造成巨大的資源浪費。另一方面,對于復雜系統,16KB的OTPROM容量如果不夠,則需要采用擴展外部,為了保證有效實(shí)現加密功能,應保留一部分程序在片內OTPROM,此時(shí)便涉及到單片機內、外的銜接問(wèn)題。    

本文針對 C單片機內部存儲器的不可擦除性,對兩種情況下的使用問(wèn)題提供了可以有效實(shí)現重復編程的方法,并可以推廣至其他任何帶有OTPROM的單片機系列的編程應用中。 

1 87C196MC單片機內部存儲器的編程方式

87C196MC單片機支持三種編程方式:自動(dòng)編程方式(使87C196MC單片機不用EPROM編程器即可從外部EPROM對自己編程)、從機編程方式(給外部EPROM編程器提供了一個(gè)標準接口)和實(shí)時(shí)編程方式(運行中編程方式,可以在軟件控制下實(shí)時(shí)對單個(gè)EPROM單元編程)。和其他方式不同,實(shí)時(shí)編程可以在不進(jìn)入全EPROM編程方式下完成。    

對于Intel 87C196MC單片機的OTPROM只能編程,不能擦除,但在編程時(shí)可以驗證是否已確實(shí)編程。對0TPROM可以采用2種編程方法:在從機編程方式下或在專(zhuān)門(mén)的OTPROM編程方式下編程。OTPROM為87C196MC單片機提供了輔助的存儲器保護手段,它可以禁止總線(xiàn)控制器執行外部取指周期,若企圖把一個(gè)外部地址裝載到PC寄存器,芯片將復位。這種自動(dòng)復位功能對跑飛的代碼也提供了一種額外的恢復手段。使用時(shí)應根據實(shí)際需要采取不同的編程方式。 

2 87C196MC單片機內部存儲器的重復編程方法 

單片機87C196MC的EA引腳(外部訪(fǎng)問(wèn)允許端,87C196MC PLCC84-36腳)用來(lái)控制訪(fǎng)問(wèn)內部存儲器或外部存儲器。當EA=O時(shí),所有訪(fǎng)問(wèn)都是對片外存儲器的;當EA=1時(shí),對2000H~5FFFH單元的訪(fǎng)問(wèn)都是對片內OTPROM/ROM的。編程方式下,EA=12.5 V。由于復位時(shí)EA的電平被鎖存,難以通過(guò)外部硬件電路來(lái)實(shí)現程序空間的選擇。這里通過(guò)應用程序語(yǔ)句來(lái)控制程序地址范圍,相當于EA的電平變化作用。本文主要應用了Intel匯編語(yǔ)言的長(cháng)跳轉指令UMP來(lái)實(shí)現控制訪(fǎng)問(wèn)內、外存儲器的功能,下面介紹兩種常用的方法。

2.1片內編程操作方法    

所謂87C196MC單片機OTPROM的不可擦除性,實(shí)質(zhì)上是不可實(shí)現從“0”到“1”的編程,而只能完成從“1”到“O”的編程。以下通過(guò)簡(jiǎn)單的程序實(shí)例來(lái)介紹這種方法。

       LJMP NEXTl
       CSEG AT 2600H
       NEXTl:……    

上述語(yǔ)句實(shí)際上代表的是LJMP2600H.其機器碼為E79C04,當地址2600H變化時(shí),得到一組對應的機器碼,通過(guò)對這一組機器碼進(jìn)行分析,就可以得到該方法的原理,如表1所列。


機器碼E79C04的后兩個(gè)字節代表了匯編程序語(yǔ)句中的地址(04代表了2600H,14代表了3600H……)。當一個(gè)字節從4位全是“1”變成4位全是“O”,且每次只有一個(gè)“l(fā)”變?yōu)椤?”時(shí),可以有多種不同的變法,如表2所列。

由于87C196MC單片機的OTPROM只能完成從“1”到“O”的編程,而87C196MC單片機的程序從2000H開(kāi)始執行,因此可以在程序從2000H執行一小段后進(jìn)行跳轉,例如首先跳至4100H(對應的機器碼為E79C1F)再存儲程序的其他部分。下一次使用時(shí),把機器碼E79C1F改為E79C1E(對應地址為4000H),程序則跳至4000H開(kāi)始執行,4100H以后的程序段不再執行。再下一次使用時(shí),把機器碼E79C1E改為E79C1c(對應地址為3A00H),程序則跳至3A00H開(kāi)始執行,4000H以后的程序段不再執行,以此類(lèi)推(即機器碼的最后一個(gè)字節變化為F→E→c,對應表2中第一組的變化),即可以重復使用同一片單片機進(jìn)行多次編程操作。   


這種方法中,單片機87C196MC的引腳EA接高電平。它適用于程序簡(jiǎn)短且沒(méi)有擴展外部存儲器,只有內部存儲器可用的情況。

2.2片內、外編程操作方法    

如果內部存儲器容量不夠或因為其他方面需要,要求擴展外部存儲器時(shí),當然可以選擇容量較大的外部存儲器,而不使用內部存儲器,但這樣一來(lái),程序的保密性將難以實(shí)現,而且浪費了單片機內部的存儲器空間。使用內、外結合的方法既可以滿(mǎn)足容量需求,叉能方便的實(shí)現加密操作。    

鑒于87C196MC單片機的程序從2000H開(kāi)始執行,將單片機87C196MC的引腳麗置“1”,那么單片機程序將從內部2000H開(kāi)始執行??梢栽诔绦驈?000H執行一小段后(根據實(shí)際需要任意設定)進(jìn)行跳轉,此處與片內跳轉的操作有所不同,它將直接跳出單片機87C196MC片內OTPROM的2000H~5FFFH單元的范圍。當命令被執行時(shí),會(huì )自動(dòng)轉入外部存儲器的地址范圍內,例如:LJMP8000H,其中8000H是外部存儲器的地址入口,這樣就從片內存儲器轉入到外部存儲器了??梢酝ㄟ^(guò)修改外部存儲器(可重復擦寫(xiě))的程序來(lái)進(jìn)行程序的調試,非常方便。當然,如果需要從外部存儲器轉入內部存儲器時(shí),操作方法是類(lèi)似的。

結  語(yǔ) 

本文詳細分析介紹了兩種可以實(shí)現可重復編程的單片機的使用方法,而且這兩種方法可以推廣至其他任何帶有0TPROM的單片機編程,編程的思路完全相同,具體實(shí)驗證實(shí)了這兩種方法具有切實(shí)可行性。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>