STC15F2K61S2存儲結構


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。


內部RAM
    低128字節RAM也稱為通用RAM區。通用RAM區又可分為工作寄存器組區,可位尋址區,用戶RAM區和堆棧區。

    工作寄存器組區從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的訪問

特殊功能寄存器

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


SFR名稱及地址映像

常用特殊功能寄存器

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)寄存器


PSW位
    CY——進位標志:也稱借位標志。如果兩數相加大於255或者相減小於0,則CY置1

    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)寄存器

    對應端口引腳的輸入/輸出值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM