1. 單片機存儲器分為哪幾類,各有哪些特點和用
單片機存儲器分為:程序存儲器和數據存儲器。
數據存儲器又分為:內部數據存儲器和外部數據存儲器。
內部數據存儲器又分為:
1、工作寄存器,共4組,地址范圍00H~1FH
2、位址空間,地址范圍20H~2FH
3、用戶寄存器,地址范圍30H~7FH(FFH)
4、特殊功能寄存器,地址范圍80H~FFH
2. 8051單片機的內部硬體結構包括哪五大部分
8051單片機的內部硬體結構包括:
1、中央處理器CPU:它是單片機內部的核心部件,決定了單片機的主要功能特性,由運算器和控制器兩大部分組成。
2、存儲器:8051單片機在系統結構上採用了哈佛型,將程序和數據分別存放在兩個存儲器內,一個稱為程序存儲器,另一個為數據存儲器在物理結構上分程序存儲器和數據存儲器,有四個物理上相互獨立的存儲空間,即片內ROM和片外ROM,片內RAM和片外RAM。
3、定時器/計數器(T/C):8051單片機內有兩個16位的定時器/計數器,每個T/C既可以設置成計數方式,也可以設置成定時方式,並以其定時計數結果對計算機進行控制。
4、並行I/O口:8051有四個8位並行I/O介面(P0~P3),以實現數據的並行輸入輸出。
5、串列口:8051單片機有一個全雙工的串列口,可實現單片機和單片機或其他設備間的串列通信。
6、中斷控制系統:8051共有5個中斷源,非為高級和低級兩個級別它可以接收外部中斷申請、定時器/計數器申請和串列口申請,常用於實時控制、故障自動處理、計算機與外設間傳送數據及人機對話等。
(2)單片機中哪個是數據存儲器擴展閱讀:
單片機不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。
概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。
單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。
3. 單片機應用程序一般存放在哪一個存儲器中
ROM。只讀存儲器(Read-Only Memory,ROM)以非破壞性讀出方式工作,只能讀出無法寫入信息。信息一旦寫入後就早型固定下來,即使切斷電源,信息也不會丟失,所以又稱為固定存儲器。
ROM所存數據通常是裝入整機前寫入的,整機工作過程中只能讀出,不像隨機存儲器能快速方便地改寫存儲內容。ROM所存數據穩定 ,斷電後所存數據也不會改變,並且結構較簡單,使用方便,因而常用於存儲各種固定程序和數據。
(3)單片機中哪個是數據存儲器擴展閱讀
單片機的數據存儲器由讀寫存儲器RAM組成。其最大容量可擴展到64k,用於存儲實時輸入的數據。8051內部有256個單元的內部數據存儲器,其中00H~7FH為內部隨機存儲器RAM,80H~FFH為專用寄存器察判區。
實際使用時應首先充分利用內部存儲器,從使用角度講,搞清內部數據存儲器的結構和地址分配是十分重要的。因為將來在學習指令系統和程序設計時會經常用到它們。
8051內部數據存儲器地址由00H至FFH共有256個位元組的地址空間,該空間被分為兩部分,其中內部數據RAM的地址為00H~7FH(即0~127)。
而用做特殊功能寄存器的地址為80H~FFH。在此256個位元組中,還開辟有一個所謂「位地址」區,該區域內不但可按位元組定址,還可按「位(bit)」定址。對於那些需要進行位操作的數據,可以存放到這個區域。從00H到1FH安排了四組工作寄存器,每組佔用8個RAM位元組,記為R0~陸沒猜R7。
4. 單片機中 什麼是片內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之類的,不是這種結構的。
5. 單片機的數據存儲器是指外部存貯器
單片機的數據存儲器是指外部存貯器是對的。單片機的分為數據存儲器和程序存儲器。單片機內部的存儲器稱為片內存儲器,片外擴展的存儲器成為片外存儲器。
6. 單片機的存儲器可以分為幾種
單片機的存儲器可分為程序存儲器(ROM)和數據存儲器(RAM)。
程序存儲器是專門用來存放程序和常數的。
數據存儲器是程序在運行中存放臨時數據的,掉電後數據即丟失,現在有些型號的單片機提供了EEPROM,可用來存儲掉電後需要保存的關鍵數據,如系統的一些設置參數。