89C51單片機共有復位、程序執行、低功耗以及編程和校驗等四種工作方式。
1.復位方式
(l)復位操作復位是單片機的初始化操作,其主要功能是把PC初始化為OOOOH,使單片機從0000H單元開始執行程序。除了進入系統的正常初始化之外,當由于程序運行出錯或操作錯誤使系統處于死鎖狀態時,為擺脫困境,也需按復位鍵以重新啟動。
除PC之外,復位操作還對其它一些特殊功能寄存器有影響,它們的復位狀態如上表所示。
復位操作還對單片機的個別引腳信號有影響。例如在復位期間,ALE和信號變為無效狀態,即ALE=LPSEN=1。(2)復位信號及其產生
①復位信號
RST引腳是復位信號的輸入端,復位信號是高電平有效,其有效時間應持續24個振蕩脈沖周期(即兩個機器周期)以上,若使用頻率為6MHz的晶振,則復位信號持續時間應超過4μs才能完成復位操作;產生復位信號的電路邏輯如下圖所示。
整個復位電路包括芯片內外兩部分。外部電路產生的復位信號(RST)送施密特觸發器,再由片內復位電路在每個機器周期的S5P2時刻對施密特觸發器的輸出進行采樣。然后才得到內部復位操作所需要的信號。
②復位方式復位操作有上電自動復位、按鍵手動復位和外部脈沖復位三種方式,示于下圖中。
上電自動復位是通過外部復位電路的電容充電來實現的,其電路如上圖(a)所示。這樣,只要電源VCC的上升時間不超過1ms,就可以實現自動上電復位,即接通電源就完成了系統的復位初始化。按鍵電平復位是通過使復位端經電阻與Vcc電源接通而實現的,其電路如上圖(b)所示。而按鍵復位電路圖中的電阻電容參數適宜于6MHz晶振,能保證復位信號高電平持續時間大于2個機器周期。外部脈沖復位是由外部提供一個復位脈沖。此復位脈沖應保持寬度大于兩個機器周期,如上圖(c)所示。復位脈沖過后,由內部下拉電阻保證RST端的低電平。
2.程序執行方式
程序執行方式是單片機的基本工作方式。由于復位后PC=0000H,因此程序執行總是從地址0000H開始的。但一般程序并不是真正從0000H開始,為此就得在0000H開始的單元中存放一條無條件轉移指令,以便跳轉到實際程序的人口去執行。
3.低功耗工作方式
80C51有兩種低功耗方式,即待機方式和掉電保護方式。待機方式和掉電保護方式時所涉及的硬件如上圖所示。待機方式和掉電方式都是由電源控制寄存器(PCON)的有關位來控制的。電源控制寄存器(PCON)寄存器是一個逐位定義的8位寄存器,其格式如下:
其中:SMOD為波特率倍增位,在串行通信時使用;CF1為
通用標志位1;GF0為通用標志位0;PD為掉電方式位,PD=l,則進入掉電方式;IDL為待機方式位,IDL=1,則進入待機方式。要想使單片機進入待機或掉電工作方式,只要執行一條能使IDL或PD位為1的指令就可以了。
(1)待機方式
④待機方式的進入如果使用指令使PCON寄存器IDL位置1,則89C51即進入待機方式。這時振蕩器仍然運行,并向中斷邏輯、串行口和定時器/計數器電路提供時鐘,但向CPU提供時鐘的電路被阻斷,因此CPU不能工作,而中斷功能繼續存在,但與CPU有關的如SP、PC、PSW、ACC以及全部通用寄存器都被“凍結”在原狀態。
②待機方式的退出
采用中斷方法退出待機方式。在待機方式下,若引入一個外中斷請求信號,在單片機響應中斷的同時,PCON.0位(即PD位)被硬件自動清0,單片機就退出待機方式而進入正常工作方式。在中斷服務程序中只需安排一條RETI指令,就可以使單片機恢復正常工作后,返回斷點繼續執行程序。
(2)掉電保護方式
①掉電保護方式的進入
PCON寄存器的PD位控制單片機進入掉電保護方式。當80C51單片機在檢測到電源故障時,除進行信息保護外,還應把PCON.I位置“1”,使之進入掉電保護方式。此時單片機一切工作都停止,只有內部RAM單元的內容被保存。
②掉電保護方式的退出89C51單片機備用電源由Vcc端引入。當Vcc恢復正常后,只要硬件復位信號維持l0ms,即能使單片機退出掉電保護方式。在待機和掉電方式期間引腳的狀態見下表。
4.編程方式
89C51片內有4K字節的FlashROM代碼存儲器陣列。有低電壓編程和高電壓編程(12V)兩種模式。低電壓編程狀態為用戶在系統中編程89C51提供了一個方便的途徑,而高電壓編程(12V)模式與一般常規的Flash或EPROM編程器兼容。
(1)閃速存儲器編程方式上表列出了89C51閃速存儲器的編程、校驗、寫鎖定位及讀芯片標記時的邏輯電平。89C51的存儲器原碼陣列在以上兩種編程狀態都是一個字節編程。如果Flash存儲器不空,整個存儲器必須在片擦除狀態下擦空。元的內容被保存。②掉電保護方式的退出89C51單片機備用電源由Vcc端引入。當Vcc恢復正常后,只要硬件復位信號維持l0ms,即能使單片機退出掉電保護方式。在待機和掉電方式期間引腳的狀態見表4。
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的邏輯電平進行。
評論
查看更多