1. MCS-51單片機片內RAM的組成的劃分方式和功能分別是什麼
51單顫消明片機的具茄告體存儲器地址分配
數據存儲器(RAM)為 256 位元組, 地址范圍為00H~FFH, 分為兩大部分: 低 128 位元組(00H~7FH)為真正的RAM區; 高 128 位元組(80H~FFH)為特殊功能寄存器區SFR。
程序存儲器(ROM)的內部地址橋伍為 0000H~0FFFH, 共 4 KB; 外部地址為 1000H~FFFFH, 共 60 KB。 當程序計數器由內部 0FFFH執行到外部 1000H 時, 會自動跳轉。
一般分為數據存儲器RAM,程序存儲器ROM,內存的具體地址都是規定好的,不需要我們劃分,只需要我們知道他們的具體地址就好了。
2. mcs-51單片機內部RAM的各部分作用是什麼
內部RAM共256個單元,用戶使用前128個單元,用於存放可讀寫數據,後128個單元被專用寄存器佔用。
前128單元具體分為:
1、工作寄存器區:共4個組,每組為8個存儲單元,即00H-07H,08H-0FH,10H-17H,18H-1FH,具體選擇哪一個由仿慎程序狀態字(PSW)中的RS1和RS0的組合決定。
2、位定址區:20H-2FH,共16個單元,每一位可以進行位定址(16*8=128個位地址),就是每一個觸發位,就是bit可以定址。
3、便箋區:從30H-7FH,共80個單元,用於存放用戶數據或作堆棧區使用。
4、從80H-FFH為專用寄存器佔用,其中還離散的分布SFR(21個特殊功能寄存器)。
3. 51單片機內部ram,外部ram的區別
單片機的這 512 位元組的 RAM在地位上並不宏雹都是平等的,而是分塊的,塊與塊之間在物理結構和用法上都是有區別的,因此形成51單片機內部ram和外部ram的區別。
一、從使用位元組區別。標准 51單片機的片內 RAM 地址從 0x00H~0x7F 共 128 個位元組。而現在我們用的 51 系列的單片機都是帶擴展片內 RAM 的,即 RAM 是從 0x00~0xFF 共 256 個位元組。而片外 RAM 最大可以擴展到 0x0000~0xFFFF 共 64K 位元組。
二、從慶銷連接地址區別。片內 RAM 和片外 RAM 的地址不是連起來的,片內是從 0x00 開始,片外也是從 0x0000 開始的,分別形成data,即片內 RAM 從 0x00~0x7F;idata,即片內 RAM 從 0x00~0xFF;pdata,即片外 RAM 從 0x00~0xFF;xdata,即片外 RAM 從 0x0000~0xFFFF。
一般情況下,使用 data 區域,data 不夠用了,就用 xdata,如果希望程序執行效率盡量高一點,就使用 pdata 關鍵字來定義。其它型號有更大的 RAM 的 51 系列單片機,如果要使用更大的 RAM,就必須得用 xdata 來訪問了。
(3)單片機中的ram擴展閱讀:
51單片機對所有兼容Intel 8031指令系統的統稱,8004單片機成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機屬於基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是51系列的單片機一般不具備自編程能力。
51單片機的RAM用以存放可以讀寫的數據,如運算的中間結果、最終結果以及欲顯示的數據,ROM用以存放程序、一些原始數據和表格。四個8位並行I/O口,既可用作輸入,也可用作輸出。T/C包括兩個定時/記數器,既可以工作在定時模式,也可譽絕游以工作在記數模式。
4. 單片機Ram的作用
數據存儲器:這是個可以隨時存取數據的一塊存儲器,也就是可以讀(取)也可以寫(存)的存儲器,簡稱RAM。現在的單片機裡面使用的RAM屬於靜態RAM或SRAM,這個和電腦用的內存條有所不同,只要你把數據寫入SRAM後,只要不斷電,或者不清除掉,這個數據就一直保存在那裡,電腦是用的動態RAM,要不斷給它加刷新脈沖才能保存數據。因為單片機處理的信息量比電腦小很多,所以它帶的RAM也比較少:從完全不帶、帶128、256、...1K,2K,到4K,比ROM少多了。因為實際上RAM只是作為數據臨時存放的地方,除非進行圖像處理需要存放大量的數據外,一般對於執行較簡單任務的單片機,有這么多也夠用,如果實在不夠用也只能採取外加SRAM如6116,6264等等來擴展。
為了對RAM單元存取8位二進數,當然也的和ROM一樣用「地址」來標示它的具體位置假如某單片機有1K(1024)RAM,它的地址也是從0000到1024,或16進數的0000H到03FFH,可見和ROM的地址是一樣的,不會混淆不清?不會,因為讀ROM是由單片機的程序指針或轉移指令或查表指令進行,而這些指令是不會進入RAM區的,讀寫RAM是另外的數據傳送指令,也不會進入ROM區,這點也是和電腦不同之處,後者程序和數據都在內存條裡面,地址不同,如果竄位了就會造成不可預見後果。單片機的這種存儲器結構也稱為哈佛結構。
RAM在單片機里的用途,主要是存放臨時數據,例如用單片機測溫,每秒測1次,顯示1分鍾的平均值(1分鍾更新一次);我們先通過感測器,放大電路,A/D轉換,把溫度這個模擬量轉變為成比例的二進數,然後每秒鍾1次把數字量通過輸入口順序存入到單片機的RAM中,然後對他們進行兩兩求和再平均的計算(題外話:要單片機進行「除法「運算比較麻煩,例外的是除以2,4,8。。。卻非常簡單!----運用「右移」指令1,2,3次便可)最後的數值顯示出來,然後把這60個存儲單元統統寫0清除舊數據,下次又如此這般地循環進行。。。
5. 單片機中 什麼是片內RAM和片外RAM,RAM就是數據存儲器嗎
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之類的,不是這種結構的。
6. MCS-51單片機內部RAM可分為幾個區各區的主要作用是什麼
MCS-51單片機內部RAM可分為5個區:
1、存寬蔽儲矩陣區:RAM的核心區域是一個寄存器矩陣,用清猜來存儲信息,稱為存儲矩區。
2、地址解碼器區:地址解碼器區的作用是將寄存器地址所對應的二進制數譯成有效的行選信號和列選信號,從而選中該存儲單元。
3、讀/寫控制器區:訪問RAM時,對被選中的寄存器進行讀操作還是進行寫操作,是通過的讀/寫控制器區讀寫信號來進行控制的。
4、輸入/輸出區:RAM通過輸入/輸_區與計算機的CPU交換數據。輸入/輸出區數據線的條數,與一個地址中所對應的寄存器位數相同。
5、片選控制區:片選控制區就是用來實現這種控制的。控制RAM被訪問時,是否與CPU發生聯系,與其交換信息。
(6)單片機中的ram擴展閱讀:
MCS-51單片機內部RAM讀操作時,被選中單元的數據經數據線、輸入/輸出區處理後傳送給CPU;寫操作時,CPU將數據經輸入/輸出區轉化、數據線存入被選中單元。
由於受RAM的集成度限制。MCS-51單片機由許多慎正州RAM組合而成。CPU訪問存儲器時,一次只能訪問RAM中的某一片,片選控制區選中,地址解碼器的輸出信號控制該片某個地址的寄存器與CPU接通;當片選線接入無效電平時,則該片與CPU之間處於斷開狀態。