1樓:
關於51微控制器記憶體問題,一直是個疑惑大家的問題,因為51微控制器是個很另類的微控制器。
下面我給樓主講解一下:
51微控制器之所以另類,是因為,他定址記憶體的空間,不是靠匯流排,是用指令的方式。
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之類的,不是這種結構的。
最後,回答樓主的問題:
片外儲存區是什麼?
這個問題太模糊,答案可以是外擴的flash,也可以說是外擴的ram,
如果問題是這麼問的:
程式或者常量儲存在片外儲存區,這個片外儲存區指的是什麼?
答案是外擴flash;
如果問題是---變數儲存在片外儲存區,這個片外儲存區指的是什麼?
答案是外擴ram;
一般來說,如果不指明的話,外記憶體儲區,行業內人士指的是外部的ram。
片記憶體儲器是什麼?是不是就是內部的e2prom?
片記憶體儲區一般來說,指的是內部的ram,包括高128位(idata)和低128位(data)
片記憶體儲器,這個說法我沒聽說過,可能是eeprom吧。
2樓:做而論道
樓主問的是什麼微控制器?
關於微控制器的電焊需要什麼的問題,微控制器及電路板的焊接需要些什麼工具 要不要靠一些機械裝置來進行
首先,作為一個電子專業的學生,你的問題不專業。可能你比較在行的是軟體。需要用到的工具有 電烙鐵,焊錫絲,鑷子,偏口鉗,還有洞洞板,好多。你可以參考你買的tx 1c的板子買元器件。要想自己設計電路,要學好數位電路和類比電路,以及電路設計,當然電工學也要學。首先,我以實際經驗告訴你,是的,要好好學,當時...
微控制器原理的參考文獻有哪些,急求關於微控制器的外文參考文獻五篇,不要具體內容,只要標題,作者,年份,型別等就可以了
1 李廣弟等 微控制器基礎 北京航空航天出版社,2001.7 2 樓然苗等 51 系列微控制器設計例項 北京航空航天出版社,2003.3 3 唐俊翟等 微控制器原理與應用 冶金工業出版社,2003.9 4 劉瑞新等 微控制器原理及應用教程 機械工業出版社,2003.7 5 吳國經等 微控制器應用技術...
微控制器定時器 問題
做一個時鐘,24小時一個迴圈週期,每個分度的時間長短根據實際情況定。時鐘工作在定時器中斷子程式裡,主程式不斷和時鐘對時,如果符合設定值就開通電機。下面的程式你參考下,裡面具體的值我沒算過,你自己算下改了吧。如果分頻暫存器不夠按我的演算法加。別說不會哦。org 00h ljmp start org 0...