1樓:做而論道
片內,00h~7fh,共 128 位元組;
片外,0000h~ffffh,共 65536 位元組,即 64k。
如何區分:
是要求用肉眼區分嗎?
片內 ram,是買來一片 51 微控制器晶片時,裡面自帶的。
片外 ram,需要另外再買幾塊 ram 晶片,焊接到電路板上。
用肉眼觀察,立即就可以區分出來。
2樓:
51微控制器有以下幾個記憶體模組組成:
1】rom或者flash,叫程式儲存區,你寫的程式是存在這裡面的,上電後從這裡面執行。
程式儲存區也分為片內和片外,一般來說,現在的51很多已經做到了64k,所以很少有外擴
片外flash或者片外的rom了,flash或者rom不管是片內還是片外的,只能用來定義常量,是用code來修飾,也就是說,用code來修飾的東西,在程式執行過程中,不能修改;
2】ram有------內部ram的低128位(00-7f),對應c語言就是data,比如我定義一個變數,
data unsigned char var = 0;
那麼,這個 var變數就是放在內部的低128位ram中
-------內部ram的高128位(80-ff),對應c語言就是idata,比如我定義一個變數,
idata unsigned char var = 0;
那麼,這個 var變數就是放在內部的高128位ram中
-------特殊功能暫存器(sfr)(80-ff),對應c語言就是sfr比如我定義一個變數,
sfr unsigned char var = 0x90;
那麼,這個 var變數就是放在內部的特殊功能暫存器中,這是你對var操作,相當於操作一個特殊的暫存器,但是小心,不能隨便定義sfr變數,很危險
------外部ram 64k(0000-ffff)
外部的ram可以擴充套件到65536個,但是前256個算是一頁,這一頁比較特殊,是用
pdata來修飾的,當然,也可以用xdata來修飾。
除了第一頁的256個以外的其他65280個空間,只能用xdata來修飾;
回過頭來討論pdata和xdata,這兩個都能修飾外部ram的第一頁,但是,pdata只能修飾第一頁,即最前面的256個外部ram,那麼,這最前面的256個到底用pdata還是xdata好的呢?
答案是pdata,因為xdata修飾的變數,用的是dptr定址,pdata用的是r0和r1.dptr因為是16位的,所以可以覆蓋整個的64k外部ram,r0和r1是8位,所以只能定址最前面的256個,也就是外部ram的第一頁,但是,用r0定址,比dptr快一倍,**也小的很多
樓主又疑惑了,好多地址是重複的,比如,我向80h地址寫一個數值,微控制器怎麼知道讀的是內部的高128位ram?還是sfr?還是外部64k的ram呢?
答案是用指令,如果是直接定址,那麼訪問的就是sfr,如果是r0或者r1間接定址,就是內部高128位ram,如果是dptr或者是r0,r1間接定址,且配合的是movx指令,那麼就是訪問外部64kram中的第80h個地址。
概括一下來說,51的記憶體由以下組成:
1----程式儲存器(包括片內flash或rom,也包括片外flash或rom,c語言用code定義)
2----內部低128位ram,c語言用data定義
3---內部高128位ram,c語言用idata定義
4---內部sfr,c語言用sfr定義
5---外部65536個ram(通常,很多微控制器廠家不會給你擴充套件那麼多的,一般來說擴充套件256個位元組或者1024個位元組就差不多了,最近巨集晶的出了個擴充套件4096位元組的。這65536位元組的ram,前256個可以用pdata修飾,也可以用xdata修飾,超過256個之後的,只能用xdata修飾)
以上所說的只是針對51核心的微控制器,其他核心的,像arm之類的,不是這種結構的。
3樓:紫色學習
mcs—51微控制器資料儲存器ram分佈情況及區分:片內 ram,是買來一片 51 微控制器晶片時,裡面自帶的。片外 ram,需要另外再買幾塊 ram 晶片,焊接到電路板上。
微控制器(microcontrollers)是一種積體電路晶片,是採用超大規模積體電路技術把具有資料處理能力的**處理器cpu、隨機儲存器ram、只讀儲存器rom、多種i/o口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調製電路、模擬多路轉換器、a/d轉換器等電路)整合到一塊矽片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位微控制器,發展到現在的300m的高速微控制器。
在mcs-51微控制器儲存器擴充套件中,區分擴充套件的是片外程式儲存器還是片外資料儲存器的最可靠的方法是
4樓:匿名使用者
硬體上,控制訊號不一樣:片外程式儲存器工作,要psen訊號有效;片外資料儲存器工作,要rd或wr訊號有效;
軟體上,定址不一樣,片外程式儲存器工作,要用movc,片外資料儲存器工作,要用movx;
雖然說他們的地址都是0000h~ffffh,不會發生衝突的
5樓:做而論道
最可靠的方法是:觀察連線。
片選端(cs)連線到微控制器的psen引腳的,是片外程式儲存器;
片選端(cs)連線到微控制器的rd和wr引腳的,是片外資料儲存器。
區分msc-51微控制器片外程式儲存器和片外資料儲存器的最可靠方法是 5
6樓:至尊老城
選d,psen是片外程式儲存器的讀選通訊號,
rd是片外資料儲存器的讀選通訊號,看它和誰連線
7樓:匿名使用者
如果是作業,看型號;
如果實際應用,外掛儲存器的51微控制器已經絕跡了;
8樓:萬能的z博士
我們學校原題 題目最可靠
答案是d
9樓:匿名使用者
所謂rom就是隻讀儲存器(掉電資料繼續儲存);ram是臨時儲存器(掉電資料丟失),所以。肯定是a啦 。
(1)用片選法試將mcs-51微控制器外接一片eprom2732和一片ram6116,畫出硬體連線圖指出各儲存器的地址範圍
10樓:做而論道
畫圖,也不是15分鐘,能畫完的。多等等吧。
MCS 51微控制器的儲存器地址空間如何劃分 各地址空間的地址範圍和容量如何
我部落格上有篇 器的文章,您可以去看看,講得比較清楚 分 rom 和 ram rom 可以定址 64kb 片內片外均可,通過控制管腳選擇 ram 外部可定址 64kb ram 內部 128或256位元組 ram 片內 片外 定址方式 即呼叫時指令 不同 分別編制。mcs 51 微控制器的儲存器地址空...
mcs 51微控制器有幾個工作暫存器?如何選擇
8051有4組工作暫存器,每組有8個位元組 r0 r7 選擇是由psw的rs1 rs0位來定的 如果你是c的話,不用去理會,系統自動分配 如果是彙編,預設00組就可以了,不由去分配它,忘了切換回來會很容易出現問題 希望能幫到你 4個 通用工作暫存器組 由rs0 rs1的取值確定 每個的工作暫存器組由...
簡述MCS51系列微控制器並行IO口的特點
p0是個標準的三態口,高阻態 相當於懸空 高電平 內部上管導通,專相當於把埠接電源 低屬電平 下管導通,相當於把埠接地 p1,p2,p3是準輸入,輸出口,只有一個下管,導通就是接地,關斷時下管截止,靠上拉電阻,完成高電平輸出。對外部儲存器的讀寫,p0分時作為8位資料,低8位地址複用,p2高8位地址線...