官术网_书友最值得收藏!

1.3 數據與程序內存

8051單片機存儲器結構如圖1-10所示。存儲器分為4KB片內程序存儲器(片內ROM)、64KB片外程序存儲器(片外ROM)、256B片內數據存儲器(片內RAM)、64KB片外數據存儲器(片外RAM)4部分。

圖1-10 8051單片機存儲器的結構

在8051單片機存儲器中,片內ROM用于存放8051單片機控制程序,并可擴展至64KB,地址范圍為0000H~0FFFH,與4KB片內ROM地址重疊,使用過程中要用對其進行區分。對于帶片內ROM的8051單片機,當引腳為高電平時,程序運行時將從片內ROM的0000H地址開始執行,當程序計數器(PC)的值超過0FFFH時,自動轉換到片外ROM的1000H~FFFFH地址空間執行。

8051單片機片內RAM空間中,00H~7FH的128B空間是真正的RAM區,可讀/寫各種數據;片內RAM 80H~FFH的128B空間大部分被專門用于特殊功能寄存器(Special Function Register,SFR),8051單片機在這個空間安排了21個特殊功能寄存器(SFR)。無論是用匯編語言還是用C語言編寫單片機程序,都要熟練掌握這些特殊功能寄存器。

STC15系列單片機片內數據存儲器(SRAM)及其擴展空間如表1-2所示。

表1-2 STC15系列單片機片內數據存儲器(SRAM)及其擴展空間

片內RAM共256B,可分為3個部分:低128B RAM(與8051單片機兼容)、高128B RAM及特殊功能寄存器區(SFR)。其中,低128B數據存儲器可直接或間接尋址;高128B RAM與特殊功能寄存器區都使用地址80H~FFH,但在物理上二者是獨立的,使用時通過不同的尋址方式加以區分,高128B RAM只能間接尋址,特殊功能寄存器區只可直接尋址。STC15系列單片機存儲器結構如圖1-11所示。

圖1-11 STC15系列單片機存儲器的結構

根據表1-2可知,STC15除了集成256B片內RAM外,還集成了3840B擴展RAM,地址范圍為0000H~0EFFH,訪問擴展片內RAM的方法和8051單片機訪問擴展片外RAM的方法相同,但是不影響P0(數據總線和低8位地址總線)、P2(高8位地址總線)、WR/P4.2、RD/P4.4和ALE/P4.5。

對于擴展的片內RAM,是否允許被訪問受輔助寄存器AUXR(地址為8EH)中的EXTRAM位控制。EXTRAM位默認為0,表示擴展的片內RAM可以被存取。以STC15W4K32S4單片機為例,訪問00H~0EFFH單元(3840B)要使用MOVX @DPTR指令;0F00H及以上單元均指片外RAM,而MOVX @Ri指令只能訪問0F00H~0FFFH單元。將EXTRAM位置1時,禁止訪問擴展的片內RAM,此時MOVX @DPTR/MOVX @Ri指令的使用與普通8052單片機相同,且訪問的均為擴展的片外RAM。STC15W4K32S4單片機擴展片外RAM的應用電路如圖1-12所示。

圖1-12 STC15W4K32S4單片機擴展片外RAM的應用電路

主站蜘蛛池模板: 谢通门县| 桃园市| 普陀区| 昌宁县| 云阳县| 洪雅县| 安仁县| 石景山区| 宣汉县| 永康市| 连山| 汕头市| 义乌市| 南岸区| 忻州市| 茂名市| 新宾| 沛县| 新邵县| 喀喇| 喀喇沁旗| 常德市| 施秉县| 获嘉县| 仁化县| 筠连县| 从江县| 甘泉县| 沧源| 阿拉善左旗| 桑日县| 九龙县| 武功县| 赤水市| 竹溪县| 惠安县| 临邑县| 鸡东县| 平顶山市| 丹棱县| 吴川市|