《單片機原理及應用》課件-第2章_第1頁
《單片機原理及應用》課件-第2章_第2頁
《單片機原理及應用》課件-第2章_第3頁
《單片機原理及應用》課件-第2章_第4頁
《單片機原理及應用》課件-第2章_第5頁
已閱讀5頁,還剩102頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2章單片機基本結構和工作原理2.1單片機的組成和內部結構2.2單片機的外部引腳及功能2.3單片機的存儲器結構2.4單片機的I/O電路2.5單片機的輔助電路2.6單片機的工作時序和工作方式思考與練習

2.1單片機的組成和內部結構

2.1.1單片機的組成

單片機是在一塊芯片中集成了CPU、RAM、ROM、定時器/計數器和I/O端口等多種基本功能部件,如圖2-1所示。單片機有基本型和增強型兩種,基本型的代表產品為8051,增強型的代表產品為8052,兩者的主要區別在于內部存儲器的大小和定時器/計數器的個數不同。圖2-1MCS51單片機的功能框圖

單片機內部通常包含下列一些部件:

·一個8位CPU;

·一個片內振蕩器及時鐘電路;

·4KBROM程序存儲器(8031沒有片內ROM,增強型為8KB);

·128BRAM數據存儲器(增強型為256B);

·兩個16位定時器/計數器(增強型為三個);

·可尋址64KB外部數據存儲器和64KB外部程序存儲器空間的控制電路;

·32條可編程的I/O口(四個8位并行I/O端口);

·一個可編程全雙工串行口;

·具有五個中斷源、兩個優先級嵌套中斷結構(增強型為六個中斷源)。

2.1.2單片機的內部邏輯結構

單片機的各功能部件通過內部總線連接在一起,其中包括算術邏輯單元(ALU)、累加器(ACC或A)、ROM、RAM、指令寄存器(IR)、程序計數器(PC)、定時器/計數器、I/O接口電路、程序狀態字寄存器(PSW)、堆棧指針(SP)、數據指針(DPTR)等,詳細的內部結構如圖2-2所示。圖2-2MCS51單片機的內部結構

2.1.3CPU的內部結構

單片機內部核心部分是一個8位高性能微處理器CPU,由運算器和控制器等部件組成(即圖2-2中虛線框內部分),它是單片機的頭腦和心臟,用以完成各種運算和控制操作。

1.運算器

運算器的主要功能是進行算術運算和邏輯運算、位運算、數據中轉與處理,并將操作結果的狀態信息送至程序狀態字寄存器中。運算器主要包括算術邏輯單元、累加器、B寄

存器、暫存寄存器、程序狀態字寄存器等。

(1)算術邏輯單元(ALU)。算術邏輯單元是運算器的核心部件,實質上是全加器,可以用于對數據進行加、減、乘、除等算術運算,還能對數據進行與、或、異或、循環、置1、清0等邏輯運算,并具有數據傳送、程序轉移等功能。ALU不能由程序讀寫。

(2)累加器(ACC或A)。累加器是一個8位寄存器。很多運算都要通過累加器提供操作數,多數運算結果也在ACC中存放。

(3)B寄存器。B寄存器是為乘法和除法而設置的。在進行乘法和除法運算時,A和B組成寄存器對,記為AB。在不執行乘法和除法運算時,B寄存器可以作為一個普通寄存

器使用。

(4)暫存寄存器(TMP1和TMP2)。暫存寄存器用于暫時存儲數據總線或其他寄存器送來的操作數,作為ALU的數據源,向ALU提供操作數。暫存寄存器不能由程序讀寫。

(5)程序狀態字寄存器(PSW)。程序狀態字寄存器是一個8位的專用寄存器,主要用于存放當前運算結果的狀態。

2.控制器

控制器的主要功能是識別指令,并根據指令的性質控制單片機內部的各個功能部件,使其協調工作。單片機執行指令嚴格受控制器的控制,它們從程序存儲器中讀取指令,送

入寄存器,然后進行譯碼,譯碼的結果與時序電路結合,發出操作信號。程序的執行就是不斷重復這一過程。

控制器包含程序計數器、指令寄存器、指令譯碼器、數據指針、堆棧指針、定時與控制邏輯電路等。

(1)程序計數器(PC)。程序計數器是一個16位專用寄存器,用于存放將要執行指令的地址,具有自動加1功能。PC沒有對應的寄存器,程序無法直接設置其中的數據。當CPU取指時,PC的內容首先送至內部地址總線上,然后從程序存儲器中取出指令,PC內容自動加1,以保證程序的順序執行。

(2)指令寄存器(IR)。指令寄存器是一個8位寄存器,用于寄存等待執行的指令。IR不能由程序讀寫。

(3)指令譯碼器(ID)。指令譯碼器對指令寄存器中的指令進行譯碼,產生執行該指令所需的一系列控制時序信號,以執行相應的操作。ID不能由程序讀寫。

(4)數據指針(DPTR)。數據指針(DPTR)是一個16位專用寄存器,通常在訪問外部數據存儲器時作地址指針使用。

(5)堆棧指針(SP)。堆棧指針(SP)是一個8位專用寄存器,用于存放堆棧棧頂的地址。

(6)定時與控制邏輯電路。定時與控制邏輯電路是控制器的核心部件之一,它的任務是產生各種控制信號,協調各功能部件的工作。單片機內部設有振蕩電路,只需外接石英晶體(晶振)和微調電容就可產生振蕩脈沖信號,經過二分頻后,生成時鐘信號,是單片機的基本節拍,單片機就是在這個節拍的控制下協調工作的。

2.1.4單片機的其他結構模塊

1.內部RAM

MCS51單片機的內部RAM用于存放單片機運行時的數據,其尋址范圍為256字節,其中低128字節可以作為內部隨機訪問存儲器,高128字節被特殊功能寄存器占用。

2.內部ROM

MCS-51單片機中的ROM主要用來存放程序,也可以存放一些常數和表格。單片機運行時,ROM中的內容是不能修改的。MCS-51系列單片機可分為內部無ROM型(如

8031)和內部有ROM型(如8051)兩種。在多數情況下,無論是8031還是8051,都必須根據實際需要外接EPROM型程序存儲器。而對于后來出現的,內部含有E2PROM或Flash

ROM類型程序存儲器的AT89CXX/AT89SXX系列單片機(如市面上最常見的AT89S51和AT89C51,內置4KB的FlashROM),通常不需要外部擴展程序存儲器。

3.定時器/計數器

MCS51單片機有兩個16位定時器/計數器,能夠實現精確定時和對外部脈沖信號計數,可以用于定時控制、延時,以及對外部事件進行計數和檢測等。

4.中斷

MCS51單片機有五個中斷源,即兩個外部中斷、兩個定時/計數中斷和一個串行通信中斷,同時有兩個中斷優先級。

5.串行通信口

MCS51單片機有一個采用通用異步工作方式的全雙工串行通信口(串行口),可以同時接收和發送數據。

6.I/O口

MCS-51單片機有四個8位的并行端口,分別為P0、P1、P2和P3,這些端口可以用于輸入或輸出,除了P1外,每個I/O口還有第二功能(詳見2.4節)。

7.內部總線

如圖2-2所示,單片機所有功能模塊都是通過內部總線連接起來的,從而構成一個完整的單片計算機系統。單片機內部的地址信號、數據信號和控制信號都是通過內部總線傳

送的。

2.2單片機的外部引腳及功能

MCS-51系列單片機根據不同的型號,其引腳數目和封裝形式也有很大差別。常見的有40引腳的雙列直插(DIP)封裝形式和44引腳的PLCC封裝形式,新型的單片機還有44引腳的TQFP封裝形式。圖2-3所示是兩種常見封裝形式的引腳配置圖。圖2-389C51芯片的引腳及封裝形式

2.2.1I/O引腳

I/O引腳即輸入/輸出端口,在某一時刻只能作為輸入口或輸出口使用,所以是準雙向口,MCS51單片機有P0(

P0.0~P0.7)、P1(P1.0~P1.7)、P2(P2.0~P2.7)、P3(P3.0~P3.7)四個8位準雙向輸入/輸出端口,每個端口都有鎖存器、輸出驅動器和輸入緩沖器。四個I/O端口都可作為輸入/輸出口使用,其中P0、P2和P3口還可以組成三總線,用于外圍芯片擴展(詳見第7章)。

