正文

單片機的原理(多種單片機結(jié)構(gòu)和原理講解 )

shiyingbao

89C51單片機結(jié)構(gòu)框圖

1.一個8位微處理器CPU。

2.片內(nèi)數(shù)據(jù)存儲器(RAM128B/256B):用于存儲可讀寫的數(shù)據(jù),如運算的中間結(jié)果和最終結(jié)果以及要顯示的數(shù)據(jù)。

3.片內(nèi)4kB程序存儲器Flash ROM(4KB):用于存儲程序、一些原始數(shù)據(jù)和表格。

4.四個8位并行I/O(輸入/輸出)接口P0~P3:每個端口都可以作為輸入或輸出。

5.兩個或三個定時器/計數(shù)器:每個定時器/計數(shù)器可設(shè)置為計數(shù)模式以計數(shù)外部事件或定時模式,并可根據(jù)計數(shù)或定時結(jié)果由計算機控制。

6.一個全雙工UART的串行I/O口:可以實現(xiàn)單片機與單片機或其他微機之間的串行通信。

7.片內(nèi)振蕩器和時鐘產(chǎn)生電路:但需要外部晶體振蕩器和電容。

8.具有五個中斷源的中斷控制系統(tǒng)。

9.它有省電工作模式:休閑模式和關(guān)機模式。

在空空閑模式下,CPU停止工作,而RAM、定時器/計數(shù)器、串口和中斷系統(tǒng)都繼續(xù)工作。此時電流可以降到正常工作模式的15%左右。在掉電模式下,片內(nèi)振蕩器停止工作。因為時鐘被“凍結(jié)”,所有功能都被掛起,所以只有片內(nèi)RAM的內(nèi)容被保存,直到下一次硬件復位。這樣,電流可降至15 μA以下,最低可降至06μA。

結(jié)構(gòu):

它由中央處理器(CPU)、存儲器(ROM和RAM)和I/O接口組成。89C51單片機的內(nèi)部結(jié)構(gòu)如圖所示:

下面是mcs-51。

MCS-51單片機存儲器的配置特點

①內(nèi)部集成的4K程序存儲器ROM;

②內(nèi)部數(shù)據(jù)存儲器RAM用256B

③可外接64K程序存儲器ROM和數(shù)據(jù)存儲器ram。

從物理結(jié)構(gòu)上看,51單片機的存儲系統(tǒng)可分為四個存儲空室:片內(nèi)rom和RAM,片外ROM和RAM。

從邏輯上講(從編程的角度講),51單片機的存儲系統(tǒng)實際上分為三個存儲空室。

1.片上數(shù)據(jù)存儲器RAM;

2.片外數(shù)據(jù)存儲器RAM;

3.片內(nèi)或片外程序存儲器ROM(由EA水平?jīng)Q定)。

1.程序存儲器ROM用于存儲程序、常數(shù)或表格。

2.51單片機中,引腳/EA上的電平選擇的內(nèi)外ROM:EA = 1:EA = 1時,CPU執(zhí)行片上4KROM中的程序;當EA=0時,CPU選擇片外ROM中的程序。

3.無論使用片內(nèi)rom還是片外ROM,程序的起始地址都是從ROM的0000H單元開始。

4.雖然系統(tǒng)可以同時有片內(nèi)ROM和外ROM,但是在正常使用下,可以通過設(shè)置/EA選擇其中一個(內(nèi)部ROM或者外部ROM)。

5.如果EA=1(執(zhí)行片內(nèi)程序存儲器中的程序時):如果程序計數(shù)器的指針PC值超過0FFFH(4K),微控制器將自動轉(zhuǎn)向片外rom存儲器,從1000H單元開始執(zhí)行程序(片外ROM的低位4K空不能使用)。

6.當程序超過4K時,有兩種方法可以使用程序存儲器ROM:

①設(shè)置EA=0并使用外部ROM。從地址=0000H開始;

②設(shè)置EA=1,使用內(nèi)部4KROM和外部ROM(地址從1000H開始的單元)。

六個特殊的程序存儲器單元:

ROM中有六個具有特定功能的單元。

0000H單位:復位時程序計數(shù)器PC指向的單位,所以用來存儲程序中的第一條指令;

單元0003H:外部中斷/INT0的向量入口地址;

000BH單元:定時器T0溢出中斷的向量入口地址;

單元0013H:外部中斷/INT1的向量入口地址;

001BH單元:定時器T1的溢出中斷向量入口地址;

單元0023H:串口收發(fā)中斷向量的入口地址。

向量入口單元:寫中斷程序時,寫相應(yīng)的“跳板指令”

單片機第一條指令的兩個特點:

①存儲在ROM中的0000H單位;

②跳過后面五個中斷向量,到后面真正的主程序入口0100H單元,必須是“跳轉(zhuǎn)指令”。

ORG 0000H LJMP 0100H

組織0100H

開始:MOV A,#00H

∶ ∶

∶ ∶

∶ ∶

∶ ∶

目標

外部程序存儲器:

當MCU使用外部ROM存儲器(擴展系統(tǒng))時,必須設(shè)置/EA=0,MCU的端口功能會相應(yīng)改變:

① P0和P2作為外部ROM的地址和數(shù)據(jù)總線;

②使用pin /psen信號選通外部ROM的數(shù)據(jù)三態(tài)輸出。

內(nèi)部數(shù)據(jù)存儲器RAM:

物理上和邏輯上,系統(tǒng)中的RAM可以分為兩個獨立的空室:內(nèi)部RAM和外部RAM。由不同的指令訪問。

1.當訪問內(nèi)部數(shù)據(jù)存儲單元時,使用MOV指令;

2.當訪問外部數(shù)據(jù)存儲器時,使用MOVX指令。RAM在內(nèi)部將256B空分成兩個不同的模塊:

1.下部為128B的閘板;

2.SFR(特殊功能寄存器)模塊,高度為128B。

在低128B RAM存儲單元中,它可以分為:

1.工作寄存器區(qū);

2.位尋址區(qū);

3.用于一般數(shù)據(jù)存儲的“便箋區(qū)域”。

高128B的專用寄存器區(qū)SFR只使用了21個寄存器(51系列),其他107個單元無法使用。