1.前言
MCS-51的存儲器有片內RAM、片外RAM 和 ROM 三個空間。
MCS-51單片機在物理結構上有四個存儲空間
1、片內程序存儲器(片內ROM)
2、片外程序存儲器(片外ROM)
3、片內數據存儲器(片內RAM)
4、片外數據存儲器(片外RAM)
在邏輯上(即從用戶的角度上)MCS-51單片機有三個存儲空間
1、片內外統一編址的64K的程序存儲器(ROM)地址空間(MOVC)
2、256B的片內數據存儲器(片內RAM)的地址空間(MOV)
3、以及64K片外數據存儲器(片外RAM)的地址空間(MOVX)
注:在訪問三個不同的邏輯空間時,應采用不同形式的指令以產生不同的存儲器空間的選通信號。
2.存儲空間劃分
2.1 片內RAM
圖:片內AM地址空間劃分
地址范圍是00H到7FH (52系列延伸到FFH),為8位地址,所以最大可尋址的范圍為256個單元地址
? 00H到1FH
共32字節,分成四個工作寄存器區,每區有寄存器 R0~R7。對此區域,可以使用 R0~R7 來操作,代碼短捷,但是,只有一個當前工作區是可以這樣讀寫的。對此區域,也可以使用字節地址,來讀寫。
? 20H-2FH
共16字節,是位尋址區,共有128個“位”,位地址:00~7FH。此區域,也可按照字節尋址,來讀寫。
? 30H-7FH
沒有什么特色,只進行字節尋址。
? 80H-FFH
共有128個地址號碼,其中離散的分布著21個特殊功能寄存器,必須直接尋址才能讀寫。(52系列,在此范圍,還有128字節的 RAM,必須間接尋址才能讀寫)。
注:對上述空間讀寫,必須使用 MOV 指令。
2.2 片外RAM
片外RAM的地址范圍是0000H到FFFFH,容量即為64KB。對片外RAM讀寫,必須使用 MOVX 指令。
對片外RAM采用間接尋址方式,R0、R1和DPTR都可以做為間接尋址寄存器,R0、R1是8位的寄存器,即R0、R1的尋址范圍最大為256個單元,而DPTR是16位地址指針,尋址范圍就可達到64KB。
也就是說在尋址片外RAM時,尋址范圍超過了256B,就不能用R0、R1做為間接尋址寄存器,而必須用DPTR寄存器做為間接尋址寄存器。
2.3 ROM
ROM的地址范圍是0000H到FFFFH,容量即為64KB,地址長度16位,作用是 存放程序及程序運行時所需的常數。
其中0000~0FFFH,即4K,在片內,其它在片外。
EA = 1,尋址內部ROM;EA = 0,尋址外部ROM對ROM讀出,必須使用 MOVC 指令。
-
ROM
+關注
關注
4文章
562瀏覽量
85679 -
RAM
+關注
關注
8文章
1367瀏覽量
114541 -
MCS-51
+關注
關注
2文章
126瀏覽量
29242
原文標題:MCS-51單片機存儲地址空間劃分
文章出處:【微信號:mcugeek,微信公眾號:MCU開發加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論