8051是MCS-51系列單片機的典型產(chǎn)品,我們以這一代表性的機型進(jìn)行系統的講解。 8051單片機包含中央處理器、程序存儲器(ROM)、數據存儲器(RAM)、定時(shí)/計數器、并行接口、串行接口和中斷系統等幾大單元及數據總線(xiàn)、地址總線(xiàn)和控制總線(xiàn)等三大總線(xiàn),現在我們分別加以說(shuō)明: ·中央處理器: 中央處理器(CPU)是整個(gè)單片機的核心部件,是8位數據寬度的處理器,能處理8位二進(jìn)制數據或代碼,CPU負責控制、指揮和調度整個(gè)單元系統協(xié)調的工作,完成運算和控制輸入輸出功能等操作。 ·數據存儲器(RAM): 8051內部有128個(gè)8位用戶(hù)數據存儲單元和128個(gè)專(zhuān)用寄存器單元,它們是統一編址的,專(zhuān)用寄存器只能用于存放控制指令數據,用戶(hù)只能訪(fǎng)問(wèn),而不能用于存放用戶(hù)數據,所以,用戶(hù)能使用的的RAM只有128個(gè),可存放讀寫(xiě)的數據,運算的中間結果或用戶(hù)定義的字型表。 ·程序存儲器(ROM): 8051共有4096個(gè)8位掩膜ROM,用于存放用戶(hù)程序,原始數據或表格。 ·定時(shí)/計數器(ROM): 8051有兩個(gè)16位的可編程定時(shí)/計數器,以實(shí)現定時(shí)或計數產(chǎn)生中斷用于控制程序轉向。 ·并行輸入輸出(I/O)口: 8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數據的傳輸。 ·全雙工串行口: 8051內置一個(gè)全雙工串行通信口,用于與其它設備間的串行數據傳送,該串行口既可以用作異步通信收發(fā)器,也可以當同步移位器使用。 ·中斷系統: 8051具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計數器中斷和一個(gè)串行中斷,可滿(mǎn)足不同的控制要求,并具有2級的優(yōu)先級別選擇。 ·時(shí)鐘電路: 8051內置最高頻率達12MHz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機運行的脈沖時(shí)序,但8051單片機需外置振蕩電容。 單片機的結構有兩種類(lèi)型,一種是程序存儲器和數據存儲器分開(kāi)的形式,即哈佛(Harvard)結構,另一種是采用通用計算機廣泛使用的程序存儲器與數據存儲器合二為一的結構,即普林斯頓(Princeton)結構。INTEL的MCS-51系列單片機采用的是哈佛結構的形式,而后續產(chǎn)品16位的MCS-96系列單片機則采用普林斯頓結構。 下圖是MCS-51系列單片機的內部結構示意圖。 ■ MCS-51的引腳說(shuō)明: MCS-51系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結構,右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線(xiàn)兩根,外置石英振蕩器的時(shí)鐘線(xiàn)兩根,4組8位共32個(gè)I/O口,中斷口線(xiàn)與P3口線(xiàn)復用,F在我們對這些引腳的功能加以說(shuō)明: ·Pin20:接地腳。 ·Pin40:正電源腳,正常工作或對片內EPROM燒寫(xiě)程序時(shí),接+5V電源。 ·Pin19:時(shí)鐘XTAL1腳,片內振蕩電路的輸入端。 ·Pin18:時(shí)鐘XTAL2腳,片內振蕩電路的輸出端。 8051的時(shí)鐘有兩種方式,一種是片內時(shí)鐘振蕩方式,但需在18和19腳外接石英晶體(2-12MHz)和振蕩電容,振蕩電容的值一般取10p-30p。另外一種是外部時(shí)鐘方式,即將XTAL1接地,外部時(shí)鐘信號從XTAL2腳輸入。 ·輸入輸出(I/O)引腳: Pin39-Pin32為P0.0-P0.7輸入輸出腳,Pin1-Pin1為P1.0-P1.7輸入輸出腳,Pin21-Pin28為P2.0-P2.7輸入輸出腳,Pin10-Pin17為P3.0-P3.7輸入輸出腳,這些輸入輸出腳的功能說(shuō)明將在以下內容闡述。 Pin9:RESET/Vpd復位信號復用腳,當8051通電,時(shí)鐘電路開(kāi)始工作,在RESET引腳上出現24個(gè)時(shí)鐘周期以上的高電平,系統即初始復位。初始化后,程序計數器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指鐘寫(xiě)入07H,其它專(zhuān)用寄存器被清“0”。RESET由高電平下降為低電平后,系統即從0000H地址開(kāi)始執行程序。然而,初始復位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)如下表: 8051的復位方式可以是自動(dòng)復位,也可以是手動(dòng)復位,見(jiàn)下圖。此外,RESET/Vpd還是一復用腳,Vcc掉電期間,此腳可接上備用電源,以保證單片機內部RAM的數據不丟失。 ·Pin30:ALE/當訪(fǎng)問(wèn)外部程序器時(shí),ALE(地址鎖存)的輸出用于鎖存地址的低位字節。而訪(fǎng)問(wèn)內部程序存儲器時(shí),ALE端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號,這個(gè)信號可以用于識別單片機是否工作,也可以當作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當訪(fǎng)問(wèn)外部程序存儲器,ALE會(huì )跳過(guò)一個(gè)脈沖。 如果單片機是EPROM,在編程其間,將用于輸入編程脈沖。 ·Pin29:當訪(fǎng)問(wèn)外部程序存儲器時(shí),此腳輸出負脈沖選通信號,PC的16位地址數據將出現在P0和P2口上,外部程序存儲器則把指令數據放到P0口上,由CPU讀入并執行。 ·Pin31:EA/Vpp程序存儲器的內外部選通線(xiàn),8051和8751單片機,內置有4kB的程序存儲器,當EA為高電平并且程序地址小于4kB時(shí),讀取內部程序存儲器指令數據,而超過(guò)4kB地址則讀取外部指令數據。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對內部無(wú)程序存儲器的8031,EA端必須接地。 在編程時(shí),EA/Vpp腳還需加上21V的編程電壓。 |