① 單片機存儲器疑問:(地址分配)
第一個問題你說的是對的 片外要外接 第二個問題是 FFFFH是16進制相當於1111 1111 1111 1111 是16位的 0000H-FFFFH也就是由0000 0000 0000 0000到1111 1111 1111 1111 共16位 每位有兩種選擇 即0和1 所以用乘法原理 也就是共有 2的16 次方 即65536 又因為1k位元組是1024位元組 65536除1024等於64所以說 0000到FFFFH 定址是定址在64K存儲器的中定址的 第三個問題是 MOV是數據轉移指令 P1是由P1.0-P1.7是8位的特殊寄存器 這個指令是把0000 0000分別送到P1.0-P1.7中的每一位 需要記住的是 有H的是16進制數 我上面所說的 0000 0000是因為每位16進制數相當於4位二進制數 所以說00H是0000 0000 , 0000H是0000 0000 0000 0000 ,FFFFH是1111 1111 1111 1111 在16進制數中F是什麼 還用解釋嗎
② MCS-51 單片機的存儲器地址空間如何劃分各地址空間的地址范圍和容量如何
MCS-51 單片機的存儲器地址空間,講起來,要用幾頁.
簡單介紹如下:
MCS-51的存儲器有片內RAM、片外RAM 和 ROM 三個空間.
片內RAM:
地址范圍是00H到7FH (52系列延伸到FFH).
其中00H到1FH,共32位元組,分成四個工作寄存器區,每區有寄存器 R0~R7.
對此區域,可以使用 R0~R7 來操作,但是,當前只有一個區是可以這樣讀寫的.
對此區域,也可以使用位元組地址,來讀寫.
20H-2FH,共16位元組,是位定址區,共有128個「位」,位地址:00~7FH.
此區域,也可按照位元組定址,來讀寫.
30H-7FH,沒有什麼特色,只進行位元組定址.
80H-FFH,共有128個地址號碼,其中離散的分布著21個特殊功能寄存器,必須直接定址才能讀寫.
(52系列,在此范圍,還有128位元組的 RAM,必須間接定址才能讀寫).
對上述空間讀寫,需用MOV指令.
----
片外RAM:
片外RAM的地址范圍是0000H到FFFFH,容量即為64KB.
對片外RAM讀寫,需用MOVX指令.
----
ROM:
ROM的地址范圍是0000H到FFFFH,容量即為64KB.
其中0000~0FFFH,即4K,在片內,其它在片外.
(對於8031,這64K的ROM,都在片外.)
對ROM讀出,需用MOVC指令.
③ MCS-51單片機的位地址空間是如何分配的
關於51單片機內存問題,一直是個疑惑大家的問題,因為51單片機是個很另類的單片機。
下面我給樓主講解一下:
51單片機之所以另類,是因為,他定址內存的空間,不是靠匯流排,是用指令的方式。
51單片機有以下幾個內存模塊組成:
ROM或者Flash就不說了。
RAM有------內部RAM的低128位(00-7F)
-------內部RAM的高128位(80-FF)---【89C51單片機沒有這一段空間】
-------特殊功能寄存器(SFR)(80-FF)
------外部RAM 64K(0000-FFFF)
樓主又疑惑了,好多地址是重復的,比如,我向80H地址寫一個數值,單片機怎麼知道讀的是內部的高128位RAM?還是SFR?還是外部64K的RAM呢?
答案是用指令,如果是直接定址,那麼訪問的就是SFR,如果是R0或者R1間接定址,就是內部高128位RAM,如果是DPTR或者是R0,R1間接定址,且配合的是MovX指令,那麼就是訪問外部64KRAM中的第80H個地址。
對於你內部的128B,可以直接定址,寄存器定址、寄存器間接定址都可
④ MCS-51單片機內部RAM如何分配的
MCS-51單片機內部RAM分配如下:
00H~1FH:為工作寄存器地址,共四組
20H~2FH:為位地址空間,位地址范圍為00H~7FH
30H~7FH:為用戶使用的RAM空間
80H~FFH:為特殊功能寄存器空間。
⑤ 51單片機工作寄存器組有幾個它們的地址是如何分配的如何設置RS1、RS0選擇工作寄存器組
4個,稱為工作寄存器0區—3區,每個工作寄存器區為8位元組(其中每位元組分別記作R0-R7),共佔用32位元組的空間,0區的地址為00H-07H,1區的地址為08H-0FH,2區的地址為10H-17H,3區的地址為18H-1FH, 工作寄存器的選擇由程序狀態字PSW中RS0、RS1位的值決定,當RS1、RS0為00時選中0區,為01時選中1區,為10時選中2區,為11時選中3區。
⑥ 單片機C語言我聲明一個變數,他存放的地址怎麼分配
單片機中,可以位定址的有兩個地方,第一是特殊功能寄存器中可以被8整除的寄存器,第二就是20h~2fh這個位址空間。兩個地方的位變數申明不一樣。
第一個地方的申明是:
sbit
位變數
比如:sbit
pwm=p1^0;
第二個地方的申明是:bit
位變數
比如:
bit
flag;
⑦ mc51單片機中通用的存儲器地址兩種分配方法
8051片內有4kB的程序存儲單元,其地址為0000H—0FFFH,其中一組特殊是0000H—0002H單元,系統復位後,PC為0000H,單片機從0000H單元開始執行程序 ,另一組特殊單元是0003H—002AH,這40個單元各有用途,它們被均勻地分為五段,它們的定義如下:
0003H—000AH 外部中斷0中斷地址區。
000BH—0012H 定時/計數器0中斷地址區。
0013H—001AH 外部中斷1中斷地址區。
001BH—0022H 定時/計數器1中斷地址區。
0023H—002AH 串列中斷地址區。
可見以上的40個單元是專門用於存放中斷處理程序的地址單元
二、數據存儲器
MCS-51內部RAM有128或256個位元組的用戶數據存儲(不同的型號有分別),它們是用於存放執行的中間結果和過程數據的。MCS-51的數據存儲器均可讀寫,部分單元還可以位定址。
1、 8051內部RAM共有256個單元,這256個單元共分為兩部分。其一是地址從00H—7FH單元(共128個位元組)為用戶數據RAM。從80H—FFH地址單元(也是128個位元組)為特殊寄存器(SFR)單元。從圖1中可清楚地看出它們的結構分布。
在00H—1FH共32個單元中被均勻地分為四塊,每塊包含八個8位寄存器,均以R0—R7來命名,我們常稱這些寄存器為通用寄存器。
內部RAM的20H—2FH單元為位定址區,既可作為一般單元用位元組定址,也可對它們的位進行定址。位定址區共有16個位元組,128個位,位地址為00H—7FH。。
⑧ MCS-51 單片機的存儲器地址空間如何劃分各地址空間的地址范圍和容量如何
MCS-51單片機在物理結構上有四個存儲空間:
1、片內程序存儲器
2、片外程序存儲器
3、片內數據存儲器
4、片外數據存儲器
但在邏輯上,即從用戶的角度上,8051單片機有三個存儲空間:
1、片內外統一編址的64K的程序存儲器地址空間(MOVC)
2、256B的片內數據存儲器的地址空間(MOV)
3、以及64K片外數據存儲器的地址空間(MOVX)
在訪問三個不同的邏輯空間時,應採用不同形式的指令以產生不同的存儲器空間的選通信號。程序ROM
定址范圍:0000H ~ FFFFH 容量64KB
EA = 1,定址內部ROM;EA = 0,定址外部ROM
地址長度:16位
作用: 存放程序及程序運行時所需的常數
數據存儲器片內數據存儲器為8位地址,所以最大可定址的范圍為256個單元地址,對片外數據存儲器採用間接定址方式,R0、R1和DPTR都可以做為間接定址寄存器,R0、R1是8位的寄存器,即R0、R1的定址范圍最大為256個單元,而DPTR是16位地址指針,定址范圍就可達到64KB。
也就是說在定址片外數據存儲器時,定址范圍超過了256B,就不能用R0、R1做為間接定址寄存器,而必須用DPTR寄存器做為間接定址寄存器。其中片內數據存儲器分為兩部分,地址從00H—7FH單元(共128個位元組)為用戶數據RAM,從80H—FFH地址單元(也是128個位元組)為特殊寄存器(SFR)單元。
⑨ 51單片機寄存器存儲器分幾個區分區受什麼影響
51單片機寄存器存儲器分區如下:
1、00H~1FH,該區為工作寄存器區域,分為四組,即:00H--07H,08H--0FH,10H--17H,18H--1FH,由RS1RS0來控制。
2、20H~2FH,該區為位址區域,該區域可以位定址,位地址為00H~7FH。
3、30H~7FH,該區域為用戶自由支配區。
4、80H~FFH,該區域為擴展區,52單片機,該區域用戶可以通過間接定址訪問使用。