單晶片套用實習報告

班級: 二技電一甲

姓名: 林 桀 民

學號: AD89017

相關知識

MCS-51是 Intel 公司所設計的8051系列單晶片總名稱 在MCS-51這個大家族裡較具知名度的編號有8051 8751 & 8031 實際上這些不同編號的單晶片都使用相同的核心CPU與指令及只是在製造IC時給予不同的周邊設計 分別賦予這些IC一個特別編號

主要功能:

MCS-51系列單晶片的主要功能列舉如下

專為控制套用所設計的8位CPU 

有完整的單位元邏輯運算指令,具有布爾運算能力

有32條(4個Port)雙向且每條都可以被單獨定址的I/O 

內部有兩個16位Timer/Counter 

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

可接受5箇中斷源且有2層優先權的中斷結構 

內部有時脈震盪器(最高頻率可到12MHz) 

內部有4K的程式記憶體(ROM),128byte數據存儲器(RAM)

可在外部擴充到64K程式記憶體(EPROM) 

可在外部擴充到64K數據存儲器(RAM)

8051內部結構方塊圖

8051接腳圖與功能(40):

若系統讀取外部程式,接低電位 /

EA/Vpp/Psen

高電位動作, 系統重置, PC回到0000H

RESET(9腳)

串列通訊輸出/入(P3.0, P3.1)

RXD/TXD

外部中斷輸入(P3.2, P3.3)

INT0/1

計時計數器的輸入(P3.4, P3.5)

T0/T1

8位I/O連線埠,外接記憶體可做地址線

P2.0~P2.7

地址閂鎖致能信號 

ALE/Prog

外部數據的讀取/寫入(P3.7, P3.8)

RD/WR

8位I/O連線埠, 

P1.0~P1.7

8位I/O連線埠,外接記憶體做數據地址線

P0.0~P0.7

時脈反相放大器輸出/入端, 接石英振盪器

XTAL1/2(19/18腳)

電源(5V)/ 接地

Vcc(40腳)/Vss(20腳)

功能

接腳

8051基本電路圖:

基本電路中有振盪電路及開機重置電路

振盪電路:8051晶片內部有一個振盪器,可以當作CPU的時脈,再設計時脈源時,若使用晶片內部的振盪器,只要在18、19腳兩腳間接振盪頻率範圍3.5M~12MHZ的石英振盪晶體或陶質共振器,並各自接20PF~50PF的電容。

重置電路:任何微電腦系統均有硬體重置功能,硬體重置主要用來確保CPU在開機時從程式的預定起始地址開始執行及當系統當機時使系統能重新開始,8051的重至信號輸入腳為第9腳,此輸入腳為高電位動作,且高電位至少要維持2個機械周期也就是24個振盪周期。開機時RST腳電位為高電位促使系統重置,利用電容充電效應使RST接腳電位降成低電位,8051完成重置動作固定到程式記憶體地址0000H開始執行。

8051記憶體介紹:

8051的記憶體包含程式記憶體(ROM)和數據存儲器(RAM)兩種,他們分別有不同的用途,程式記憶體的作用是在儲存所要執行的程式,而數據存儲器用來存放在程式執行過程中所產生的數據,由於8051讀取程式記憶體有專用控制線PSEN,所以程式記憶體和數據存儲器二者選址時完全獨立不相干。

程式記憶體(ROM)結構:

89C51的4K程式記憶體中,有下列幾個重要地址,若沒有用到, 就作一般程式記憶體使用,單晶片系統程式儲存在程式記憶體(ROM),一般8051/52提供4~8K Bytes程式記憶體。使用者將編輯好的程式,經過組譯(Assembler)、連結(Link)後,燒錄到單晶片的ROM。如果採用89C51晶片,可重複燒錄多次,每次燒錄可將前一次燒錄的程式自動清除。若採用8031晶片,由於本身沒有內建ROM,所以必須采外部擴充記憶體

TIMER0中斷服務程式地址

000BH

TIMER1中斷服務程式地址

001BH

UART串列通訊服務程式地址

0023H

功能

地址

INT1外部中斷服務程式地址

0013H

INT0外部中斷服務程式地址

0003H

RESET程式開始執行地址

0000H

程式記憶體配置圖

單晶片數據存儲器(RAM)結構:

8051的數據存儲器是隨機存取的,使用者隨時讀取或寫入數據,通常是用來當程式執行時存放數據的快取器。

SCON/SBUF

1 byte X2

(98H/99H)

PSW/ACC

1 byteX2 

(D0H/E0H)

特殊快取器(SFR)

128 byte

80H~FFH

功能

長度

地址

TCON/TMOD/TL/TH

6byte

(88H~8DH)

使用者直接定址可

設定SP建立堆疊區

80 byte

30H~7FH

個別位數據定址

8bit×16

20H~2FH

R0~R7四個快取器庫

8byte×4

00H~1FH

數據存儲器(RAM)是單晶片在執行程式時,儲存處理數據的地方。一般8051/52提供128~256 Bytes數據存儲器。其中又可將它們區分為下列幾項功能的快取器與記憶體區:

n[00~1FH]的32個位元組可分為四個快取器庫,分別為RB0、RB1、RB2、RB3。每個快取器庫有8個快取器,分別為R0、R1、R2、R3、R4、R5、R6、R7。

n [20~2FH] 的16位(2 BYTES)可做直接位定址,例如SETB 20H.0、CLR 20H.1。

n[30~7FH] 80個位元組的記憶體區又稱為”使用者RAM”,可以直接定址存取資料,同時也可以由使用者透過設定SP,自定堆疊數據區。

n[80~FFH]的128個位元組數據,8031/8051晶片沒有提供。在8031/8052晶片可做間接定址數據區,或是可直接定址的狀態快取器(SFR)使用。其中包括P0、P1、P2、P3連線埠的對應快取器,以及稍候我們作UART通訊功能會用到的SCON串列控制快取器、與定時器/計數器控制快取器…。