8051是MCS-51係列單片機的典型產(chan) 品,我們(men) 以這一代表性的機型進行係統的講解。
8051單片機包含中央處理器、程序存儲(chu) 器(ROM)、數據存儲(chu) 器(RAM)、定時/計數器、並行接口、串行接口和中斷係統等幾大單元及數據總線、地址總線和控製總線等三大總線,現在我們(men) 分別加以說明:
·中央處理器:
中央處理器(CPU)是整個(ge) 單片機的核心部件,是8位數據寬度的處理器,能處理8位二進製數據或代碼,CPU負責控製、指揮和調度整個(ge) 單元係統協調的工作,完成運算和控製輸入輸出功能等操作。
·數據存儲(chu) 器(RAM):
8051內(nei) 部有128個(ge) 8位用戶數據存儲(chu) 單元和128個(ge) 專(zhuan) 用寄存器單元,它們(men) 是統一編址的,專(zhuan) 用寄存器隻能用於(yu) 存放控製指令數據,用戶隻能訪問,而不能用於(yu) 存放用戶數據,所以,用戶能使用的的RAM隻有128個(ge) ,可存放讀寫(xie) 的數據,運算的中間結果或用戶定義(yi) 的字型表。
·程序存儲(chu) 器(ROM):
8051共有4096個(ge) 8位掩膜ROM,用於(yu) 存放用戶程序,原始數據或表格。
·定時/計數器(ROM):
8051有兩(liang) 個(ge) 16位的可編程定時/計數器,以實現定時或計數產(chan) 生中斷用於(yu) 控製程序轉向。
·並行輸入輸出(I/O)口:
8051共有4組8位I/O口(P0、 P1、P2或P3),用於(yu) 對外部數據的傳(chuan) 輸。
·全雙工串行口:
8051內(nei) 置一個(ge) 全雙工串行通信口,用於(yu) 與(yu) 其它設備間的串行數據傳(chuan) 送,該串行口既可以用作異步通信收發器,也可以當同步移位器使用。
·中斷係統:
8051具備較完善的中斷功能,有兩(liang) 個(ge) 外中斷、兩(liang) 個(ge) 定時/計數器中斷和一個(ge) 串行中斷,可滿足不同的控製要求,並具有2級的優(you) 先級別選擇。
·時鍾電路:
8051內(nei) 置最高頻率達12MHz的時鍾電路,用於(yu) 產(chan) 生整個(ge) 單片機運行的脈衝(chong) 時序,但8051單片機需外置振蕩電容。
單片機的結構有兩(liang) 種類型,一種是程序存儲(chu) 器和數據存儲(chu) 器分開的形式,即哈佛(Harvard)結構,另一種是采用通用計算機廣泛使用的程序存儲(chu) 器與(yu) 數據存儲(chu) 器合二為(wei) 一的結構,即普林斯頓(Princeton)結構。INTEL的MCS-51係列單片機采用的是哈佛結構的形式,而後續產(chan) 品16位的MCS-96係列單片機則采用普林斯頓結構。
下圖是MCS-51係列單片機的內(nei) 部結構示意圖。
■ MCS-51的引腳說明:
MCS-51係列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結構,右圖是它們(men) 的引腳配置,40個(ge) 引腳中,正電源和地線兩(liang) 根,外置石英振蕩器的時鍾線兩(liang) 根,4組8位共32個(ge) I/O口,中斷口線與(yu) P3口線複用。現在我們(men) 對這些引腳的功能加以說明:
·Pin20:接地腳。
·Pin40:正電源腳,正常工作或對片內(nei) EPROM燒寫(xie) 程序時,接+5V電源。
·Pin19:時鍾XTAL1腳,片內(nei) 振蕩電路的輸入端。
·Pin18:時鍾XTAL2腳,片內(nei) 振蕩電路的輸出端。
8051的時鍾有兩(liang) 種方式,一種是片內(nei) 時鍾振蕩方式,但需在18和19腳外接石英晶體(ti) (2-12MHz)和振蕩電容,振蕩電容的值一般取10p-30p。另外一種是外部時鍾方式,即將XTAL1接地,外部時鍾信號從(cong) XTAL2腳輸入。
·輸入輸出(I/O)引腳:
Pin39-Pin32為(wei) P0.0-P0.7輸入輸出腳,Pin1-Pin1為(wei) P1.0-P1.7輸入輸出腳,Pin21-Pin28為(wei) P2.0-P2.7輸入輸出腳,Pin10-Pin17為(wei) P3.0-P3.7輸入輸出腳,這些輸入輸出腳的功能說明將在以下內(nei) 容闡述。
Pin9:RESET/Vpd複位信號複用腳,當8051通電,時鍾電路開始工作,在RESET引腳上出現24個(ge) 時鍾周期以上的高電平,係統即初始複位。初始化後,程序計數器PC指向0000H,P0-P3輸出口全部為(wei) 高電平,堆棧指鍾寫(xie) 入07H,其它專(zhuan) 用寄存器被清“0”。RESET由高電平下降為(wei) 低電平後,係統即從(cong) 0000H地址開始執行程序。然而,初始複位不改變RAM(包括工作寄存器R0-R7)的狀態,8051的初始態如下表:
特殊功能寄存器 | 初始態 | 特殊功能寄存器 | 初始態 |
ACC | 00H | B | 00H |
PSW | 00H | SP | 07H |
DPH | 00H | TH0 | 00H |
DPL | 00H | TL0 | 00H |
IP | xxx00000B | TH1 | 00H |
IE | 0xx00000B | TL1 | 00H |
TMOD | 00H | TCON | 00H |
SCON | xxxxxxxxB | SBUF | 00H |
P0-P3 | 1111111B | PCON | 0xxxxxxxB |
8051的複位方式可以是自動複位,也可以是手動複位,見下圖。此外,RESET/Vpd還是一複用腳,Vcc掉電期間,此腳可接上備用電源,以保證單片機內(nei) 部RAM的數據不丟(diu) 失。

·Pin30:ALE/當訪問外部程序器時,ALE(地址鎖存)的輸出用於(yu) 鎖存地址的低位字節。而訪問內(nei) 部程序存儲(chu) 器時,ALE端將有一個(ge) 1/6時鍾頻率的正脈衝(chong) 信號,這個(ge) 信號可以用於(yu) 識別單片機是否工作,也可以當作一個(ge) 時鍾向外輸出。更有一個(ge) 特點,當訪問外部程序存儲(chu) 器,ALE會(hui) 跳過一個(ge) 脈衝(chong) 。
如果單片機是EPROM,在編程其間,將用於(yu) 輸入編程脈衝(chong) 。
·Pin29:當訪問外部程序存儲(chu) 器時,此腳輸出負脈衝(chong) 選通信號,PC的16位地址數據將出現在P0和P2口上,外部程序存儲(chu) 器則把指令數據放到P0口上,由CPU讀入並執行。
·Pin31:EA/Vpp程序存儲(chu) 器的內(nei) 外部選通線,8051和8751單片機,內(nei) 置有4kB的程序存儲(chu) 器,當EA為(wei) 高電平並且程序地址小於(yu) 4kB時,讀取內(nei) 部程序存儲(chu) 器指令數據,而超過4kB地址則讀取外部指令數據。如EA為(wei) 低電平,則不管地址大小,一律讀取外部程序存儲(chu) 器指令。顯然,對內(nei) 部無程序存儲(chu) 器的8031,EA端必須接地。
在編程時,EA/Vpp腳還需加上21V的編程電壓。