4.編程方式
89C51片內有4K字節的FlashROM代碼存儲器陣列。有低電壓編程和高電壓編程(12V)兩種模式。低電壓編程狀態為用戶在系統中編程89C51提供了一個方便的途徑,而高電壓編程(12V)模式與一般常規的Flash或EPROM編程器兼容。
(1)閃速存儲器編程方式上表列出了89C51閃速存儲器的編程、校驗、寫鎖定位及讀芯片標記時的邏輯電平。89C51的存儲器原碼陣列在以上兩種編程狀態都是一個字節編程。如果Flash存儲器不空,整個存儲器必須在片擦除狀態下擦空。
(2)閃速存儲器編程

①編程算法在編程89C51之前,地址、數據、控制信號必須按上表和上圖(a)、(b)設置。編程89C51有以下步驟:(a)在地址線上輸入存儲器地址。(b)在數據線上輸入正確數據。(c)如上圖所示的、正確的控制信號組合。(d)對于高電壓編程模式,將EA的反/Vpp升至12V。(e)向ALE/PROG的反給出一個編程脈沖。字節寫周期,由自己定時,一般不超過1.5ms。(f)改變地址和數據,重復(a)~(e)步,直到所有目的文件(OBJ文件)結束。
②數據查詢(DataPolling)89C51具備通過數據查詢來檢測寫循環結束的特性。在寫周期期間,若試圖讀取剛寫入的字節,則將在P0.7引腳上得到寫入數據的反碼。一旦寫周期完成,所有輸出上將出現剛寫入的真實數據,于是可以開始下輪循環。在寫周期啟動后,數據查詢可在任何時候開始。

③準備好/忙(RDY/BSY的反)字節編程的進程也可以通過RDY/BSY輸出信號檢測。如上圖所示,編程期間ALE/PRO的反升為高電平后,P3.4引腳被拉成低電平,表示BUS;而當編程完成后又被拉高電平,表示READY。
④編程校驗如果鎖定位LB1和LB2沒有被編程,代碼數據可經由數據線讀回,用來校驗。鎖定位不能直接被校驗,其校驗只有通過觀察其特性是否被允許而間接得到證實。
⑤芯片擦除整個EPROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE/PROG的反引腳處于低電平l0ms來完成。在芯片擦操作中,代碼陣列全被寫“1”。且在任何非空存儲字節被重復編程之前,必須首先執行擦除操作。
⑥讀特征字節特征字節的讀取步驟和區域030H、031H、032H的標準校驗步驟相似,所不同的是P3.6和P3.7必須為邏輯低電平,返回值如下所示:(030H)=1EH表示AT-MEL生產,(031H)=51H表示89C51,(032H)=FFH表示12V編程,(032H)=05H表示5V編程。

(3)程序鎖定位的功能和編程89C51片內含有三個鎖定位,但是不含密碼陣列。可以不編程(U)也可以編程(P)以獲得一些附加特性,如上表所示為89C51程序鎖定位不同的編程狀況及其特點。當第一級加密時,EA的反邏輯電壓被取樣并鎖存。在復位期間,如果器件為上電而不是復位,鎖存器內容初始化為一個隨機值,直到復位操作結束。鎖定位的編程方法可參照表5的邏輯電平進行。
電子發燒友App





評論