新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機基礎(5)

51單片機基礎(5)

作者: 時間:2016-11-26 來源:網絡 收藏
1、對程序員來講,最基本的51單片機具有如下3個存儲空間:

(1)內部數據空間,地址范圍0~255,使用MOV指令和8位地址進行直接和間接訪問,當然也有更多的操作類指令如ANL、ADD等可以直接或間接地訪問該空間;

本文引用地址:http://2s4d.com/article/201611/321799.htm

(2)外部數據空間,地址范圍0~65535,(僅可)使用MOVX指令配合存于DPTR中的16位地址或存于R0、R1中的(低)8位地址進行寄存器間接方式的讀寫訪問;使用8位地址訪問外部數據空間實際是默認更高位的地址須由其它輸出口線事先指定或實際配置的外部數據存儲器不超過256字節(jié)而沒有更高位的地址線需要給定;

(3)程序存儲空間,地址范圍0~65535,(僅可)使用MOVC指令配合作為基地址的存于DPTR中的16位地址或當前PC中的16位地址和事先傳送到累加器A中的8位變地址進行基址變址方式的只讀訪問;

2、內部和外部數據存儲器的區(qū)分不在于數據存儲器位于單片機內部或外部,而是在于數據存儲器與CPU的緊密程度,或者說CPU訪問它們的方便程度。

(1)實際上51的內部數據存儲器與CPU結合非常緊密,甚至位于內部數據空間的ACC、PSW乃至其它SFR其實可以認為就是CPU的一部分,如此就可以說內部數據存儲器就是位于CPU內部的數據存儲器;由于各種指令直接或間接尋址的支持,CPU對位于內部數據空間的數據存儲器的訪問是非常方便的,而外部數據空間的數據存儲器可稱為外部RAM(或記為XRAM),就是特別指明需要用MOVX指令間接尋址才能訪問的數據存儲器。

(2)內部數據存儲器一定是位于51單片機內部的,而外部數據存儲器則不能說一定就位于單片機的外部。為了應用方便(節(jié)省I/O口線,避免通過外部總線擴展XRAM的麻煩,以及節(jié)省物理空間等),很多增強的51系列單片機都將一定量的XRAM集成到芯片的內部,即便如此,這些數據存儲器使用的是外部數據空間,因此仍然(也只能)是外部數據存儲器。

3、最基本51單片機的內部數據存儲空間可進一步劃分為寄存器組區(qū)(地址0~31,共32字節(jié))、位尋址區(qū)(地址32~47,共16字節(jié))、用戶RAM區(qū)(地址48~127,共80字節(jié))和SFR區(qū)(地址128~255,共128字節(jié))等4個功能區(qū);

(1)寄存器組區(qū)的32字節(jié)內部RAM分為4組(地址0~7、8~15、16~23、24~31),稱為4個寄存器組(依次稱為寄存器組0、1、2和3),每組8個字節(jié)分別命名為寄存器R0、R1、...、R7,可通過PSW寄存器中的RS1、RS0位組合(即PSW.4和PSW.3)選擇其中一組為當前寄存器組。當前寄存器組中的寄存器R0~R7可在51單片機的匯編指令中以直接引用的方式非常方便地進行讀寫訪問(例如MOV A,R1),而對非當前寄存器組中的寄存器則可按一般內部RAM單元使用8位內部RAM地址進行直接和間接訪問。寄存器組區(qū)的所有32字節(jié)也都可以作為一般內部RAM單元訪問和使用。51單片機指令系統(tǒng)中除了累加器A以外,可直接引用的當前寄存器R0~R7是最為高效方便的了。

(2)51單片機有一整套位操作指令,可以通過8位位地址對位于內部數據空間的256個二進制位進行直接訪問,可以認為這是一個通過8位位地址訪問的位地址空間。片內RAM地址32~47上的16個字節(jié)共有128個二進制位,占據了前述256位地址空間中的前半部分(位地址0~127),因此稱這16個字節(jié)所在的片內RAM區(qū)為位尋址區(qū),它們即可以按字節(jié)尋址,其中的每一位也可以按位尋址。

(3)內部RAM中剩余的部分可用于一般的數據暫存或設置為堆棧區(qū)段。

(4)特殊功能寄存器(SFR)區(qū)總計有128字節(jié)的空間,其中離散地分布著最基本51單片機的21個特殊功能寄存器。這些特殊功能寄存器實際上是單片機功能部件在內存中的映像,是CPU訪問功能部件的通道和手段。其中除了A、B、PSW、SP和DPTR等CPU自身的部分以外,其余都是在片設備和端口的訪問窗口,CPU通過這些窗口對其進行配置和應用。后繼的各種不同的51單片機如果增加了更多的在片設備和接口,最終都要通過在SFR區(qū)設計安放更多的特殊功能寄存器來體現給CPU。那些所在地址能被8整除的特殊功能寄存器,它們的每個位都是具有位地址的,因此也是可以按位訪問的。每個位的位地址就等于其所在特殊功能寄存器的地址加上該位的位序號(例如PSW的內部RAM字節(jié)地址是0D0H,該地址能夠被8整除,所以PSW的每一位都分配有位地址,而CY是PSW的最高第7位,則CY的位地址就是0D0H+7=0D7H)。位地址空間的后半部分都是這樣分配給特殊功能寄存器的功能位的,那些最需要按位訪問的特殊功能寄存器都分配在可以具有位地址的字節(jié)地址上。

(5)基本51單片機只有128字節(jié)的內部RAM,可使用字節(jié)地址0~127進行直接或間接訪問,而52單片機則有256字節(jié)的內部RAM。增加的128字節(jié)RAM只能使用字節(jié)地址128~255進行間接訪問,并且事先規(guī)定特殊功能寄存器只能通過字節(jié)地址或位地址進行直接訪問,通過這種辦法規(guī)避了與SFR所占地址空間的沖突。由于堆棧操作本身就是根據SP的值對內部RAM單元進行的間接訪問,因此增加的128字節(jié)高地址RAM可以用作堆棧區(qū)段。

4、[“關于通過#EA引腳選擇的片內/片外程序存儲空間”待續(xù)...]



關鍵詞: 51單片機基

評論


技術專區(qū)

關閉