MCS-51單片機的硬件結構


MCS-51單片機的基本組成

MCS-51是Intel公司生產的一個單片機系列的總稱.在功能上,該系列單片機有基本型和增強型兩大類,通常以芯片型號的末位數字來區別。末位數字位“1”的型號是基本型,為“2”的信號是增強型。

MCS-51單片機的內部結構如圖所示,基本結構包括

  • 一個8位的CPU及片內振盪器;
  • 4KB掩膜ROM(8051),4KB EPROM(8751),無ROM(8031);
  • 128B RAM,21個特殊功能寄存器SFK;
  • 4個(P0~P3)8位並行I/O接口,一個可編程全雙工通用異步串行接口(UART);
  • 具有5個中斷源,2個優先級;
  • 可尋址64KB 的片外ROM和64KB的片外RAM;
  • 兩個16位的定時/計數器;
  • 具有位操作功能的布爾處理機及位尋址功能。

MCS-51單片機的引腳及其功能

MCS-51單片機的引腳封裝

MCS-51單片機有普通的HMOS芯片和CMOS低功耗芯片。

HMOS芯片采用雙列直插封裝方式,而CMOS芯片采用的封裝方式有雙列直插也有方形封裝的。盡管封裝的方式不同,但是它們的結構完全一樣。

輸入/輸出接口

MCS-51單片機有4個雙向8位I/O接口,它們是P0、P1、P2、P3。在無外接存儲器時,這4個I/O接口均可以作為通用I/O接口使用,CPU既可以對它們進行字節操作也可以進行位操作。

當外接程序存儲器或數據存儲器時,P0口和P2口不再作為通用I/O口使用。此時,P0口傳送存儲器地址的低8位以及雙向的8位數據,P2口傳送存儲器地址的高8位。P0口和P2共同組成MCS-51單片機的16位地址總線,而低8位地址總線與8位雙向數據總線分時復用。

P0口

P0口有8位,每一位由一個鎖存器、兩個三態輸入緩沖器、控制電路和驅動電路組成。

P0口有兩種功能,一是作為通用I/O口;二是當外接存儲器時,作為低8位地址總線8位雙向數據總線。

P0 口作為通用I/O 口

作為通用I/O 口時,P0 口既可以做輸入口,也可以做輸出口,並且每一位都可以設定為輸入或輸出。做輸入口時,先對鎖存器寫“1”,然后再輸入數據,否則,可能出錯。這種雙向口被稱為准雙向口。

當作為通用I/O 口時,CPU內部發控制信號“0”,多路轉換開關MUX與下方觸點閉合,鎖存器的輸出Q端與輸出驅動器T2相接,而控制信號又封鎖與門,使T1管截止。這樣,驅動器T2工作在漏極開路的情況下。下面對P0 口做輸入口、輸出口分別進行介紹。

  1. P0 口做輸入口。當P0做輸入口時,外部的信號通過P0 口引腳與三態緩沖器2的輸入端相連,此時三態緩沖器打開,將引腳上的數據送入內部總線。為了保證將引腳數據正確讀入內部總線,T2管必須處於截止狀態,若T2管處於導通狀態,不管輸入的數據是“1”還是“0”,都將輸入信號鉗位在低電平,不能正確讀入數據。為了保證讀入的數據正確無誤,必須先對鎖存器寫“1”,以使T2管截止,然后再讀入數據。
  2. P0 口做輸出口。當P0 口做輸出口時,待輸出的數據通過內部總線,在寫脈沖的控制下寫入鎖存器。此時鎖存器的Q端通過MUX與T2管相連,經T2管反相后將數據直接送到P0的引腳上,此時,引腳上的數據就是所要輸出的數據。通過以上分析,可以得出這樣一個結論:當P0 口做通用I/O 口時,P0 口是一個准雙向口。
P0 口作為分時復用的地址/數據總線

MC-51單片機沒有單獨的外部地址/數據總線。當外接存儲器時,它的16位地址和8位數據的傳送由P0、P2 口承擔,其中P2 口負責傳送高8位地址,P0 口負責傳送低8位地址和8位雙向數據。P0 口傳送地址和數據信息釆用的是分時復用技術。