2.2.2控制引腳

RST:復位輸入端,高電平有效。當振蕩器運行時,在

在RST引腳上出現兩個機器周期以上的高電平使單片機復位。

ALE/PROG:當訪問外部存儲器時,ALE(地址鎖存使能)的輸出用于鎖存地址的低位字節;當不訪問外部存儲器時,A

ALE端以固定頻率(為振蕩頻率的1/6)輸出脈沖信號,所以ALE可以用作其他器件的時鐘源。需要注意的是,每當訪問外部數據存儲器時,將跳過一個ALE脈沖。在對片內ROM編程(寫數據)時,該引腳的第二功能用于輸入編程脈沖PROG。

PSEN:外部程序存儲器取指令使能端,低電平有效。在訪問外部ROM時,該信號自動產生,每個機器周期輸出兩個脈沖。

EA/VPP:外部程序訪問允許端。當EA為高電平時,CPU從內部程序存儲器執行指令,當PC值超過片內程序存儲器最大地址范圍時,將自動轉向外部存儲器執行程序。當EA為低電平時,CPU只從外部程序存儲器執行指令。在片內ROM編程期間,該引腳的第二功能用于加12V的編程允許電源VPP。

2.2.3電源與晶振引腳

VCC:電源端,通常的電源電壓為+5V。

GND:接地端。

XTAL1:接外部晶振的一個引腳。在單片機內部,它是構成片內振蕩器反相放大器的輸入端。當采用外部時鐘時,該引腳接外部時鐘信號。

XTAL2:接外部晶振的另一個引腳。在單片機內部,它是構成片內振蕩器反相放大器的輸出端。當采用外部時鐘時,此引腳應懸空。

2.3單片機的存儲器結構

從物理上看,MCS-51單片機有4個存儲空間:內部程序存儲器、外部(片外)程序存儲器、內部數據存儲器、外部數據存儲器。從開發者的角度看,MCS-51單片機有3個存儲地址空間:芯片內外統一的程序存儲空間、內部數據存儲空間和外部數據存儲空間。

2.3.1程序存儲器

程序存儲器常用來存放程序、表格和常數,也稱為ROM。ROM以程序計數器(PC)作為地址指針,通過16位地址總線尋址,可尋址的地址空間為64KB,地址范圍為0000H~FFFFH。MCS51單片機可分為內部無ROM型(8031)和內部有ROM型(8051)兩種。

1.片內與片外程序存儲器的選擇

對于無內部ROM型的單片機,必須使用外部ROM,這時EA引腳必須接低電平。對于有內部ROM型的單片機,但不使用內部ROM,如8051內部是掩模ROM,一般不用此ROM,這時EA引腳也必須接低電平,外部ROM的地址從0000H開始。對于內部含有FlashROM的AT89C/AT89S系列單片機,可以使用內部ROM。如果要使用內部ROM,則則EA引腳必須接高電平,當程序執行超出內部存儲空間時,單片機會自動轉向外部空間,內部ROM的地址范圍是0000H~0FFFH,外部ROM的地址從1000H開始。無論是否使用內部ROM,其程序存儲器的地址結構和組織結構是一樣的,如圖2-4所示。圖2-4程序存儲器

2.程序存儲器低端的特殊單元

在程序存儲器中,前面若干個單元地址是中斷程序的入口地址,在編寫程序時要把這些單元預先進行處理(詳見第4章),如表2-1所示。其中0000H為單片機復位后執行的

第一條指令的存放地址。其余為中斷向量,即單片機中斷服務程序的第一條指令存放地址。

3.程序存儲器中的程序代碼及其觀察

在單片機應用系統開發過程中,程序存儲器中程序代碼(十六進制)可以在KeilμVision集成開發環境的觀察窗口中看到(詳見9.2.4小節),程序存儲器的映射關系及觀察界面如圖2-5所示。圖2-5程序存儲器映射關系及觀察界面

2.3.2數據存儲器

數據存儲器常用來存放數據,也稱為RAM。MCS-51單片機的數據存儲器無論在物理上或邏輯上都分為兩個地址空間:一個為內部數據存儲器(內部RAM),如圖2-6所示,

