單片機復位、程序執(zhí)行、低功耗以及編程和復位操作
2021-07-03
說明
單片機有四種工作模式:復位、程序執(zhí)行、低功耗、編程和驗證。
1.重置方法
(l) 復位操作 復位是單片機的初始化操作,其主要作用是初始化PC,使單片機執(zhí)行來自單元的程序。除了進入系統(tǒng)的正常初始化外,當系統(tǒng)因程序運行錯誤或操作錯誤而處于死鎖狀態(tài)時,為了擺脫困境,還需要按復位鍵重新啟動.
除PC外,復位操作還會影響其他一些特殊功能寄存器,其復位狀態(tài)如上表所示。
復位操作也會影響微控制器的各個引腳信號。例如,在復位期間,ALE 和信號變?yōu)闊o效,即 ALE==1。 (2) 信號及其產(chǎn)生
①復位信號
RST 引腳是復位信號的輸入端。復位信號為高電平有效,其有效時間應大于24個振蕩脈沖周期(即2個機器周期)。如果使用頻率為6MHz的晶振,復位信號持續(xù)時間應超過4μs才能完成復位操作;產(chǎn)生復位信號的電路邏輯如下圖所示。
整個復位電路包括芯片內(nèi)外兩部分。外電路產(chǎn)生的復位信號(RST)送到施密特觸發(fā)器,片上復位電路在每個機器周期的S5P2時間對施密特觸發(fā)器的輸出進行采樣。只有這樣才能獲得內(nèi)部復位操作所需的信號。
②復位模式 復位操作有上電自動復位、按鍵手動復位和外部脈沖復位三種模式,如下圖所示。
上電自動復位是通過給外部復位電路的電容充電來實現(xiàn)的,電路如上圖(a)所示。這樣只要電源VCC的上升時間不超過1ms,就可以實現(xiàn)自動上電復位,即上電完成系統(tǒng)的復位初始化。按鍵電平復位是通過一個電阻將復位端接到Vcc電源上來實現(xiàn)的,電路如上圖(b)所示。按鍵復位電路圖中的電阻電容參數(shù)適用于6MHz晶振,可以保證復位信號的高電平持續(xù)時間大于2個機器周期。外部脈沖復位是外部提供的復位脈沖。這個復位脈沖的寬度應該保持大于兩個機器周期,如上圖(c)所示。復位脈沖后,內(nèi)部下拉電阻保證RST端為低電平。
2.程序執(zhí)行方法
程序執(zhí)行模式是單片機的基本工作模式。由于 PC= 復位后,程序執(zhí)行總是從地址開始。但一般的程序并不是真正從頭開始,為此,必須在起始單元中存儲無條件轉(zhuǎn)移指令,才能跳轉(zhuǎn)到實際程序群執(zhí)行。
3.低功耗工作模式
有兩種低功耗模式,即待機模式和掉電保護模式。待機模式和掉電保護模式所涉及的硬件如上圖所示。待機模式和掉電模式由電源控制寄存器(PCON)的相關(guān)位控制。功率控制寄存器(PCON)寄存器是一個逐位定義的8位寄存器,其格式如下:
其中:SMOD為波特率??倍增位,用于串口通信; CF1是
通用標志位1; GF0為通用標志位0; PD為掉電模式位,PD=1,則進入掉電模式; IDL為待機模式位,IDL=1,則進入待機模式。要使微控制器進入待機或掉電工作模式,只需執(zhí)行一條指令使 IDL 或 PD 位為 1 即可。
(1)待機模式
④ 進入待機模式。如果 PCON 寄存器的 IDL 位設(shè)置為 1,它將進入待機模式。此時振蕩器仍在運行,為中斷邏輯、串口和定時/計數(shù)器電路提供時鐘,但為CPU提供時鐘的電路被阻塞,因此CPU無法工作,中斷功能繼續(xù)存在,但與CPU有關(guān),如SP、PC、PSW、ACC,所有通用寄存器都“凍結(jié)”在原始狀態(tài)。
②退出待機模式
使用中斷方式退出待機模式。在待機模式下,如果引入外部中斷請求信號,PCON. Bit 0(即PD位)由硬件自動清0,單片機退出待機模式,進入正常工作模式。中斷服務程序中只需安排一條RETI指令,MCU即可恢復正常運行,返回斷點繼續(xù)執(zhí)行程序。
(2)掉電保護方法
①進入掉電保護模式
PCON 寄存器的 PD 位控制微控制器進入掉電保護模式。當單片機檢測到掉電時,除信息保護外,還應將PCON.I位置置“1”,使其進入掉電保護模式。此時單片機的所有工作都停止,只保存內(nèi)部RAM單元的內(nèi)容。
②單片機的后備電源從掉電保護模式退出時的Vcc端引入。當Vcc恢復正常時,只要硬件復位信號保持10ms,單片機就可以退出掉電保護模式。待機和掉電模式下的引腳狀態(tài)如下表所示。
4.編程方法
片上有一個 4K 字節(jié)的代碼存儲器陣列。有低壓編程和高壓編程(12V)兩種模式。低壓編程狀態(tài)為用戶在系統(tǒng)中編程提供了方便的方式,高壓編程(12V)模式適用于普通或編程器。
(1)存儲器編程方法上表列出了存儲器編程、校驗、寫鎖定位和讀芯片標志的邏輯電平。存儲器源代碼數(shù)組在上述兩種編程狀態(tài)下都是一字節(jié)的如果內(nèi)存不為空,則必須在芯片擦除狀態(tài)下擦除整個內(nèi)存。元素的內(nèi)容被保存。 ②掉電保護模式從Vcc端退出MCU后備電源。當Vcc恢復正常時只要硬件復位信號保持10ms,MCU就可以退出掉電保護模式。待機和掉電模式下的引腳狀態(tài)如表4所示。
4.編程方法
片上有一個 4K 字節(jié)的代碼存儲器陣列。有低壓編程和高壓編程(12V)兩種模式。低壓編程狀態(tài)為用戶在系統(tǒng)中編程提供了方便的方式,高壓編程(12V)模式適用于普通或編程器。
(1)存儲器編程方法上表列出了存儲器編程、校驗、寫鎖定位和讀芯片標志的邏輯電平。存儲器源代碼數(shù)組在上述兩種編程狀態(tài)下都是一字節(jié)的編程。如果內(nèi)存不為空,則在芯片擦除時必須擦除整個內(nèi)存。
(2) 存儲器編程
①編程算法 編程前必須按照上表和上圖(a)、(b)設(shè)置地址、數(shù)據(jù)和控制信號。編程有以下步驟: (a) 在地址線上輸入內(nèi)存地址。 (b) 在數(shù)據(jù)行上輸入正確的數(shù)據(jù)。 (c) 正確的控制信號組合如上圖所示。 (d) 對于高壓編程模式單片機原理與應用及c51編程技術(shù),將 EA 的反向 /Vpp 增加到 12V。 (e) 給 ALE/PROG 的逆程序一個編程脈沖。字節(jié)寫周期自行計時,一般不超過1.5ms。 (f) 更改地址和數(shù)據(jù)單片機原理與應用及c51編程技術(shù),重復步驟 (a) ~ (e) 直到所有目標文件(OBJ 文件)結(jié)束。
②數(shù)據(jù)查詢()具有通過數(shù)據(jù)查詢檢測寫周期結(jié)束的特性。在寫周期中,如果嘗試讀取剛剛寫入的字節(jié),則會在 P0.7 引腳上得到寫入數(shù)據(jù)的反碼。一旦寫周期完成,剛剛寫入的真實數(shù)據(jù)將出現(xiàn)在所有輸出上,因此可以開始下一個周期。寫周期開始后,可以隨時開始數(shù)據(jù)查詢。
③/busy(與RDY/BSY相反)字節(jié)編程的過程也可以通過RDY/BSY輸出信號來檢測。如上圖所示,編程時ALE/PRO升回高電平后,P3.4引腳被拉低,表示BUS;編程完成后再次拉高表示。
④程序驗證如果鎖定位LB1和LB2沒有被編程,可以通過數(shù)據(jù)線回讀代碼數(shù)據(jù)進行驗證。鎖定位無法直接驗證,只能通過觀察其特性是否允許來間接驗證。
⑤芯片對整個陣列的擦除和三個鎖定位的電擦除可以通過控制信號的正確組合并保持ALE/PROG反引腳低電平l0ms來完成。在芯片擦除操作中,代碼陣列全部寫入“1”。并且在重復編程任何非空存儲字節(jié)之前,必須先執(zhí)行擦除操作。
⑥讀取特征字節(jié)的讀取程序與030H、031H、032H區(qū)的標準校驗程序類似,區(qū)別在于P3.6和P3.7必須為邏輯低電平,返回值如下:(030H)=1EH表示AT-MEL生產(chǎn),(031H)=51H表示,(032H)=FFH表示12V編程,(032H)=05H表示5V編程。
(3)程序鎖定位和編程芯片的功能包含三個鎖定位,但沒有密碼數(shù)組??梢酝ㄟ^編程(U)或編程(P)來獲得一些附加功能,如圖上表 不同的編程條件和程序鎖定位的特性 當?shù)谝患壖用軙r,EA的反邏輯電壓被采樣并鎖存 在復位期間,如果器件上電而不是復位,則鎖存內(nèi)容為初始化為1個隨機值,直到復位操作結(jié)束。鎖定位的編程方法可參考表5中的邏輯電平。