P0 口作為分時復用的地址/數據總線時,可分為兩種情況,一種是從P0 口輸出地址或數據;另一種是從P0 口輸入數據。

第一種情況,CPU發出的控制信號為“1”,多路轉換開關與上觸點相接觸,並開放與門。地址/數據信號將與門直接與T1管的柵極相接,而地址/數據信號反相后,直接與T2管的柵極相接。當地址/數據信號為“1"時,T1導通,T2截止,輸出引腳輸出“1”;當地址/數據信號為“0”時,T1截止,T2導通,輸出引腳為“0”,保證了地址/數據信號正確地輸出至引腳。

第二種情況,從P0 口輸入數據,這時輸入數據從輸入緩沖器2進入內部總線。在輸入數據前,用戶無須先對鎖存器寫“1”,寫“1”的工作由CPU自動完成。所以,對用戶而言,P0口作為地址/數據總線時,是一個真正的雙向口。

P1口

P1 口是一個專用的8位准雙向I/O 口,具有通用輸入/輸出口功能,每一位都能設定為輸入或輸出,它的位結構如圖2-4所示。它的內部結構與P0 口有兩點不同:

一點是在輸出驅動器部分直接用上拉電阻代替了場效應管,因此,在組成系統時,無須外接上拉電阻;另一點是由於P1 口只具有輸入/輸出功能,因此,無控制部分。

由於P1 口也是准雙向口,所以,當作輸入時,必須先對該位的鎖存器寫“1”,然后再輸入數據。

P2口

P2 口是一個8位准雙向I/O 口,具有兩種功能,一是作為通用I/O 口,與P1 口相同;二是作為擴展系統的高8位地址總線。輸出高8位地址與P0 口一起組成16位地址總線。它的位結構如圖2-5所示。

P3口

P3 口也是一個8位准雙向I/O 口,除具有與P1 口同樣的功能(即可以作為通用I/O 口使用)外,還具有第二功能。當工作在第二功能時,每位都具有新的功能,各位的定義如表2-1所示。

P3 口的位結構如圖2-6所示,當P3 口作為通用I/O 口時,與P1 口相同。

當P3 口工作在第二功能時,各位都具有特殊的功能,作為第二輸出功能的位,它的鎖存器的Q端置“1”,使第二輸出功能信號順利傳送到引腳。作為第二輸入功能的位,它的位鎖存器Q端和第二輸出功能端都應置“1”,使場效應管T處於截止狀態,保證信號的正確輸入。

MCS-51單片機的CPU及其時序

CPU是單片機的核心部件,可以對數據進行算術運算、邏輯運算和位操作運算,產生一系列控制信號,協調各部分的工作。CPU包括運算器和控制器兩部分。

運算器