訪問內部RAM用MOV指令,使用8位地址,其尋址空間為256B;另一個為外部數據存儲器(外部RAM),如圖2-7所示,訪問外部RAM用MOVX指令,通常用數據指針DPTR來尋址,使用16位地址,其尋址空間為64KB。圖2-6內部數據存儲器圖2-7外部數據存儲器

內部RAM有最靈活的地址空間分割,它分成物理上獨立而又性質不同的幾個區:由00H~7FH(0~127)單元組成的低128字節地址空間的RAM區;由80H~FFH(128~255)單元組成的高128字節地址空間的特殊功能寄存器(又稱SFR)區。

內部RAM按使用方法分為以下幾個部分。

1.工作寄存器區

單片機對工作寄存器的操作具有指令數量多、程序代碼短、執行速度快的特點。在程序設計時,應盡可能地使用工作寄存器。內部RAM的00H~1FH區域為工作寄存器區。

工作寄存器一共有4組,每組又包括8個寄存器,記為R0~R7。4組工作寄存器可根據PSW(程序狀態字寄存器,詳見2.3.3小節)中的RS1、RS0選擇,如表2-2所示。

2.位尋址區

內部RAM的20H~2FH區域為位尋址區,見表2-3,這16個單元中的每一位都有一個位地址,位地址范圍為0H~7FH。位尋址區的每一位都可以視作軟件觸發器,可以

由程序直接進行位處理。通常把程序的各種狀態標志、位控制變量等設在位尋址區內。同樣,位尋址區的RAM單元也可以作為一般的數據存儲器按字節使用。

3.普通存儲區

內部RAM的30H~7FH區域為普通存儲區,只能按字節尋址,一般用于存放程序執行過程中的臨時數據。

4.堆棧區

在一個程序中,往往需要設定一個后進先出(或者先進后出)的緩沖區,用以保存某些重要數據和地址,這種后進先出的緩沖區稱為堆棧區。堆棧區原則上可以設在內部RAM的任意區域內,只需注意不要與已使用的RAM重疊。棧頂的位置由堆棧指針SP確定。

2.3.3特殊功能寄存器

單片機內的鎖存器、定時器、串行口數據緩沖器以及各種控制寄存器和狀態寄存器都是以特殊功能寄存器(SFR)形式出現的,它們分布在內部RAM的80H~FFH地址空間范

圍內。MCS-51基本型單片機有21個SFR,表2-4給出了MCS-51單片機的特殊功能寄存器的名稱和地址。

在特殊功能寄存器中,地址尾數是0或8的寄存器(比如ACC、PSW、SCON等)不僅可以按字節訪問,也可以按位訪問。特殊功能寄存器A、B、PSW、SP、DPTR等在RAM中的映射關系如圖2-8所示。圖2-8特殊功能寄存器在RAM中的映射及觀察界面

下面介紹幾個常用的特殊功能寄存器。

1.累加器

累加器是一個8位的寄存器,ACC表示地址(E0H),寄存器名稱為A。它通過暫存器與ALU相連,它是CPU工作中使用最頻繁的寄存器,用來存放一個操作數或中間結果。

累加器在指令中通常用“A”表示,在位操作和堆棧操作指令中則用“ACC”表示。MCS-51單片機中,只有一個累加器,大部分單操作數指令的操作數取自累加器,許多雙操作數指令的一個操作數也取自累加器,在變址尋址方式中累加器被作為變址寄存器使用。

2.程序狀態字寄存器

程序狀態字寄存器(PSW)是一個8位的專用寄存器,主要用于存放當前運算結果的狀態。地址為D0H,可以按位進行訪問,格式如下(第一行是位地址,第二行是位名稱,若不能按位操作,則第一行為空格。本書類似內容均采用此種表示方法):

其中F0、RS1、RS0可以用軟件設置(即通過編寫程序設置),Cy、Ac、OV和P由CPU決定(即由單片機內部自動設置)。

Cy(進位標志位):當有進位或借位時,Cy=1;否則,Cy=0。在執行某些算術和邏輯指令時,可以被硬件(指單片機內部的CPU,表示功能可以自動完成)或軟件(表示開發者編寫的程序)置1或清0。在布爾處理器中,它被作為位累加器使用。Cy在程序中一般用C表示。

