• 沒有找到結果。

第二章 8051 概述

2.2 MCS-51 的接腳

2.3.1 程式記憶體

2.3.3 內部資料記憶體 2.4 MCS-51 的中斷結構

2.4.1 中斷致能與優先權結構 2.4.2 中斷如何動作

-2-

2.1 MCS-51 簡介

MCS-51 是 Intel 公司所設計的 8051 系列單晶片的總稱,較具知名 度的編號有 8051、8751 和 8031,這些不同的單晶片都使用相同的核 心 CPU 與指令集,只是能在靠製造 IC 時給予不同的周邊設計,分別

6. 有一個通信用的全雙工 UART(串列 I/O)

7. 可接受 5 個中斷源,且有 2 層優先權的中斷結構 8. 內部有時脈振盪器(最高頻率可到 12MHz)

9. 內部有 4K 的程式記憶體

10. 可在外部擴充到 64K 程式記憶體(EPROM) 11. 可在外部擴充 64K 資料記憶體(RAM)

圖 2-2 MCS-51 的內部結構

-4-

2.2 MCS-51 的接腳

圖 2-2 MCS-51 的 40Pin DIP 包裝的接腳圖

第 1~9 腳(P1.0~P1.7):

這 8 支角是 8051 的 I/O port,稱為 PI。第一支腳(P1.0)是 LSB,第 8 支腳(P1.7)是 MSB。如果是 8052(8032 或 8752)時,P1.0 又可當作 Timer2 的外部脈波輸入腳,P1.1 又當作 T2EX,可當作另外一個外 部中斷觸發輸入腳。P1 上的每支腳都可推動 4 個 LS TTL。

-5-

9 腳(RESET):

8051 的重置(RESET)輸入腳,當這支腳由外部輸入 High(+5V)的信 號時,8051 就被重置,8051 被重置後就從位址 0000H 開始執行程 式。且特殊功能暫存器(SFR)裡的所有暫存器都會被設成已知狀態。

10~17 腳(P3.0~P3.7):

這 8 支腳是 8051 的 I/O port,稱為 P3。第 10 支腳(P3.0)為 LSB,

第 17 支腳(P3.7)為 MSB。P3 裡的每支 I/O 腳除了可以當作單純的 輸入/輸出使用外,也當作 8051 內部的某些週邊與外界溝通個 I/O 腳。例如 P3.0 和 P3.1 接腳的另外一個名稱為 RxD 和 TxD,當 8051 內部的 UART 被軟體啟動後,UART 會將串列資料從 TxD 腳輸出,而 UART 也接收由外部送進來的串列信號。INT0 和 INT1 是 8051 的兩 個外部中斷輸入部。T0 是 Timer0 的外部脈波輸入腳。T1 是 Timer1 的外部脈波輸入腳。WR,RD,當您再 8051 的外部擴充資料記憶體(RAM) 時,這兩條線是控制寫與讀的信號。P3 上的每一隻 I/O 腳都可以做 兩種用途。那 8051 怎麼知道 P3 上的某支腳是當 I/O 或當另一種用 途,例如您要使用 UART 時您將第 10 腳看成 RxD,第 11 腳看成 TxD 加以使用就可以了。但是有一點必須特別注意,那就是當作其他功能 (不當使用)使用的那支腳的內部栓鎖器的內容必須設為 1,其他的 -6-

功能(如 TxD,RxD,RD,ER,.等)才會有作用。P3 上的每支 I/O 腳 都可推動 4 個 LS TTL。

18~19 腳(XTAL2,XTAL1):

這兩支腳是 8051 內部時脈振盪器的輸入端,您可以在這兩支腳上跨 街一個 12MHz 的工作頻率,供內部使用。8051 會根據這個速度工作。

若未特別註明,這個振盪器的工作頻率是在 1MHz~12MHz 之間的任何 一個。如果線路板上已有振盪器,那這個振盪器所產生的脈波(Clock) 也可以直接輸入給 8051 使用。這個外部送給 8051 使用的脈波是從 第 18 腳(XTAL2)輸入,而 19 腳(XTAL1)必須接地,以上的接法是 CMOS 的 8051(如 8051AH)。如果您是使用 CMOS 的 8051(80C51,80C31 等),

外部的脈波必須從 19 腳(XTAL1)輸入而 18 腳空接,這個差別必須特 別注意。

40,20 腳(Vcc,Vss):

這是 8051 的電源輸入端,40 腳接電源的正端的 20 腳接地。

電源規格是 5V +/- 10﹪。

21~28 腳(P2.0~P2.7):

這 8 支腳是 8052 的 I/O port,稱為 P2,P2.0 為 LSB,P2.7 為 MSB。

