89C51單片機結構框圖
2、片內數據存儲器(RAM128B/256B):用以存放可以讀/寫的數據,如運算的中間結果、最終結果以及欲顯示的數據等。
3、片內4kB程序存儲器Flash ROM(4KB):用以存放程序、一些原始數據和表格。
4、四個8位并行I/O(輸入/輸出)接口 P0~P3:每個口可以用作輸入,也可以用作輸出。
5、兩個或三個定時/計數器: 每個定時/計數器都可以設置成計數方式,用以 對 外部事件進行計數,也可以設置成定時方式,并可以根據計數或定時的結果 實現計算機控制
6、一個全雙工UART的串行I/O口:可實現單片機與單片機或其它微機之間串行通信。
8、五個中斷源的中斷控制系統。
9、具有節電工作方式:休閑方式及掉電方式。
在空閑方式中,CPU停止工作,而RAM、定時器/計數器、串行口和中斷系統都繼續工作。此時的電流可降到大約為正常工作方式的15%。在掉電方式中,片內振蕩器停止工作,由于時鐘被“凍結”,使一切功能都暫停,故只保存片內RAM中的內容,直到下一次硬件復位為止。這種方式下的電流可降到15 μA以下,最小可降到06 μA。
結構:
由中央處理單元(CPU)、存儲器(ROM及RAM)和I/O接口組成。89C51單片機內部結構如圖所示:
下面介紹的是mcs-51
MCS-51單片機存儲器的配置特點
① 內部集成了4K的程序存儲器ROM;
② 內部具有256B的數據存儲器RAM;
③ 可以外接64K的程序存儲器ROM和 數據存儲器RAM。
從物理結構的角度講,51單片機的存儲系統可以分為四個存儲空間:既片內ROM,RAM和片外ROM、RAM。
從邏輯上講(既編程的角度),51單片機的存儲系統實際上分為三個存儲空間。
1. 片內數據存儲器RAM;
2. 片外數據存儲器RAM;
3. 片內或外的程序存儲器ROM(由EA電平決定)。
1.程序存儲器ROM用于存放程序、常數或表格。
2.在51單片機中,由引腳 /EA 上的電平選擇內、外ROM:EA=1時,CPU執行片內的4KROM中的程序; EA=0時,CPU選擇片外ROM中的程序。
3.無論是使用片內還是使用片外ROM,程序的起始地址都是從ROM的0000H單元開始。
4.盡管系統可以同時具備片內ROM和外部ROM,但是在一般正常使用情況下,通過/EA的設定來選擇其一(或者使用內部ROM,或者使用外部ROM)。
5.如果EA=1(執行片內程序存儲器中程序時):如果程序計數器的指針PC值超過0FFFH(4K)時,單片機就要自動的轉向片外的ROM存儲器且從1000H單元開始執行程序(無法使用片外ROM的低4K空間)。
6.當程序超過4K時,有兩種使用程序存儲器ROM的方法:
①設置EA=0,使用外部ROM。從地址=0000H開始;
②設置EA=1,使用內部的4KROM和外部ROM(地址從1000H開始的單元)。
程序存儲器六個特殊的單元:
在ROM中有六個單元具有特定功能。
0000H單元:復位時程序計數器PC所指向的單元,因此用來 存放程序中的第一條指令;
0003H單元:外部中斷/INT0的矢量入口地址;
000BH單元:定時器T0溢出中斷的矢量入口地址;
0013H單元:外部中斷/INT1的矢量入口地址;
001BH單元:定時器T1的溢出中斷矢量入口地址;
0023H單元:串行口接收、傳送的中斷矢量入口地址。
矢量入口單元:在編寫中斷程序時,寫入對應的“跳板指令”
單片機第一條指令的兩個特征:
①存放在ROM的0000H單元;
②必須是“跳轉指令”以跳過下面的5個中斷矢量,轉到后面的真正的主程序入口0100H單元。
ORG 0000H LJMP 0100H
ORG 0100H
START: MOV A,#00H
∶ ∶
外部程序存儲器:
當單片機使用外ROM存儲器時(擴展系統),必須設定/EA=0,此時單片機的端口功能就要發生相應的改變:
① P0、P2作為外部ROM的地址和數據總線;
② 使用引腳/psen信號來選通外部ROM的數據三態輸出。
內部數據存儲器RAM:
無論在物理上還是邏輯上,系統中RAM 都可分為兩個獨立空間:內部和外部RAM。由不同的指令來訪問。
1.訪問內部數據存儲單元時,使用 MOV 指令;
2.訪問外部數據存儲器時,使用 MOVX 指令。內部RAM從功能上將256B空間分為二個不同的塊:
1.低128B的RAM塊;
2.高128B的SFR(Special Function Register )塊。
在低128B的RAM存儲單元中又可劃分為:
1.工作寄存器區;
2.位尋址區;
3.通用存儲數據的“便簽區”。
高128B的專用寄存器區SFR中僅僅使用了21寄存器(51系列),其它107個單元不能使用。
審核編輯:湯梓紅
評論
查看更多