Ac(輔助進位標志):當進行加減運算時,若低4位向高4位產生進位或借位,則由硬件將其置1,否則清0,Ac被用于BCD碼調整。

F0(用戶標志位):F0是開發者可以定義的一個狀態標記,用軟件來使它置1或清0。該標志位狀態一經設定,可由軟件檢測F0的值來控制程序執行的方向。

RS1、RS0(工作寄存器組選擇控制位):可以用軟件來置1或清0,以改變工作寄存器組在RAM中的區域。RS1、RS0與工作寄存器組的對應關系如表2-2所示。

OV(溢出標志位):當執行算術運算指令時,由硬件置1或清0,以指示溢出狀態。D6位和D7位不同時產生進位或借位時,OV=1,否則OV=0。

P(奇偶標志位):每次指令執行結束后,都由硬件來置1或清0,以表示累加器A中1的個數的奇偶性。若1的個數為奇數,則P置1,否則P清0。

3.數據指針

數據指針(DPTR)是一個16位的專用地址指針寄存器。編程時,DPTR既可以作為16位寄存器,也可以拆成兩個獨立的8位寄存器,即DPH(高8位字節)和DPL(低8位字節),分別占據83H和82H兩個地址。DPTR通常在訪問外部數據存儲器時作地址指針使用,用于存放外部數據存儲器的存儲單元地址。由于外部數據存儲器的尋址范圍為64KB,故把DPTR設計為16位,通過DPTR寄存器間接尋址方式可以訪問0000H~FFFFH全部64KB的外部數據存儲器空間。

4.堆棧指針

堆棧指針(SP)是一個8位寄存器,地址是81H,用于指示堆棧頂部在內部RAM中的位置。可以把SP看成一個地址指針,它總是指向堆棧頂端的存儲單元。MCS-51單片機

的堆棧是增量式的,即進棧時,SP的內容是增加的(SP指針先自動加1,然后向SP指針指向的存儲單元送入一個數),出棧時,SP的內容是減少的。單片機復位后,SP初始化默認值為07H,使得堆棧事實上由08H單元開始。

5.I/O端口的專用寄存器

P0~P3口寄存器實際上就是P0~P3(引腳)專用的鎖存器,用P0~P3表示。MCS51系列單片機沒有專門的端口操作指令,均采用統一的MOV指令,直接讀寫P0~P3,使用極為方便。

6.串行數據緩沖器

串行數據緩沖器(SBUF)用于存放待發或已接收到的數據,它實際上由兩個獨立的寄存器組成:一個是發送緩沖器,另一個是接收緩沖器。這兩個寄存器共享一個地址99H。

2.4單片機的I/O電路

MCS-51單片機本身提供了四個8位的并行接口,分別記為P0、P1、P2和P3,共有32根I/O口線。P0~P3都是準雙向端口,每一根I/O口線都能獨立地用作輸入或輸出(可以按位訪問)。I/O口作為輸入口之前,應先向端口寫1,以保證讀入正確的輸入狀態。單片機初始上電時,所有的I/O口均處于高電平,這時I/O口直接作為輸入口,則不需要向端口寫1。

2.4.1P0口

1.P0口的結構

P0口是一個多功能的8位雙向并行接口。P0口某位的內部電路結構如圖2-9所示,它包含一個輸出鎖存器(D觸發器)、兩個三態緩沖器(三態門1和三態門2)、一個輸出驅

動電路和一個輸出控制電路。圖2-9P0口的內部電路結構

2.P0口的功能

MCS-51單片機的P0口有兩種功能:通用I/O接口或地址/數據分時復用總線。

1)通用I/O接口

輸出:CPU內部發出控制電平0封鎖與門,使與門輸出為0,上方的場效應管V1處于截止狀態,因此輸出驅動級是漏極開路的開漏電路。這樣,當寫脈沖加在D觸發器的CLK端時,與內部數據總線相連的D端數據取反后出現在Q端,再經下方的場效應管V2反相,在P0引腳上出現的數據就正好是內部總線的數據。但要注意,由于P0口輸出驅動電路工作于開漏狀態,因此P0作為輸出口時需要外接上拉電阻。

輸入:P0口作為I/O口使用時的另一種情況是數據由引腳輸入,這時使用下方的三態輸入緩沖器(三態門2)直接讀端口引腳處的數據。以上操作稱為“讀信號”操作。

