微電腦控制(8051單晶片)

2-3 8051 的內部結構

8051/8052單晶片微電腦的內部結構主要包括7個部份:如下

(1)中央處理單元(CPU)。

(2)內部程式記憶體(ROM)。

(3)內部資料記憶體(RAM)。

(4)振盪與時序電路。

(5)I/O埠。

(6)計時/計數器。

(7)中斷控制電路。

2.3.1 中央處理單元(CPU)

8051/8-52內部有一8位元的中央處理單元(CPU),主要包括4個
部份

  1. 程式計數器,(2)指令解碼器,(3)算術邏輯單元(ALU),
    (4)累加器。

(1)程式計數器

程式計數器是一個16位元的上數計數器,其內容記載著程式中
下一個待執行指令的位址。利用這個位址可以提取儲存在程式記
憶體中的指令,每當提取一個指令,則PC值即自動加1,當PC值
的內容上數到FFFFH後,則重返0000H開始,若805l的PC值超過
0FFFH時,CPU會自動切換到外部的ROM,繼續執行外部的程式,
而8052則要到達lFFFH,才會切換到外部的ROM。

(2)指令解碼器

在8051/8052中,每一個待執行的指令,被提取後,都需經過指令
解碼器解碼,而產生控制信號去驅動CPU內部的每一單元動作,完
成指令的工作。

(3)算術邏輯單元(ALU)

8051/8052的算術邏輯單元,可以執行8位元的算術運算與邏輯運
算。若運算結果超過8位元,則程式狀態字(Program Status Word:
PSW) 的進位旗標(CY)會被設定1。

8051/8052 ALU所能執行的運算,包含如下:

(1)加,減法運算(含進位或不含進位)

(2)乘,除法運算

(3)AND,OR,XOR三種邏輯運算

(4)加1或減l運算

(5)位元取補數運算

(6)左/右旋轉

(7)BCD十進制調整

(8)高4位元和低4位元互換

(9)特定位元檢查

以上運算均以指令的方式來操作

(4)、累加器(Accumulator,A 或 ACC)

累加器是8051-8052內部最重要的暫存器,ALU運算時所需的
運算元之一是來自累加器,運算之後的結果也會送至累加器。
另外,要送到I/O埠或記憶體的資料也是先存在累加器中。

2-3-2 程式記憶體(ROM)

程式記憶體,是用來存放程式的記憶體,屬於唯讀記憶體。也就是
8051/8052內部的ROM,對8751/8752而言是內部的EPROM。

(1)容量

8051或8751內部有4K ROM(0000H-0FFFH),因此外部可
再擴充60KEPROM,8052或8752內部有8K ROM(0000H-1FFFH)
,因此外部可再擴充56K EPROM,8031內部沒有ROM,因此外部
可擴充64K EPROM。
如圖2-3-1所示

 

 (2)如何讀取外部程式記憶體

如圖2-3-2,當8051/8052要讀取外部程式記憶體時,首先設
PSEN(程式儲存致能)輸出低電位訊號,去致能外部程式記憶體
,再來把EA腳接低電位(LO),強迫8051/8052只使用外部程式
記憶體,此時埠O(P0)便以多工方式輸出16條位址線的低8位元
的位址(AO-A7)訊號和8位元的資料(DO-D7)訊號,而埠2(P2)則
產生16條位址線的高8位元的位址(A8-A15)信號,再配合位址栓鎖
致能(Address Catcsh Enable,ALE),便能讀取外部程式記憶體。
當EA腳接高電位(HI)則只能讀取內部程式記憶體。

  

(3)中斷服務程式的進入位址

內部程式記憶體有七個重要的位址,這些位址是各種中斷服務程式
的進入點
,在寫8051的程式時,必須明瞭這個位址的意義。

(A)位址0000H

是系統重置(RESET)後,程式的進入點。當8051/8052接腳 9 的
RESET有一個高電位信號觸發時,CPU會自動到位址0000H去提
取指令開始執行。此時程式計數器(PC)重新設定為0000H,所以
我們的程式必定要從0000H開始存放。

(B)位址0003H

是外中斷0(INT0)服務程式的進入點,當8051/8052接腳
12 INT0接受到低電位或負緣觸發信號時,外部中斷 0 產生,則
CPU會自動0跳到位址0003H去執行中斷服務程式。

 

(C)位址000BH

是計時/計數器0產生溢位時,中斷服務程式的進入點,當8051/
8052內部的計時/計數器0產生溢位時(計數由FFFFH加 l變成
0000H),產生中斷,CPU會自動跳到至位址000BH去執行中斷
服務程式。

(D)位址0013H

是外中斷1(INT1)服務程式進入點,當8051/8052接腳 13 INT1
接受到低電位或負綠觸發信號時,外部中斷1產生,則CPU會自
動跳到位址0013H去執行中斷服務程式。

(E)位址001BH

是計時/計數器1產生溢位時,中斷服務程式的進入點,當8051/
8052內部的計時/計數器1產生溢位時(計數由FFFFH加l變成
0000H),產生中斷,CPU會自動跳到至位址001BH去執行中斷
服務程式。

(F)位址0023H

是串列埠(Serial Port)中斷服務程式進入點,當串列埠接收資料
或傳送資料完畢時,會產生中斷請求,則CPU會自動跳到位址
0023H去執行中斷服務程式。

(G)位址002BH

是計時/計數器2產生溢位時,中斷服務程式的進入點,當
8052內部的計時/計數器2產生溢位時(只存在於 8052),產生中斷,
CPU會自動跳到至位址002BH去執行中斷服務程式。

 

下一頁上一頁