運算器包括算術/邏輯部件ALU、累加器A、暫存寄存器、寄存器B、程序狀態標志寄存器PSW和十進制調整電路等。運算器主要用於實現算術/邏輯運算及位操作運算。下面介紹運算器的各組成部分。

  1. 算術/邏輯部件ALU

    算術/邏輯部件ALU用以完成加、減、乘、除的算術運算及布爾代數的邏輯運算。通過對運算結果的判斷影響程序狀態標志寄存器PSW的某些位,從而為判斷、轉移、十進制調整和出錯等提供依據。

  2. 累加器A

    累加器A是一個8位寄存器,它是CPU中工作最繁忙的寄存器。在算術邏輯運算中,累加器A中常請存放一個操作數或運算結果,在與外部存儲器和I/O接口打交道時,進行的數據傳送都要經過累加器A來完成。

  3. 寄存器B

    在乘、除運算中還要使用寄存器B。做乘法運算時,寄存器B用來存放乘數以及積的高位字節:做除法運算時,寄存器B用來存放除數以及余數。不做乘、除運算時,寄存器B可作為通用寄存器使用。

  4. 程序狀態標志寄存器PSW

    程序狀態標志寄存器PSW是一個8位寄存器,用來存放當前指令執行后操作結果的某些特征,以便為下一條指令的執行提供依據。此寄存器各位的含義如圖2-7所示。Cy:進位標志位。在進行加法或減法運算時,若運算結果最高位有進位或借位,則Cy自動置“1”,否則Cy置“0”;在進行布爾操作運算時,Cy (簡稱C)作為布爾處理器。

    AC:輔助進位標志位。當進行加法或減法運算時,若低4位向高4位有進位或借位時,AC被置"1”,否則AC被置“0”。在十進制調整指令中AC還作為十進制調整的判別位。

    F0:用戶標志位。用戶可用軟件對F0位置“1”或清“0”,以決定程序的流向。

    OV:溢出標志位,當運算結果溢出時,OV為“1”,否則為“0”。此標志位反映了運算結果是否溢出。

    D1:未定義位。

    P:奇偶標志位。MCS-51單片機采用偶校驗。當累加器A中“1”的個數為奇數時,P置“1",否則P置“0"。此位反映累加器A中內容“1"的奇偶性,它常常用於機間通信。

    RSI、RS0:工作寄存器區選擇位,用來選擇當前工作的寄存器區。用戶通過改變RS1、RS0的內容來選擇當前工作寄存器區。RSI、RS0的內容與工作寄存器區的對應關系如表2-2所示。

控制器

控制器是微處理器CPU的大腦中樞。它包括定時控制邏輯、指令寄存器IR、指令譯碼器ID、程序計數器PC、堆棧指針SP和數據指針寄存器DPTR等控制部件。

它的功能是根據程序計數器PC的內容取指令,然后進行指令譯碼,並嚴格按照定時控制電路依據指令譯碼的內容產生相應的控制信號,協調各部分的工作,完成指令所規定的操作。

下面介紹控制器中主要部件的功能。

  1. 指令寄存器IR和指令譯碼器ID

    指令寄存器IR是存放指令代碼的地方。當執行指令時,CPU把從程序存儲器中讀取的指令代碼送入指令寄存器,然后經指令譯碼器譯碼后由定時控制電路發出相應的控制信號,最終完成指令所規定的操作。

  2. 程序計數器PC

    程序計數器PC的功能與普通微機相同,它用來存放CPU執行的下一條指令的地址。當一條指令按照PC所指的地址從程序存儲器中取出后,PC會自動加1,指向下一條指令。程序計數器PC是一個16位的寄存器,可尋址64KB的程序存儲器空間。

  3. 堆棧指針SP

    堆棧是為子程序調用和中斷處理而設的。為了實現子程序調用及返回,保護中斷的斷點及現場和中斷的正確返回,以及子程序嵌套和多重中斷,需將斷點和現場的數據壓棧保存,執行完子程序或中斷程序后還需恢復現場及斷點,也就是將壓棧的數據彈出,即壓棧的數據釆取“先進后出”的原則,最先進棧的數據最后彈出,以此類推。

    MCS-51在片內RAM區開辟了一個堆棧,棧區可在片內RAM中移動,棧底可用軟件設置。而堆棧指針SP的作用是用來指示堆棧所處的位置。棧為“空”時,SP指向棧底,當有數據壓入棧時,SP的值也隨之變化,壓入壓棧數據前,先修改SP值,即SP+1-SP,再壓入數據。機器復位后,SP的內容為07H,因此,壓棧的第一個數據在08H單元中。

  4. 數據指針寄存器DPTR

    數據指針寄存器DPTR是一個16位的專用寄存器,也可以作為兩個8位寄存器DPH和DPL。 DPH為DPTR的高位字節,DPL為DPTR的低位字節。DPTR主要用作外部數據存儲器的地址指針,可對64KB的外部數據存儲器進行間接尋址。工作寄存器和特殊功能寄存器是MCS-51單片機不可缺少的組成部分,下面介紹MCS-51的工作寄存器和特殊功能寄存器。

工作寄存器和特殊功能寄存器

工作寄存器

MCS-51有32個工作寄存器,分為4個區(或組),每個區有8個寄存器R0、Rl、R2、R3、R4、R5、R6和R7。每一時刻只有一個區工作。由程序狀態標志寄存器PSW中的RS1、RS0的值來決定當前的工作區:

RS1RS0=00 時,0區為工作區;
RS1RS0=01 時,1區為工作區;
RS1RS0=10時,2區為工作區;
RS1RS0=11時,3區為工作區。

這32個工作寄存器不但有名稱和區號,而且還有地址。00H〜1FH共32個存儲單元。

00H—07H為0區,分別對應R0—R7;
08H〜0FH為1區,分別對應R0〜R7;
10H〜17H為2區,分別對應R0〜R7;
18H〜1FH為3區,分別對應R0〜R7。

這32個存儲單元為內部數據存儲器(即片內RAM)的00H~1FH存儲空間,這與普通微機中的通用寄存器基本相同

所不同的是,普通微機的通用寄存器,不占有RAM空間,因此只有名稱,沒有對應的地址;

而MCS-51單片機的工作寄存器R0〜R7既可以用名稱也可以用它的地址來表示。

其中R1、R1寄存器除做工作寄存器外還常做間址尋址的地址指針。

特殊功能寄存器SFR

除程序計數器PC外,MCS-51單片機還有21個特殊功能寄存器,它們除有各自的名稱之外,還有唯一的地址,離散地分布在片內RAM中的80〜FFH共128個存儲單元中。在這128個存儲單元構成的SFR塊中,未被占用的單元不可使用

MCS-51單片機存儲器的結構

存儲器是存放程序和數據的部件。有些計算機將程序和數據共存於一個存儲器中,進行統一編址(馮·諾伊曼結構);而有些計算機則是將程序和數據分別存放於不同的存儲器中(哈佛結構),一個為程序存儲器,另一個為數據存儲器,從而對它們進行單獨編址。

通常通用計算機都釆用前者,而MCS-51單片機則采用后者(哈佛結構)

MCS-51單片機有4個物理存儲器:內部程序存儲器、外部程序存儲器、內部數據存儲器和外部數據存儲器

由於內部程序存儲器和外部程序存儲器進行了統一編址,所以,對用戶來講,只有3個邏輯存儲器:片內外統一編址的64KB的程序存儲器、128B的內部數據存儲器和64KB的外部數據存儲器。因為MCS-51存儲器釆用單獨編址,所以這3個存儲器地址有重疊部分,因此在訪問它們時,所釆用的指令形式不同。MCS-51的存儲器配置如圖2-9所示。

程序存儲空間

程序存儲器(即ROM)用來存放編好的程序和表格常數。這里所說的程序是用戶使用單片機為解決某個特定的任務而編制的程序。這樣將程序一次性地永久存放到ROM中,不僅省去了每次開機后的程序的重新裝入,還可以有效地防止因掉電或其他干擾而引起的程序丟失問題。這是單片機與通用計算機不同的一個顯著特點,也是單片機工作可靠性高的關鍵所在。

8051單片機內部有4KB的掩膜ROM,8751單片機內部有4KB的EPROM,而8031單片機內部沒有程序存儲器,必須外接程序存儲器。

數據存儲器空間

MCS-51系列單片機數據存儲器分內部數據存儲器(即片內RAM)和外部數據存儲器(即片外RAM)。

內部數據存儲器

MCS-51系列單片機有128B的內部數據存儲器。此存儲器共分為3部分:工作寄存器區、位尋址區和數據緩沖區,如圖2-10所示。

  1. 工作寄存器區。4個工作寄存器區占用內部數據存儲器的00H〜1FH共32個存儲單元,每區8個寄存器為R0〜R7,詳細內容上節己經敘述,此處不再重復。
  2. 位尋址區。內部數據存儲器的20H〜2FH存儲單元為位尋址區。利用位尋址區不但可以進行位操作,而且可以進行各種布爾運算。

位尋址區占用20H〜2FH共16個存儲單元,128位(16x8=128),這128位的位地址為00H~7FH,其中,每位占用1個位地址。

外部數據存儲器

由於MCS-51系列單片機內部數據存儲器只有128B,往往不夠用,這就需要擴展外部數據存儲器。

