STC15F2K61S2存儲結構
摘要
STC15F2K61S2的存儲結構由程序存儲器和數據存儲器構成。該單片機的程序存儲器和數據存儲器是獨立編址的,特殊功能寄存器與高128B RAM共用相同的地址范圍,都使用 80H~FFH,特殊功能寄存器必須用直接尋址指令訪問。
程序存儲器地址空間
程序存儲器用於存放用戶程序、數據和表格等信息。STC15F2K61S2有 61KB 的Flash程序存儲空間,不能訪問外部程序存儲器。

單片機復位后,程序計數器(PC)的內容為0000H,從0000H單元開始執行程序。另外中斷服務程序的入口地址(中斷向量)也位於程序存儲單元。在程序存儲器中,每個中斷都有一個固定的入口地址,當中斷發生並得到響應后,單片機就會自動跳轉到相應的中斷入口去執行程序。由於相鄰中斷入口地址的間隔區間(8B)有限,一般情況下無法完整的保存中斷服務程序,因此,一般在中斷響應的地址區域存放一條無條件轉移指令,指向真正存放中斷服務程序的空間去執行。
數據存儲器地址空間
數據存儲器空間分為內部RAM和內部擴展RAM,也可外部擴展64KB數據存儲器。特殊功能寄存器與高128B RAM共用相同的地址范圍,實際使用不同的尋址方式加以區分。
STC15F2K61S2內部集成的總SRAM大小為:2K(256B <idata>+1792B <xdata>),內部擴展RAM空間 1792B。內部集成的RAM可用來存放程序執行的中間結果和過程數據。
內部RAM
內部RAM共256B,可分為三個部分:低128字節RAM(與傳統8051兼容)、高128字節及特殊功能寄存器。低128字節的數據存儲器既可以直接尋址也可以間接尋址。特殊功能寄存器與高128B RAM共用相同的地址范圍,但是物理上是獨立的。高128字節RAM只能間接尋址,特殊功能寄存器只可直接尋址。
地址范圍:00H~FFH。

工作寄存器組區從00H~1FH共32B單元,分為4組(每一組稱為一個寄存器組),每組包含8個8位的工作寄存器,編號R0~R7,但屬於不同的物理空間。通過使用工作寄存器組,可以提高運算速度。R0~R7是常用的寄存器,為滿足使用故而提供4組。PSW決定使用當前工作寄存器組。
可位尋址區的地址從20H~2FH共16個字節單元。可位尋址區即可按字節存取也可按位單獨存取,共128位,對應地址00H~7FH,該地址指向的是位,而低128位的00H~7FH指向的是字節單元,在程序中使用不同的指令區分。
用戶RAM和堆棧區在內部RAM的30H~FFH。一個8位的堆棧指針(SP),用於指向堆棧區,堆棧是向上生長的,數據壓入堆棧之后,SP內容增大。單片機復位后,堆棧指針SP為07H,指向工作寄存器組0中的R7,因此用戶初始化程序都應對SP設置初值一般在80H之后為宜。
內部擴展RAM
STC15F2K61S2內部擴展了 1792B RAM,地址范圍0000H~06FFH。訪問內部擴展RAM的方法和傳統8051單片機訪問外部擴展RAM相同,但是不影響P0口(數據總線和高八位地址總線)、P2口(低八位地址總線)、\({\overline{\text WR}}\) / P4.2、\({\overline{\text RD}}\) / P4.4和ALE/P4.5。
訪問內部擴展RAM方式:
MOVX @DPTR or MOVX @Ri //匯編
[Type] xdata [arg] //C51
內部擴展RAM受輔助功能寄存器AUXR(8EH)中的EXTRAM位控制。

特殊功能寄存器
特殊功能寄存器是用來對片內各功能模塊進行管理、控制、監視的控制寄存器和狀態寄存器,是一個特殊功能的RAM區。

常用特殊功能寄存器
1.程序計數器(PC)
程序計數器PC在物理上是獨立的,不屬於SFR。PC字長16位,專門用來控制指令執行順序的寄存器。單片機上電或復位后,PC=0000H。
2.累加器(ACC)
累加器常用於存放參加算數或邏輯運算的操作數及運算結果。
3.B寄存器
B寄存器在乘法和除法運算中需與累加器A配合使用。MUL AB指令把累加器A和寄存器B中的8位無符號數相乘,所得16位乘積的低字節存放在A中,高字節存放在B中。DIV AB指令用B除以A,整數商放在A中,余數存放在B中。寄存器B還可以用作通用暫存寄存器。
4.程序狀態字(PSW)寄存器

AC——半進位標志:或稱輔助進位標志。如果低4位向高4位進位或者借位,其置1
F0——用戶標志位:軟件可置0或1,可測定F0的狀態決定程序的轉移
RS1,RS0——工作寄存器選擇位
OV——溢出標志位:算數運算影響該位
P——累加器A的奇偶標志位
5.堆棧指針(SP)寄存器
SP為8位專用寄存器。它指示出堆棧頂部在內部RAM塊中的位置。系統復位后,SP初始化位07H,使得堆棧事實上由08H單元開始。用戶自定義設置范圍應在80H之后。堆棧向上生長。SP的內容可由硬件改變(中斷)和軟件設置。
6.數據指針(DPTR)寄存器
DPTR是16位專用寄存器,由DPL(低8位,地址82H)和DPH(高8位,地址83H)組成.DPTR是唯一可以直接進行16位操作的寄存器也可分別對DPL和DPH進行操作。主要作用:1.作間接寄存器,存放16位地址,訪問64K的外RAM區;2.作基址寄存器,存放16位基址,加上變址后可訪問ROM,用來讀取常數、表格等。
7.並行I/O端口(P0、P1、P2、P3、P4)寄存器
對應端口引腳的輸入/輸出值。