2)地址/數據分時復用總線

在單片機應用系統中,P0口作為地址/數據總線使用分為兩種情況。

一種是以P0引腳輸出地址/數據信息。這時,CPU內部發出控制信號1,打開與門,使得多路開關將內部地址/數據線經反相器與場效應管的柵極接通。若地址/數據信號為0,則該0信號一方面經與門使上方的場效應管V1截止,另一方面經反相器使下方的場效應管V2導通,從而使引腳輸出0信號;反之,若地址/數據信號為1,則上方的場效應管V1導通,下方的場效應管V2截止,引腳輸出1信號。顯然在上述情況中,不必外接上拉電阻。

另一種情況是P0口由與其連接的外部存儲器輸入數據。為了確保數據的正確輸入,CPU在訪問外部存儲器期間,會在讀入數據之前自動地向P0口的鎖存器寫入FFH。因此,對于用戶而言,當P0口作為地址/數據總線使用時,它是一個真正的雙向口。

3.負載能力

P0口輸出時能驅動8個LSTTL負載,即輸出電流不小于800μA。

2.4.2P1口

1.P1口的結構

圖2-10所示是P1口其中1位的結構原理圖,P1口由8個這樣的電路組成。圖中的鎖存器起輸出鎖存作用。場效應管與上拉電阻組成輸出驅動器,以增大負載能力。三態門

2是輸入緩沖器,三態門1在端口操作時使用。圖2-10P1口的內部電路結構

2.P1口的功能

MCS-51單片機的P1口只有一種功能———通用I/O接口。

P1口工作于輸出方式:此時數據data經內部總線送入鎖存器鎖存。如果某位的數據為1,則該位鎖存器輸出端Q=1,Q=0,使V1截止,從而在引腳P1.X上出現高電平;反之,如果數據為0,則Q=1,Q=0,使V1導通,P1.X上出現低電平。

P1口工作于輸入方式:控制器發出的讀信號打開三態門2,引腳P1.X上的數據經三態門2進入芯片的內部總線。在執行輸入操作時,如果鎖存器原來寄存的數據Q=0,那么由于Q=1,將使V1導通,引腳被始終鉗位在低電平上,不可能輸入高電平。為此,用作輸入前,必須先用輸出指令置Q=1,使V1截止。單片機復位后,P1口線的狀態都是高電平,可以直接用作輸入。

3.負載能力

P1口輸出時能驅動4個LSTTL負載,即輸出電流不小于400μA。

2.4.3P2口

1.P2口的結構

圖2-11所示是P2口其中1位的結構原理圖,P2口由8個這樣的電路組成。P2口的位結構比P1口多了一個轉換控制部分。圖2-11P2口的內部電路結構

2.P2口的功能

1)通用I/O接口

當P2口作為通用I/O口使用時,多路開關(MUX)打向鎖存器的輸出端Q,構成一個準雙向口。其功能與P1口相同,有輸入、輸出工作方式。

2)地址總線

P2口的另一種功能是作為系統擴展的地址總線口。當計算機從片外ROM中取指令,或者執行訪問片外RAM、片外ROM的指令時,多路開關打在右邊,P2口上出現程序計數器(PC)的高8位地址或數據指針(DPTR)的高8位地址(A7~A15,低8位地址由P0輸出)。上述情況下,鎖存器的內容不受影響。所以,取指或訪問外部存儲器結束后,由于模擬開關打向左邊,使輸出驅動器與鎖存器Q端相連,引腳上將恢復原來的數據。

一般來說,如果系統擴展了片外ROM,取指的操作將連續不斷,P2口不斷送出高8位地址,這時P2口就不應再作為通用I/O口使用。如果系統擴展了片外RAM,需要由P2口、P0口送出16位地址,則P2口也不再作為通用I/O接口。

3.負載能力

P2口的負載能力和P1口的相同,輸出時能驅動4個LSTTL輸入。

2.4.4P3口

1.P3口的結構

圖2-12所示是P3口其中1位的結構原理圖,P3口由8個這樣的電路組成。

圖中的鎖存器起輸出鎖存作用。P3口的8個鎖存器組成特殊功能寄存器,場效應管V1與上拉電阻組成輸出驅動器,以增大負載能力。三態門2是輸入緩沖器,三態門1在端