外部數據存儲器最多可擴至64KB, 16位數據指針寄存器DPTR作為間接尋址的寄存器的地址指針;其尋址范圍為64KB。當外擴的數據存儲器小於256B時,可用R0、R1作為間接尋址寄存器的地址指針。

內部數據存儲器和外部數據存儲器沒有釆用統一編址,而釆用的是獨立編址,它們的地址有重疊。盡管地址有重疊,但訪問內部數據存儲器和外部數據存儲器所用的指令形式不同。訪問內部數據存儲器用MOV指令,訪問外部數據存儲器用MOVX指令。因此,保證了對內部、外部數據存儲器的正確訪問。

時鍾電路與時序

時鍾電路

時鍾是單片機能協調工作的時間基准。時鍾電路有兩種形式,一種是內部方式時鍾電路;另一種是外部方式時鍾電路。

內部時鍾電路

內部方式時鍾電路由內部振盪器產生的振盪信號接至內部時鍾電路,由內部時鍾電路產生的二分頻信號構成了單片機的時鍾,並向CPU提供P1和P2兩相時鍾信號。

內部振盪器由內部反相放大器通過引腳XTAL1和XTAL2與外接的晶體以及電容C1和C2構成並聯諧振電路,產生晶體振盪信號,此晶振信號接至內部的時鍾電路,如圖2-11 (a)所示。

圖中的晶振頻率可在2〜12MHz之間。外接晶體時,電容C1和C2通常選30pF。對外接電容值沒有嚴格要求,但電容的大小會影響振盪頻率、振盪器的穩定性和起振的速度。在設計印制電路板時,應使晶體和電容盡可能與單片機靠近,以保證穩定可靠。

外部方式時鍾電路

外部方式時鍾電路是由外部振盪器產生振盪信號,通過電平轉換接至MCS-51單片機的XTAL2引腳,由XTAL2直接與內部方式時鍾電路相接,而XTAL1引腳接低電平,如圖2-11(b)所示。

機器周期、指令周期和指令時序

CPU的控制器實質上是一個復雜的同步時序電路,所有操作都是在時鍾信號的控制下進行的,每執行一條指令,控制器都要發出一系列相應的控制信號,而這些控制信號在時間上的相互關系就是CPU的時序。

CPU發出的時序控制信號分為兩類。一類是控制單片機內部各部分協調工作的時序控制信號;另一類是單片機對外部接口電路、外部RAM和ROM的時序控制信號。

后者構成單片機的外部控制總線。前一類控制信號屬於內部控制信號,用戶不直接接觸這些信號,只做一般性的了解即可;后一類控制信號是在組成一個系統時常常直接使用的控制信號(即外部控制總線),用戶必須詳細了解。談到CPU的時序,經常接觸到振盪周期、時鍾周期、機器周期和指令周期等基本概念,下面對它們進行介紹。

基本概念

  1. 振盪周期
    振盪周期指為單片機提供定時信號的振盪源的周期,即晶體振盪器直接產生的振盪信號的周期。
  2. 時鍾周期
    時鍾周期是振盪周期的兩倍,是對振盪頻率2分頻的信號。時鍾周期又稱狀態周期,用S表示。一個時鍾周期分為P1和P2兩個節拍。P1節拍完成算術邏輯操作,P2節拍完成內部寄存器間數據的傳遞。
  3. 機器周期
    一個機器周期由S1〜S6共6個時鍾周期組成。如果把一條指令的執行過程划分為幾個基本操作,則完成一個基本操作所需的時間稱為機器周期。
  4. 指令周期
    指令周期是執行一條指令所需的全部時間。MCS-51單片機的指令周期通常由1〜4個機器周期組成。

幾種典型的取指/執行時序

