MCS-51單片機存儲地址空間划分


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 指令。

3. 參考文獻

[1] http://blog.163.com/asm_c/blog/static/24820311320112208130269/


免責聲明!

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



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