口操作時使用,與非門在端口作為第二功能時使用。圖2-12P3口的內部結構

2.P3口的功能

1)通用I/O接口

MCS51單片機的P3口為多功能口。當第二功能輸出端保持高電平時,與非門對鎖存器Q端是暢通的,這時,P3口實現第一功能,可作為通用I/O口使用,而且是一個準雙向I/O口,其功能與P1口的相同。

2)第二功能

P3口除了作為準雙向通用I/O接口使用外,每一根線還具有第二種功能,如表2-5所示。

3.負載能力

P3口的負載能力和P1口的相同,輸出時能驅動4個LSTTL負載。

2.5單片機的輔助電路

輔助電路是單片機正常工作的必要條件。單片機輔助電路主要有時鐘電路和復位電路。時鐘電路給單片機提供時鐘脈沖,保證單片機按照自身的時序自動工作起來;復位電路能對單片機進行初始化操作。對于AT89系列單片機,只要加入了正確的時鐘電路和復位電路,就能構成單片機最小系統,即保證單片機系統正常工作的最簡系統。

2.5.1時鐘電路

單片機是一個典型的時序電路器件,需要時鐘電路提供時鐘脈沖以保證其按照“節拍”正常工作。振蕩器產生的信號送到CPU,作為CPU的時鐘信號,驅動CPU產生執行指令

功能的機器周期。

MCS-51單片機片內有一個由高增益反相放大器所構成的振蕩電路,XTAL1和XTAL2分別為振蕩電路的輸入和輸出端,時鐘可以由內部方式產生或由外部方式產生。

1.內部方式

內部方式是通過外接石英晶體器件和內部振蕩電路共同形成時鐘電路。如圖2-13所示,在XTAL1和XTAL2引腳上外接定時元件,內部振蕩電路就產生自激振蕩。定時元

件通常采用石英晶體和電容組成的并聯諧振回路。晶振頻率可以在1.2~24MHz之間選擇,電容C1和C2的值為0~30pF,時鐘頻率基本上由晶振決定,電容的大小可起頻率微調作用。圖2-13使用內部振蕩器的晶振連接

2.外部方式

外部方式是把外部已有的時鐘信號引入單片機內,即把外部振蕩器的信號直接連到XTAL1端,XTAL2端懸空不用,如圖2-14所示。對外部時鐘信號無特殊要求,只要保證脈沖寬度,一般采用頻率低于12MHz的方波信號。采用外部方式的好處是,可以通過外部時鐘頻率控制來改變單片機的機器周期,以降低電磁干擾(EMI)。一般應用很少使用外部方式。圖2-14使用外部時鐘的連接

2.5.2復位電路和復位狀態

MCS-51系列單片機與其他微處理器一樣,在啟動時都需要復位,使CPU及系統各部件處于確定的初始狀態,并從初始狀態開始工作。在單片機系統設計并制作完成后,就要上電工作,在上電初期,由于單片機內部電壓不穩定,程序執行會混亂,因而要等到電壓穩定后才讓單片機進行工作。同時,在單片機工作期間,由于外界干擾或其他原因使系統工作不正常,就需要進行上電復位和手動復位操作。如果RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)或更多,則則CPU可響應并將系統復位。

1.復位電路

單片機的復位可以通過多種方式實現,對應著不同的復位電路。復位的方法有三種,即上電復位、手動開關復位和WDT(看門狗)復位。

1)上電復位電路

上電復位電路如圖2-15所示。只要在復位輸入引腳RST上接一個電容至VCC端,下接一個電阻到地即可。對于CMOS型單片機,由于在RST端內部有一個下拉電阻,故可將外部電阻去掉,而將外接電容減至1μF。圖2-15上電復位電路

2)手動復位電路

手動復位電路是上電復位和手動復位相結合的,主要用于單片機系統故障(死機)時的重新啟動。可以人為地在復位輸入端RST上加入高電平,一般采用的辦法是在RST端和

正電源VCC之間接一個按鈕。當按下按鈕時,VCC的+5V電平就會直接加到RST端,雖然按下按鈕的時間很短,但是也會使按鈕保持接通數十毫秒的時間,所以手動復位能滿足

