古詩詞大全網 - 藝術簽名 - AT89C52的編程加密

AT89C52的編程加密

AT89C52單片機內部有8k字節的Flash PEROM,這個Flash存儲陣列出廠時已處於擦除狀態(即所有存儲單元的內容

均為FFH),用戶隨時可對其進行編程。編程接口可接收高電壓(+12V)或低電壓(Vcc)的允許編程信號。低電壓編程模

式適合於用戶在線編程系統,而高電壓編程模式可與通用EPROM編程器兼容。

AT89C52單片機中,有些屬於低電壓編程方式,而有些則是高電壓編程方式,用戶可從芯片上的型號和讀取芯片內的

簽名字節獲得該信息。

AT89C52 的程序存儲器陣列是采用字節寫入方式編程的,每次寫入壹個字節,要對整個芯片內的PEROM 程序存儲器

寫入壹個非空字節,必須使用片擦除的方式將整個存儲器的內容清除。 編程前,須按表9 和圖11 所示設置好地址、數據及控制信號, AT89C52 編程方法如下:

1. 在地址線上加上要編程單元的地址信號。

2. 在數據線上加上要寫入的數據字節。

3. 激活相應的控制信號。

4. 在高電壓編程方式時,將EA/Vpp 端加上+12V 編程電壓。

5. 每對Flash 存儲陣列寫入壹個字節或每寫入壹個程序加密位,加上壹個ALE/PROG編程脈沖。每個字節寫入周期

是自身定時的,通常約為1.5ms。重復1—5 步驟,改變編程單元的地址和寫入的數據,直到全部文件編程結束。 AT89C52 有3 個程序加密位,可對芯片上的3 個加密位LB1、LB2、LB3 進行編程(P)或不編程(U)來得到。

當加密位LB1 被編程時,在復位期間,EA 端的邏輯電平被采樣並鎖存,如果單片機上電後壹直沒有復位,則鎖存起的

初始值是壹個隨機數,且這個隨機數會壹直保存到真正復位為止。為使單片機能正常工作,被鎖存的EA 電平值必須與該引

腳當前的邏輯電平壹致。此外,加密位只能通過整片擦除的方法清除。 AT89C52單片機用Data Palling 表示壹個寫周期結束為特征,在壹個寫周期中,如需讀取最後寫入的壹個字節,則讀出的數據的最高位(P0.7)是原來寫入字節最高位的反碼。寫周期完成後,所輸出的數據是有效的數據,即可進入下壹個字節的寫周期,寫周期開始後,Data Palling 可能隨時有效。

Ready/Busy:字節編程的進度可通過“RDY/BSY 輸出信號監測,編程期間,ALE 變為高電平“H”後,P3.4(RDY/BSY)端電平被拉低,表示正在編程狀態(忙狀態)。編程完成後,P3.4 變為高電平表示準備就緒狀態。

程序校驗:如果加密位LB1、LB2 沒有進行編程,則代碼數據可通過地址和數據線讀回原編寫的數據,采用如圖12的電路。加密位不可直接校驗,加密位的校驗可通過對存儲器的校驗和寫入狀態來驗證。

芯片擦除:利用控制信號的正確組合(表6)並保持ALE/PROG引腳10mS 的低電平脈沖寬度即可將PEROM 陣列(4k字節)和三個加密位整片擦除,代碼陣列在片擦除操作中將任何非空單元寫入“1”,這步驟需再編程之前進行。

讀片內簽名字節:AT89C52單片機內有3 個簽名字節,地址為030H、031H 和032H。用於聲明該器件的廠商、型號和編程電壓。讀AT89C52 簽名字節需將P3.6 和P3.7 置邏輯低電平,讀簽名字節的過程和單元030H、031H 及032H 的正常校驗相仿,只返回值意義如下:

(030H)=1EH 聲明產品由ATMEL公司制造。

(031H)=52H 聲明為AT89C52 單片機。

(032H)=FFH 聲明為12V 編程電壓。

(032H)=05H 聲明為5V 編程電壓。