P2 除了當作 I/O 使用之外。如果您在 8051 的外面擴充程式記憶體 -7-

或資料記憶體時,P2 就變成 8051 的位址匯流排的高位元組(即 A8~A15),此時 P2 就不能當作 I/O 使用。P2 上的每支 I/O 腳可推 動 4 個 LS TTL。

39~32 腳(P0.0~P0.7):

這 8 支腳也是 8051 的 I/O port,稱為 P0 其中 P0.0 為 LSB,P0.7 為 MSB。如果將 P0 當作 I/O 使用時必須特別注意 P0 的輸出型態是 Open Drain,其他三個 I/O port(P1,P2,P3)內部有 pull high 電路。P0 除了當作 I/O 使用外,如果您在 8051 的外面擴充程式記憶體或資料 記憶體時,P0 就當作位址匯流排(A0~A7)和資料匯流排(D0~D7)多工 使用。您必須再外部加一個 8 位元栓鎖器將位址匯流排從 PC 上分離 出來,這個 A0~A7 與 P2 所提供的 A8~A15 合成一個 16 位元的位址 匯流排,因此 8051 可以在外部定址到 64K 的記憶體。

29 腳(PSEN):

這支腳是 8051 用來讀取放在外部程式記憶體的指令時所用的讀去信 號,通常這支腳是接到 EPROM 的 OE 腳。8051 分別致能放在外部的 EPROM(程式記憶體)與 RAM 資料記憶體是兩塊獨立的記憶體,且這兩 塊記憶體都可以接到 64K,因此我們說 8051 的定址能力可達 128K。

30 腳(ALE):

-8-

這支腳的名稱為”位址拴住致能” (Address Latch Enable,簡稱 ALE),8051 可以使用這支腳觸發外部的 8 位元栓鎖器,將 P0 上的 位址匯流排信號(A0~A7)鎖入栓鎖器中。

31 腳(EA):

這是一支輸入腳,當 EA=0 時,8051 一律執行外部程式記憶體裡的 程式,因此 8051 內部的 4K 程式記憶體就沒有用了。因此如果您要 使用內部的程式記憶體時,一定要將 EA 接+5V。因為 8031(或 8032) 內部沒有程式記憶體,它的 EA 必須接地。

-9-

2.3 8051 的記憶體結構

8051 的記憶體可以分成 3 塊獨立的記憶體,如圖所示:

圖 2-3 8051 記憶體映像圖

-10-

2.3.1 程式記憶體

程式記憶體是存放 8051 所執行的程式碼的地方,CPU 會主動到 這塊記憶體讀取要執行的指令碼,因此這塊記憶體的資料只能被 CPU 讀取,而無法寫入資料。

程式記憶體的空間最多可達 64K byte,在 8051,8751 裡已有最 低的 4K byte(0000H ~ 0FFFH),因此在外部可再擴充 60K byte EPROM;

而 8031H,8032H 內部沒有 ROM,因此外部可擴充 64K byte EPROM;

8052AH,8752AH 內部已有 8K byte 的程式記憶體,因此可以在外部 擴充 56K byte EPROM。8051 讀取程式記憶體的激發信號是 PSEN。

8051 是如何決定程式記憶體的前面 4K byte(8052 是 8K)要到內 部或到外接程式記憶體去讀取指令呢?這就是 8051 的 EA 腳(第 31 腳)的功能,如果我們將 EA 腳接地(邏輯 0),則 8051 會將前面 4K 移 到外部,也就是說原來在 8051 內部的 4K byte 的程式記憶體無效,

就算將程式燒到內部的 4K byte 程式記憶體裡,8051 也看不到。

如果將 EA 接到+5V(邏輯 1),則 8051 就會到內部去讀去前面 4K 的程式記憶體,超過 4K 的部分(1000H~FFFFH),8051 會自動切換到 外部來讀取。因此 EA 接腳是決定內部程式記憶體是否有效的控制 腳,當 EA=0,內部程式記憶體無效;當 EA=1 內部程式記憶體有效。

-11-

例如 8031AH,8032AH 內部沒有 ROM,因此使用 8031AH 或 8032AH 時,

必須將它的 EA 腳接地。

在寫 8051 的程式時,必須知道幾個程式記憶體的特殊位址,這 些位址是各種中斷服務程式的進入點,表 2 列出了各種中斷的進入 點位址,其中位址 0000H 是重置(RESET)的進入點,這意思是說,8051 被重置時,從位址 0000H 開始執行程式。

圖 2-4 ISR(中斷服務程式)的進入點

中斷源 向量位址

RESET 0000h

TNT0 0003h

Timer0 000Bh

INT1 001Bh

Timer1 001Bh

UART 0023h

Timer2 002Bh

-12-

相關文件