色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 80c51內部RAM空間分配

          80c51內部RAM空間分配

          作者: 時間:2016-11-09 來源:網絡 收藏
          keil編譯的時候,在開始時候會清零所有內存.在main之前,所以,只要復位,內存肯定是0


          MCS-51單片機的內部數據存儲器在物理上和邏輯上都分為兩個地址空間,即:
          數據存儲器空間(低128單元),“用戶可用的”;
          特殊功能寄存器空間(高128單元);
          這兩個空間是相連的,從用戶角度而言,低128單元才是真正的數據存儲器。下面我們就來詳細的與大家講解一下:
          低128單元:
          片內數據存儲器為8位地址,所以最大可尋址的范圍為256個單元地址,對片外數據存儲器采用間接尋址方式,R0、R1和DPTR都可以做為間接尋址寄存器,R0、R1是8位的寄存器,即R0、R1的尋址范圍最大為256個單元,而DPTR是16位地址指針,尋址范圍就可達到64KB。也就是說在尋址片外數據存儲器時,尋址范圍超過了256B,就不能用R0、R1做為間接尋址寄存器,而必須用DPTR寄存器做為間接尋址寄存器。
          1、通用寄存器區(qū)(00H-1FH)
          在00H—1FH共32個單元中被均勻地分為四塊,每塊包含八個8位寄存器,均以R0—R7來命名,我們常稱這些寄存器為通用寄存器。這四塊中的寄存器都稱為R0—R7,那么在程序中怎么區(qū)分和使用它們呢?聰明的INTEL工程師們又安排了一個寄存器——程序狀態(tài)字寄存器(PSW)來管理它們,CPU只要定義這個寄存的PSW的D3和D4位(RS0和RS1),即可選中這四組通用寄存器。程序中并不需要用4組,那么其余的可用做一般的數據緩沖器,CPU在復位后,選中第0組工作寄存器。
          2、位尋址區(qū)(20H-2FH)
          片內RAM的20H—2FH單元為位尋址區(qū),既可作單元用字節(jié)尋址,也可對它們的位進行尋址。位尋址區(qū)共有16個字節(jié),128個位,位地址為00H—7FH。

          CPU能直接尋址這些位,執(zhí)行例如置“1”、清“0”、求“反”、轉移,傳送和邏輯等操作。我們常稱MCS-51具有布爾處理功能,布爾處理的存儲空間指的就是這些為尋址區(qū)。
          3、用戶RAM區(qū)(30H-7FH)
          在片內RAM低128單元中,通用寄存器占去32個單元,位尋址區(qū)占去16個單元,剩下的80個單元就是供用戶使用的一般RAM區(qū)了,地址單元為30H-7FH。對這部份區(qū)域的使用不作任何規(guī)定和限制,但應說明的是,堆棧一般開辟在這個區(qū)域。
          高128單元:(80H-FFH)
          前面提到,在片內的RAM中,高128位是專用寄存器區(qū),因這節(jié)比較重要,所以我們單獨的安排一節(jié)課跟大家介紹。下節(jié)課我們就重點介紹51單片機片內RAM的高128位,即專用寄存器區(qū)



          data:固定指前面0x00-0x7f的128個RAM,可以用acc直接讀寫的,速度最快,生成的代碼也最小。

          idata:固定指前面0x00-0xff的256個RAM,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似C中的指針方式訪問的。匯編中的語句為:mox ACC,@Rx.(不重要的補充:c中idata做指針式的訪問效果很好)
          bdata:它只是說明你定義的變量儲存在可位尋址區(qū)域

          xdata:外部擴展RAM,一般指外部0x0000-0xffff空間,用DPTR訪問。

          pdata:外部擴展RAM的低256個字節(jié)

          bit和sbit都是C51擴展的變量類型
          bit位標量是C51編譯器一種擴充數據類型,它的值是一個二進制位,不是0就是1
          sbit 可定義可位尋址對象.如訪問特殊功能寄存器中的某位


          評論


          技術專區(qū)

          關閉