復位的時間要求。手動復位電路如圖2-16所示。圖2-16手動復位電路

3)WDT復位電路

WDT復位電路(看門狗復位電路)是利用MAX705等WDT專用芯片來實現復位的電路,如圖2-17所示。WDT芯片內有一個不受外部控制的計數器,上電后即自動計數,一

旦計數溢出就發出對單片機的復位信號。為了不使計數器溢出,必須在計數器溢出前通過WDI口輸入清0信號,使計數器復位清0。圖2-17WDT復位電路

2.復位狀態

系統復位后,許多特殊功能寄存器都將恢復到初始狀態。各特殊功能寄存器的狀態如表2-6所示,其中×為隨機數。

手動復位或WDT復位后,片內RAM和片外RAM的內容保持不變,但在上電復位后為隨機數。

2.5.3單片機最小系統

最小應用系統是指能維持單片機運行的最簡單配置的系統。由于89C51單片機有片內ROM,所以其最小應用系統即為配有時鐘電路、復位電路和電源的單個單片機,如圖2-18所示。由于資源的限制,最小應用系統只能用作一些小型的控制單元。圖2-1880C51/89C51最小應用系統

2.6單片機的工作時序和工作方式

2.6.1時序的基本概念1.時鐘周期時鐘周期也稱振蕩周期,是指為單片機提供時鐘信號的振蕩源的周期或外部輸入時鐘的周期。考慮到絕大部分單片機應用系統是采用石英晶體作為振蕩源,一般來講,時鐘周期也就是1/fosc,fosc是石英晶體的振蕩頻率(簡稱晶振頻率)。

2.機器周期

完成一條指令的一個基本操作步驟所需的時間稱為機器周期。一個機器周期由6個狀態組成,即S1~S6,每個狀態又被分成兩個節拍P1和P2,如圖2-19所示。所以一個個機

器周期有112個振蕩周期期,可以依次表示為S1P1,S1P2,…,S6P1,S6P2。如果石英晶體振蕩頻率fosc=12MHz,則機器周期為(1/fosc)×12=1μs。單片機的某些單周期指令的執行時間就是一個機器周期。

3.指令周期

單片機CPU執行一條指令所需的時間稱為指令周期。MCS-51系列單片機執行不同指令所需時間也不盡相同,有單機器周期、雙機器周期、四機器周期三種指令周期。如:

“MOVA,#data”(把一個數寫入累加器中)就是一個單機器周期指令。附錄B中給出了每條指令的機器周期數。

2.6.2單片機的工作時序

MCS-51單片機指令按照執行時間分為三類:單機器周期指令(簡稱單周期指令)、雙機器周期指令(簡稱雙周期指令)和四機器周期指令(簡稱四周期指令)。而按照指令占用存

儲空間長度分,又有單字節指令、雙字節指令和三字節指令(詳見第3章)。所以有以下幾種情況:

·單字節單周期指令;.

·單字節雙周期指令;

·雙字節單周期指令;

·雙字節雙周期指令;

·三字節雙周期指令;

·單字節四周期指令。

圖2-19給出了89C51單片機的取指和執行指令的時序關系。這些內部時鐘信號不能從外部觀察到,我們用XTAL1振蕩信號作參考。從圖中可以看到,低8位地址的鎖存信號ALE在每個機器周期中兩次有效:一次在S1P2與S2P1期間,另一次在S4P2與S5P1期間。這說明在一個機器周期內有兩次取指操作。圖2-19單片機取指和執行指令的時序關系

2.6.3單片機的工作方式

1.正常工作方式

當單片機完成復位后,進入正常工作方式,這時單片機由VCC供電。正常工作方式是單片機自動完成任務的工作方式。正常工作過程是單片機執行程序的過程,即一條條執行

指令的過程。

2.掉電工作方式

MCS51系列單片機的SFR中有一個電源控制寄存器(PCON),地址為87H。PCON寄存器的控制格式如下:

PCON各位可以進行讀/寫操作。PCON不能進行位操作,只能按字節操作。

SMOD:波特率加倍位(用途見第6章)。

GF1、GF0:通用標志位。

PD:掉電方式控制位。當PD位為1時,啟用掉電方式。

IDL:待機方式控制

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論