pic單片機(jī)教程之?dāng)?shù)據(jù)存儲(chǔ)器的直接間接尋址方式
數(shù)據(jù)存儲(chǔ)器構(gòu)成
本文引用地址:http://butianyuan.cn/article/201609/303284.htm數(shù)據(jù)存儲(chǔ)器由特殊功能寄存器(SFR)和通用寄存器(GPR)組成。SFR控制器件的操作,而GPR則是數(shù)據(jù)存儲(chǔ)和改寫的通用區(qū)域。
SFR和GPR數(shù)據(jù)存儲(chǔ)區(qū)分成不同的存儲(chǔ)區(qū)。GPR區(qū)分成不同的存儲(chǔ)區(qū),以實(shí)現(xiàn)對(duì)超過96字節(jié)的通用RAM的尋址。SFR是用來控制外設(shè)和內(nèi)核功能的寄存器。STATUS寄存器的存儲(chǔ)區(qū)選擇控制位(STATUS7:5>)用于選擇存儲(chǔ)區(qū)。圖6-5是數(shù)據(jù)存儲(chǔ)器的構(gòu)成映射,這個(gè)映射與器件型號(hào)有關(guān)。
從一個(gè)寄存器向另一個(gè)寄存器傳送數(shù)據(jù)時(shí),必須通過W寄存器。這意味著所有寄存器之間的數(shù)據(jù)傳送,都需要兩個(gè)指令周期。
整個(gè)數(shù)據(jù)存儲(chǔ)器可以采用直接尋址或間接尋址來存取。直接尋址可能需要使用RP1、RP0位,間接尋址需要用到指針寄存器(FSR)。間接尋址數(shù)據(jù)存儲(chǔ)器的存儲(chǔ)區(qū)0/存儲(chǔ)區(qū)1或存儲(chǔ)區(qū)2/存儲(chǔ)區(qū)3時(shí),要使用狀態(tài)寄存器的間接寄存器指針(IRP)位。
通用寄存器(GPR)
某些中檔單片機(jī)的GPR區(qū)分成不同的存儲(chǔ)區(qū),上電復(fù)位并不能初始化GPR,其它的復(fù)位也不能改變GPR的值。
寄存器既可以直接尋址,也可以使用指針寄存器FSR間接尋址。某些器件具有各數(shù)據(jù)存儲(chǔ)區(qū)共享的公用數(shù)據(jù)存儲(chǔ)區(qū),對(duì)公用數(shù)據(jù)存儲(chǔ)區(qū)的讀寫不必考慮當(dāng)前所在存儲(chǔ)區(qū),可使用同一個(gè)地址單元(值),我們稱這個(gè)區(qū)域?yàn)楣肦AM。
特殊功能寄存器(SFR)
特殊功能寄存器由CPU和外設(shè)使用,用于控制器件的操作,這類寄存器實(shí)現(xiàn)為靜態(tài)RAM形式。特殊功能寄存器可分為兩類,一類與內(nèi)核功能有關(guān),另一類與外設(shè)功能有關(guān)。本章將講述與內(nèi)核功能有關(guān)的特殊功能寄存器,另一類與外設(shè)功能操作有關(guān)的特殊功能寄存器將在相應(yīng)的外設(shè)功能模塊章節(jié)中講述。
所有中檔單片機(jī)的SFR寄存器區(qū)也分成不同的存儲(chǔ)區(qū)。在這些存儲(chǔ)區(qū)間切換時(shí),需要設(shè)置狀態(tài)(STATUS )寄存器的RP0、RP1位來選擇所需存儲(chǔ)區(qū)。某些SFR寄存器會(huì)被上電復(fù)位和其它復(fù)位初始化,而有些一些SFR寄存器在復(fù)位時(shí)不會(huì)被初始化。
*注: 可能有通用寄存器映射到特殊功能寄存器區(qū)。
寄存器既可以直接尋址,也可以通過指針寄存器間接尋址。
存儲(chǔ)區(qū)劃分
數(shù)據(jù)存儲(chǔ)器分為4個(gè)存儲(chǔ)區(qū),每個(gè)存儲(chǔ)區(qū)包括特殊功能寄存器和通用寄存器。使用直接尋址時(shí),為在這些存儲(chǔ)區(qū)之間切換,需要設(shè)置狀態(tài)寄存器的RP0、RP1位以選擇需要的存儲(chǔ)區(qū)。狀態(tài)寄存器的IRP位用于間接尋址。
每個(gè)存儲(chǔ)區(qū)最多可有128字節(jié)(7FH)。特殊功能寄存器安排在存儲(chǔ)區(qū)的低地址單元;通用寄存器安排在高地址單元。所有數(shù)據(jù)存儲(chǔ)器都是用靜態(tài)RAM。所有存儲(chǔ)區(qū)都包括特殊功能寄存器。為了減少程序代碼和提高存取速度,存儲(chǔ)區(qū)0中某些使用率高的特殊功能寄存器映射在其它存儲(chǔ)區(qū)中。
隨著產(chǎn)品的發(fā)展,其數(shù)據(jù)存儲(chǔ)器的設(shè)計(jì)布局有一些變化。對(duì)于所有新器件來說,標(biāo)準(zhǔn)的數(shù)據(jù)存儲(chǔ)器構(gòu)成如圖6-5所示。在這個(gè)存儲(chǔ)器映射中,所有存儲(chǔ)區(qū)的最后16字節(jié)都映射到存儲(chǔ)區(qū)0中,這可以降低用于現(xiàn)場(chǎng)切換的軟件開銷。用粗體表示的寄存器存在于每種單片機(jī)中,其它寄存器的有無與外設(shè)模塊有關(guān)。圖中沒有示出所有的外設(shè)寄存器,因?yàn)獒槍?duì)不同的器件,在某些文件地址處的寄存器定義與這里所顯示的不同。除了使用本手冊(cè)所提供的所有圖、表和說明外,也應(yīng)參閱特定器件的數(shù)據(jù)手冊(cè)來核實(shí)細(xì)節(jié)。
評(píng)論