要弄清程序的執行過程,不妨了解指令的執行過程。執行一條指令包括將指令從ROM中取出,然后執行。從時序的概念來講,就是取指時序和執行時序。盡管MCS-51單片機有111條指令,但從取指/執行時序的角度來分析,只存在幾種形式的時序關系。下面介紹MCS-51幾種典型的取指/執行時序,如圖2-12所示。

  • OSC:振盪器信號。
  • S1-S6:機器周期的6個S狀態。
  • ALE:單片機的輸出信號。每個機器周期有兩次ALE有效,第一次發生在S1P2和S2P1期間;第二次發生在S4P2和S5P1期間。信號的有效寬度為一個S狀態。每次ALE有效時,CPU就進行一次取指操作,即在一個機器周期內,進行兩次取指操作
  1. 單字節單周期指令
    單字節單周期指令其指令的長度為一個字節,指令的執行時間為一個機器周期。單字節單周期指令在機器周期的S1狀態即第一次ALE有效時執行取指操作,讀取操作碼,在S4狀態即第二次ALE有效時還要讀取下一個操作碼,因為是單字節指令,所以第二次讀取的操作碼被丟掉,且程序計數PC不加1。在S6P2結束時完成此指令的全部操作,如圖2-12 (a)所示。 -

  2. 雙字節單周期指令
    雙字節單周期指令其指令的長度為兩個字節,指令的執行時間為一個機器周期。雙字節單周期指令與單字節單周期指令的區別是在一個機器周期內,雙字節單周期指令在一個周期內的兩次讀取操作均有效。二者相同之處是均在一個周期內完成指令的全部操作,如圖2-12 (b)所示。

  3. 單字節雙周期指令
    單字節雙周期指令其指令的長度為一個字節,指令的執行時間為兩個機器周期。單字節雙周期指令與單字節單周期指令的區別是執行時間增加了一個機器周期。而第一個機器周期的S4狀態和第二個機器周期的SI、S2狀態的讀取操作均被丟掉,且程序計數器均不增量。在第二個機器周期的S6P2狀態完成指令的全部操作,如圖2-12 (c)所示。

  4. 訪問外部數據存儲器指令MOVX時序
    MOVX是一條單字節雙周期指令。它與一般單字節雙周期指令的時序有些不同,它在第一個機器周期的S1狀態讀取操作碼,在S4狀態讀取下一個操作碼被丟掉,在S5狀態開始送出片外數據存儲器的地址后,進行讀/寫數據。此時就無信號輸出,因此在第二個機器周期的S1、S4狀態不產生取指操作;在第二個機器周期的S6P2狀態完成指令的全部操作,如圖2-12(d)所示。

復位和電路復位

復位

在單片機應用系統中,系統開始運行和重新啟動靠復位電路來實現,這種復位工作方式,叫復位方式。

當單片機的RST引腳為高電平時,單片機進入復位狀態,即回到初始狀態。單片機復位后,程序計數器PC的值為0000H,故復位后的程序入口地址為0000H

單片機復位后,不影響內部RAM中的內容,在復位有效期間,ALE、PSEN輸出高電平。只要RESET引腳保持高電平,單片機將循環復位。

復位電路

MCS-51單片機通常釆用上電復位按鈕復位兩種復位方式。

4)實用上電及按鈕復位電路
在上面介紹的復位電路中,干擾容易竄入復位端,引起內部某些寄存器錯誤復位。為了保證復位電路可靠工作,常在RC電路之后加史密特電路,再與RST端相接,如圖2-14所示。在實際的應用系統中,有些外圍芯片也需要復位。如果這些復位端的復位電平與單片機復位電平要求一致,可以直接與之相連。

單片機的工作方式

程序執行的方式

  1. 連續執行方式

    連續執行方式是MCS-51單片機的正常工作方式,單片機在這種方式下按照程序一步一步地完成程序所規定的任務。

    在此種方式下,CPU自始至終在不停地工作。程序的運行直接受程序計數器PC指揮。當單片機加電開始工作時,PC的值為0000H,這意味着單片機從0000H開始執行程序。0000H中存放的是一條跳轉指令,跳到程序的入口地址,再一條接一條地執行程序中的指令,直至程序結束。

  2. 單步執行方式

    單步執行方式是為用戶調試程序而設立的一種工作方式。在單片機開發系級的控制面板上,設有一個單步執行按鍵。每按一次單步執行按鍵,單片機就執行一條指令,帶且僅僅執行一條。這樣一條條地執行下去,就可發現程序中的錯誤,並將其定位在具體的語句上,方便修改。

節電工作方式

在很多情況下,單片機工作在供電困難的場合,如野外、井下、空中、無人值守的監測站和氣象監測站等,要求系統盡可能減少耗電。這就需要選擇低功耗的單片機以及低功耗的外圍芯片。另外,單片機還具有節電工作方式。

在MCS-51單片機中,有HMOS和CHMOS兩種制造工藝芯片。HMOS芯片運行功耗大,不宜使用在低功耗應用系統中,但它有一種掉電保護功能。節電工作方式是針對CHMOS制造工藝芯片而言的,如80C31BH、80C51BH和80C71BH等。

HMOS單片機的掉電工作方式

HMOS單片機在正常運行時,內部RAM由主電源Vcc供電。若RST/VPD端接有備用電源,則當Vcc掉電時,此備用電源可維持內部RAM中的數據不丟失。

當Vcc掉電時,掉電檢測電路檢測到掉電信號,通過INTO或INT1向CPU發出掉電中斷請求。CPU響應中斷請求后,執行掉電中斷服務程序,該程序把一些必須保護的信息轉到內部RAM中。這部分工作必須在主電源掉至下限工作電壓以前完成。當備用電源RST/VPD引腳端的電壓超過Vcc時,內部RAM將改用備用電源供電。當主電源恢復時,VPD仍需維持一段時間。等單片機完成復位后,備用電源才能撤出,轉而Vcc繼續供電。

CHMOS單片機的節電工作方式

CHMOS單片機的節電工作方式有等待和掉電兩種工作方式。這兩種工作方式都是由SFR中的電源控制寄存器PCON中相應位設定的。

  1. 電源控制寄存器PCON
    SFR中的電源控制寄存器PCON各位定義如下:

  2. 等待工作方式

    此時,IDL=0,封鎖了送入CPU的時鍾,CPU停止工作,進入等待狀態。而時鍾信號仍繼續供給中斷系統、串行口和定時器。此時,中斷系統、串行口和定時器仍保持工作狀態。

    CPU的狀態被全部保留下來,程序計數器PC、全部特殊功能寄存器SFR和內部RAM中的內容保持不變,ALE、PSEN均為高電平。此時,單片機功耗比程序執行方式時大大降低。

    因此,在程序執行進程中,當CPU在原地踏步或在執行不必要的程序時,應讓它進入等待工作狀態,一旦需要繼續工作,就讓它退出等待工作方式。

    退出等待工作方式有兩種方法:

    第一種方法是中斷退出。在等待工作方式下,由於中斷系統仍在工作,因此,在任何被允許的中斷請求有效時,都可使單片機退出等待工作方式(對IDL自動清零),並執行其中斷服務程序。中斷服務程序執行完后,返回主程序(返回到設置等待工作方式指令的下一條指令),繼續執行主程序。

    第二種方法是硬件復位退出。此時按一下復位按鈕,或在RST引腳上送一個脈寬大於兩個機器周期的脈沖,此時,PCON中的IDL被硬件清零,CPU重新開始執行用戶程序。PCON中的通用標志位GFO和GF1可用來指示中斷是在正常運行期間,還是在等待工作方式期間發生的。GFO和GF1可通過軟件進行置位、清零。

  3. 掉電工作方式

    將寄存器PCON中的PD置位,單片機便進入掉電工作方式。進入掉電工作方式后,片內振盪器停止工作。此時,CPU、中斷系統、串行口和定時器都停止工作,只有片內RAM和特殊功能寄存器SFR中的數據被保存起來。ALE和SPEN均為低電平。此時主電源Vcc的功耗降至最小。

    需要強調的是:當單片機進入掉電工作方式時,必須使外圍器件和設備均處於禁止狀態。如果必要,應斷開這些電路電源,以使整個系統的功耗降到最小。要退出掉電工作方式,只能用硬件復位。復位后,SFR中的內容將重新定義,但不改變片內RAM中的內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM