① 單片機基本結構
單片機,全稱單片微型計算機,又稱微控制器,是把中央處理器、存儲器、定時/計數器、各種輸入輸出介面等都集成在一塊集成電路晶元上的微型計算機。 單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。
基本結構
1.運算器
運算器由運算部件——算術邏輯單元(Arithmetic&Logical Unit,簡稱ALU)、累加器和寄存器等幾部分組成。ALU的作用是把傳來的數據進行算術或邏輯運算,輸入來源為兩個8位數據,分別來自累加器和數據寄存器。ALU能完成對這兩個數據進行加、減、與、或、比較大小等操作,最後將結果存入累加器。例如,兩個數6和7相加,在相加之前,操作數6放在累加器中,7放在數據寄存器中,當執行加法指令時,ALU即把兩個數相加並把結果13存入累加器,取代累加器原來的內容6。
運算器有兩個功能:
(1) 執行各種算術運算。
(2) 執行各種邏輯運算,並進行邏輯測試,如零值測試或兩個值的比較。
運算器所執行全部操作都是由控制器發出的控制信號來指揮的,並且,一個算術操作產生一個運算結果,一個邏輯操作產生一個判決。
2.控制器
控制器由程序計數器、指令寄存器、指令解碼器、時序發生器和操作控制器等組成,是發布命令的「決策機構」,即協調和指揮整個微機系統的操作。其主要功能有:
(1) 從內存中取出一條指令,並指出下一條指令在內存中的位置。
(2) 對指令進行解碼和測試,並產生相應的操作控制信號,以便於執行規定的動作。
(3) 指揮並控制CPU、內存和輸入輸出設備之間數據流動的方向。
微處理器內通過內部匯流排把ALU、計數器、寄存器和控制部分互聯,並通過外部匯流排與外部的存儲器、輸入輸出介面電路聯接。外部匯流排又稱為系統匯流排,分為數據匯流排DB、地址匯流排AB和控制匯流排CB。通過輸入輸出介面電路,實現與各種外圍設備連接。
3.主要寄存器
(1)累加器A
圖1-2 單片機組成框圖
累加器A是微處理器中使用最頻繁的寄存器。在算術和邏輯運算時它有雙功能:運算前,用於保存一個操作數;運算後,用於保存所得的和、差或邏輯運算結果。
(2)數據寄存器DR
數據寄存器通過數據匯流排向存儲器和輸入/輸出設備送(寫)或取(讀)數據的暫存單元。它可以保存一條正在解碼的指令,也可以保存正在送往存儲器中存儲的一個數據位元組等等。
(3)指令寄存器IR和指令解碼器ID
指令包括操作碼和操作數。
指令寄存器是用來保存當前正在執行的一條指令。當執行一條指令時,先把它從內存中取到數據寄存器中,然後再傳送到指令寄存器。當系統執行給定的指令時,必須對操作碼進行解碼,以確定所要求的操作,指令解碼器就是負責這項工作的。其中,指令寄存器中操作碼欄位的輸出就是指令解碼器的輸入。
(4)程序計數器PC
PC用於確定下一條指令的地址,以保證程序能夠連續地執行下去,因此通常又被稱為指令地址計數器。在程序開始執行前必須將程序的第一條指令的內存單元地址(即程序的首地址)送入PC,使它總是指向下一條要執行指令的地址。
(5)地址寄存器AR
地址寄存器用於保存當前CPU所要訪問的內存單元或I/O設備的地址。由於內存與CPU之間存在著速度上的差異,所以必須使用地址寄存器來保持地址信息,直到內存讀/寫操作完成為止。
顯然,當CPU向存儲器存數據、CPU從內存取數據和CPU從內存讀出指令時,都要用到地址寄存器和數據寄存器。同樣,如果把外圍設備的地址作為內存地址單元來看的話,那麼當CPU和外圍設備交換信息時,也需要用到地址寄存器和數據寄存器。
② 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設備。
概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。
單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。
③ 分析at89s52單片機的存儲器結構
1.程序存儲器
設計人員編寫的程序存放在微處理器的程序存儲器中。
at89s52具有64kb程序存儲器定址空間,它是用於存放用戶程序、數據和表格等信息,程序存儲器的結構如圖1所示。
圖1 at89s52程序存儲器的結構
at89s52片內片外的程序存儲器在統一邏輯空間中,地址從0000h~ffffh,共有64k位元組范圍。引腳接高電平時,程序從片內程序存儲器0000h開始執行,即訪問片內存儲器。當pc值超出片內rom容量時,會自動轉向片外程序存儲器空間執行。引腳接低電平時,迫使系統全部執行片外程序存儲器0000h開始存放的程序。
2.數據存儲器
at89s52 有256 位元組片內數據存儲器。地址為00h~ffh。這256個單元共分為兩部分。其一是地址從00h~7fh單元(共128個位元組)為用戶數據ram。從80h~ffh地址單元(也是128個位元組)為特殊寄存器(sfr)單元。高128 位元組與特殊功能寄存器重疊,也就是說高128位元組與特殊功能寄存器有相同的地址,而物理上是分開的。
在00h~1fh共32個單元中被均勻地分為四塊,每塊包含八個8位寄存器,均以r0~r7來命名,稱這些寄存器為通用寄存器。這四塊中的寄存器都稱為r0~r7,利用psw的第3和第4位(rs0和rs1),即可選中這四組通用寄存器。
內部數據存儲器的20h—2fh單元為位定址區,可作為一般單元用位元組定址,也可對它們的位進行定址,位定址區地址如表1所示
表1 ram位定址區地址表
3. 中斷服務程序的入口地址
在程序存儲區中,為中斷服務程序保存了一段中斷服務程序的入口地址:其中一組特殊單元是0003h—0032h,各個單元各有用途,它們被分為六段,每個段8個位元組,專門留給中斷服務程序使用,被稱為中斷矢量區。at89s52共有8個中斷源,6個中斷矢量,它們的定義如下表2所,
表2 中斷服務程序的入口地址
4.特殊功能寄存器sfr(special? function register)
特殊功能寄存器是指有特殊用途的寄存器集合,也稱為專用寄存器,本質上是一些具有特殊功能的片內ram單元,反映單片機的運行狀態,很多功能也通過特殊功能寄存器來定義和控製程序的執行。
at89s52單片機內部高128(80~ffh)地址分配給特殊功能寄存器。這個地址空間和晶元內數據存儲器的高128位元組地址完全重疊,但兩者在物理硬體上是完全獨立的,用定址方式來區分這個完全重疊的地址空間。使用直接定址方式訪問這個地址空間時,訪問的是特殊功能寄存器;使用間接定址方式訪問這個地址空間時,訪問的是數據存儲器。
at89s52有32個特殊功能寄存器,它們被離散地分布在內部ram的80h~ffh地址中,這些寄存的功能已作了專門的規定,用戶不能修改其結構。
5.幾個注意問題
(1)地址的重疊性
單片機中的所有存儲器都必須分配地址,可以定址的地址范圍為64kb,數據存儲器與程序存儲器都佔用相同的地址。
程序存儲器中片內片外0000h~0ffffh低4kb地址完全重疊,但是我們使用引腳進行區分:=0時,選擇片外,=1時,選擇片內,這樣就完全區分開來了。
數據存儲器中片內外0000h~00ffh的256個單元地址完全重疊,片內外數據的訪問採用不同指令來區分:mov指令訪問片內數據存儲器,movx指令訪問片外數據存儲器。
(2)程序存儲器(rom)與數據存儲器(ram)的區分
程序存儲器(rom)與數據存儲器(ram)的區分在使用上是嚴格區分的,程序存儲器只能放置程序指令及常數表格,對程序存儲器中數據的訪問只可以使用movc指令。而數據存儲器則存放數據,片內外的操作指令分別用mov,movx進行操作。
(3)位地址空間的區域劃分
片內ram中的20h~2fh的128位,以及sfr中的位地址,這些位定址單元與位指令集構成了位處理器系統
④ 單片機的基本結構
運算器由運算部件——算術邏輯單元(Arithmetic & Logical Unit,簡稱ALU)、累加器和寄存器等幾部分組成。ALU的作用是把傳來的數據進行算術或邏輯運算,輸入來源為兩個8位數據,分別來自累加器和數據寄存器。ALU能完成對這兩個數據進行加、減、與、或、比較大小等操作,最後將結果存入累加器。例如,兩個數6和7相加,在相加之前,操作數6放在累加器中,7放在數據寄存器中,當執行加法指令時,ALU即把兩個數相加並把結果13存入累加器,取代累加器原來的內容6。
運算器有兩個功能:
(1) 執行各種算術運算。
(2) 執行各種邏輯運算,並進行邏輯測試,如零值測試或兩個值的比較。
運算器所執行全部操作都是由控制器發出的控制信號來指揮的,並且,一個算術操作產生一個運算結果,一個邏輯操作產生一個判決。 控制器由程序計數器、指令寄存器、指令解碼器、時序發生器和操作控制器等組成,是發布命令的「決策機構」,即協調和指揮整個微機系統的操作。其主要功能有:
(1) 從內存中取出一條指令,並指出下一條指令在內存中的位置。
(2) 對指令進行解碼和測試,並產生相應的操作控制信號,以便於執行規定的動作。
(3) 指揮並控制CPU、內存和輸入輸出設備之間數據流動的方向。
微處理器內通過內部匯流排把ALU、計數器、寄存器和控制部分互聯,並通過外部匯流排與外部的存儲器、輸入輸出介面電路聯接。外部匯流排又稱為系統匯流排,分為數據匯流排DB、地址匯流排AB和控制匯流排CB。通過輸入輸出介面電路,實現與各種外圍設備連接。 (1)累加器A
圖1-2 單片機組成框圖
累加器A是微處理器中使用最頻繁的寄存器。在算術和邏輯運算時它有雙功能:運算前,用於保存一個操作數;運算後,用於保存所得的和、差或邏輯運算結果。
(2)數據寄存器DR
數據寄存器通過數據匯流排向存儲器和輸入/輸出設備送(寫)或取(讀)數據的暫存單元。它可以保存一條正在解碼的指令,也可以保存正在送往存儲器中存儲的一個數據位元組等等。
(3)指令寄存器IR和指令解碼器ID
指令包括操作碼和操作數。
指令寄存器是用來保存當前正在執行的一條指令。當執行一條指令時,先把它從內存中取到數據寄存器中,然後再傳送到指令寄存器。當系統執行給定的指令時,必須對操作碼進行解碼,以確定所要求的操作,指令解碼器就是負責這項工作的。其中,指令寄存器中操作碼欄位的輸出就是指令解碼器的輸入。
(4)程序計數器PC
PC用於確定下一條指令的地址,以保證程序能夠連續地執行下去,因此通常又被稱為指令地址計數器。在程序開始執行前必須將程序的第一條指令的內存單元地址(即程序的首地址)送入PC,使它總是指向下一條要執行指令的地址。
(5)地址寄存器AR
地址寄存器用於保存當前CPU所要訪問的內存單元或I/O設備的地址。由於內存與CPU之間存在著速度上的差異,所以必須使用地址寄存器來保持地址信息,直到內存讀/寫操作完成為止。
顯然,當CPU向存儲器存數據、CPU從內存取數據和CPU從內存讀出指令時,都要用到地址寄存器和數據寄存器。同樣,如果把外圍設備的地址作為內存地址單元來看的話,那麼當CPU和外圍設備交換信息時,也需要用到地址寄存器和數據寄存器。
⑤ 51單片機最小系統原理圖
我是一名單片機工程師,下面的講解你參考一下.
.
51單片機共有40隻引腳.下面這個就是最小系統原理圖,就是靠這四個部分,這個單片機就可以運行起來了.(看下面的數字標記,1234)
.
這個腳是存儲器使用選擇腳,當這個腳接」地」時,那麼就是告訴單片機,選擇使用外部存儲器,當這個腳接」5V」時,說明單片機使用內部存儲器.
如果選擇外部的存儲器,太浪費單片機僅有的資源,所以這一腳永遠接電源5V(如上圖所示),使用單片機的內部存儲器.
5 如果內部存儲器不夠容量,最多選擇更高級的容量,就可以解決容量不夠的問題了,就是這么簡單
.
一天入門51單片機:點我學習
.
我是歲月哥,願你學習愉快!
⑥ 單片機的基本組成部分是什麼
原發布者:www13974842010
單片機的基本組成在講單片機的組成之前我們先來說一下大家都熟知的計算機一、計算機的經典結構在設計計算機時匈牙利籍數學家馮.諾依曼提出的「程序存儲」和「二進制運算」的思想。1、二進制運算決定了計算機的硬體結構。二進制運算包括二進制算術運算和邏輯運算(邏輯運算的基礎是邏輯代數,又稱布爾代數)。邏輯量只表示兩種不同的狀態,可以對應電子線路中的電阻高低、二極體、三極體的通斷等。因此,二進制運算決定了計算機可以由電子元器件,特別是集成電路組成。2、程序存儲決定了軟體控制硬體工作。因此,計算機的基本結構包括硬體和軟體兩部分。計算機的工作原理:由輸入設備將軟體送入存儲器,然後由控制器逐條取出存儲器中的控制軟體,並運行,再將運行結果送到輸出設備。3、計算機的經典結構根據以上思路,計算機由運算器、控制器、存儲器和輸入設備、輸出設備組成。圖1.1.1計算機經典結構圖對經典結構中各部分有機組合,就構成了微型計算機。由於各部分的具體電路(元器件及元器件的組合方式)不同,又形成了各種應用形態。二、微型計算機(Microcomputer)組成及應用形態1、微型計算機組成將經典結構中的運算器、控制器組合在一起,再增加一些寄存器等,集成為一個晶元,這個晶元稱為微處理器(Microcontroller),即CPU(CenterProcessingUnit)。這樣微型計算機就由CPU、存儲器、輸入/輸出(I/O)介面組成。再配以輸入/輸出(I/O)設備和軟體,就構成了微型計算機
⑦ 51單片機的結構組成
上圖就是我們要研究學習的對象,51單片機摧部結構圖了。大家看看上圖,中間的一條雙橫線就是51單片機的內部匯流排了。其它的部件都是通過內部的匯流排與CPU相聯接的,在第一節課時我們已跟大家講述過,8051單片機是匯流排結構的。下面我們就51單片機內部的單個部件與大家進行講解。
中央處理器(CPU):
剛跟大家講過,需要提醒的是MCS-51的CPU能處理8位二進制數或代碼。CPU是單片機的主要核心部件,在CPU裡麵包含了運算器、控制器以及若干寄存器等部件給成。
內部數據存儲器(RAM):
MCS-51單片機晶元共有256個RAM單元,其中後128單元被專用寄存器佔用(稍後我們詳解),能作為寄存器供用戶使用的只是前128單元,用於存放可讀寫的數據。因此通常所說的內部數據存儲器就是指前128單元,簡稱內部RAM。地址范圍為00H~FFH(256B)。是一個多用多功能數據存儲器,有數據存儲、通用工作寄存器、堆棧、位地址等空間。
內部程序存儲器(ROM):
在前面也已講過,MCS-51內部有4KB/8KB位元組的ROM(51系列為4KB,51系列為8KB),用於存放程序、原始數據或表格。因此稱之為程序存儲器,簡稱內部RAM。地址范圍為0000H~FFFFH(64KB)。
定時器/計數器
51系列共有2個16位的定時器/計數器(52系列共有3個16位的定時器/計數器),以實現定時或計數功能,並以其定時或計數結果對計算機進行控制。定時時靠內部分頻時鍾頻率計數實現,做計數器時,對P3.4(T0)或P3.5(T1)埠的低電平脈沖計數。
並行I/O口
MCS-51共有4個8位的I/O口(P0、P1、P2、P3)以實現數據的輸入輸出。具體功能在後面章節中將會詳細論述。
串列口
MCS-51有一個可編程的全雙工的串列口,以實現單片機和其它設備之間的串列數據傳送。該串列口功能較強,既可作為全雙工非同步通信收發器使用,也可作為移位器使用。RXD( P3.0)腳為接收埠,TXD(P3.1)腳為發送埠。
中斷控制系統
MCS-51單片機的中斷功能較強,以滿足不同控制應用的需要。51系列有5個中斷源(52系列有6個中斷源),即外中斷2個,定時中斷2個,串列中斷1個,全部中斷分為高級和低級共二個優先順序別,優先順序別的設置我們也將在後面進行詳細的講解。
定時與控制部件
MCS-51單片機內部有一個高增益的反相放大器,基輸入端為XTAL1輸出端為XTAL2。MCS-51晶元的內部有時鍾電路,但石英晶體和微調電容需外接。時鍾電路為單片機產生時鍾脈沖序列。
⑧ 微處理器微計算機微處理機單片機cpu區別
微處理器、微計算機、微處理機、CPU、單片機、嵌入式處理器它們分別是不同的概念,區別很大。具體來說:
1、含義不同:微處理器就是我們所說的CPU又叫中央處理器,其主要功能是進行運算和邏輯運算。微計算機,簡稱微型機或微機,它的發展是以微處理器的發展來表徵的。
單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。
2、內部結構不同:微處理器內部結構大概可以分為控制單元、算術邏輯單元和存儲單元等幾個部分。將傳統計算機的運算器和控制器集成在一塊大規模集成電路晶元上作為中央處理單CPU,稱為微處理器。
單片機是一塊晶元集成CPU中央處理器進行運算、控制和適當容量的存儲器M(有RAM,ROM,)輸入和輸出I/O介面電路三個基本部件所組成在通過介面電路與外圍設備相連接。
3、構成方式不同:微處理器按照其處理信息的字長可以分為:八位微處理器、十六位微處理器、三十二位微處理器以及六十四位微處理器等等。
微型計算機是以微處理器為核心,再配上存儲器和介面電路等晶元構成的。
單片機的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。
(8)單片機結構圖擴展閱讀:
微處理器由一片或少數幾片大規模集成電路組成的中央處理器。這些電路執行控制部件和算術邏輯部件的功能。
微處理器能完成取指令、執行指令,以及與外界存儲器和邏輯部件交換信息等操作,是微型計算機的運算控制部分。它可與存儲器和外圍電路晶元組成微型計算機。
微處理器與傳統的中央處理器相比,具有體積小、重量輕和容易模塊化等優點。微處理器的基本組成部分有:寄存器堆、運算器、時序控制電路,以及數據和地址匯流排。
⑨ MCS-51系列單片機包括哪幾個主要部件各自的邏輯功能如何急!!!
MCS-51單片機存儲器結構2008年06月01日 星期日 12:31MCS-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位
作用: 存放程序及程序運行時所需的常數。
七個具有特殊含義的單元是:
0000H —— 系統復位,PC指向此處;
0003H —— 外部中斷0入口
000BH —— T0溢出中斷入口
0013H —— 外中斷1入口
001BH —— T1溢出中斷入口
0023H —— 串口中斷入口
002BH —— T2溢出中斷入口
內部數據存儲器RAM
物理上分為兩大區:00H ~ 7FH即128B內RAM 和 SFR區。
作用:作數據緩沖器用。
下圖是8051單片機存儲器的空間結構圖
程序存儲器
一個微處理器能夠聰明地執行某種任務,除了它們強大的硬體外,還需要它們運行的軟體,其實微處理器並不聰明,它們只是完全按照人們預先編寫的程序而執行之。那麼設計人員編寫的程序就存放在微處理器的程序存儲器中,俗稱只讀程序存儲器(ROM)。程序相當於給微處理器處理問題的一系列命令。其實程序和數據一樣,都是由機器碼組成的代碼串。只是程序代碼則存放於程序存儲器中。
MCS-51具有64kB程序存儲器定址空間,它是用於存放用戶程序、數據和表格等信息。對於內部無ROM的8031單片機,它的程序存儲器必須外接,空間地址為64kB,此時單片機的端必須接地。強制CPU從外部程序存儲器讀取程序。對於內部有ROM的8051等單片機,正常運行時,則需接高電平,使CPU先從內部的程序存儲中讀取程序,當PC值超過內部ROM的容量時,才會轉向外部的程序存儲器讀取程序。
當=1時,程序從片內ROM開始執行,當PC值超過片內ROM容量時會自動轉向外部ROM空間。
當=0時,程序從外部存儲器開始執行,例如前面提到的片內無ROM的8031單片機,在實際應用中就要把8031的引腳接為低電平。
8051片內有4kB的程序存儲單元,其地址為0000H—0FFFH,單片機啟動復位後,程序計數器的內容為0000H,所以系統將從0000H單元開始執行程序。但在程序存儲中有些特殊的單元,這在使用中應加以注意:
其中一組特殊是0000H—0002H單元,系統復位後,PC為0000H,單片機從0000H單元開始執行程序,如果程序不是從0000H單元開始,則應在這三個單元中存放一條無條件轉移指令,讓CPU直接去執行用戶指定的程序。
另一組特殊單元是0003H—002AH,這40個單元各有用途,它們被均勻地分為五段,它們的定義如下:
0003H—000AH 外部中斷0中斷地址區。
000BH—0012H 定時/計數器0中斷地址區。
0013H—001AH 外部中斷1中斷地址區。
001BH—0022H 定時/計數器1中斷地址區。
0023H—002AH 串列中斷地址區。
可見以上的40個單元是專門用於存放中斷處理程序的地址單元,中斷響應後,按中斷的類型,自動轉到各自的中斷區去執行程序。從上面可以看出,每個中斷服務程序只有8個位元組單元,用8個位元組來存放一個中斷服務程序顯然是不可能的。因此以上地址單元不能用於存放程序的其他內容,只能存放中斷服務程序。但是通常情況下,我們是在中斷響應的地址區安放一條無條件轉移指令,指向程序存儲器的其它真正存放中斷服務程序的空間去執行,這樣中斷響應後,CPU讀到這條轉移指令,便轉向其他地方去繼續執行中斷服務程序。
下圖是ROM的地址分配圖:
從上圖中大家可以看到,0000H-0002H,只有三個存儲單元,3個存儲單元在我們的程序存放時是存放不了實際意義的程序的,通常我們在實際編寫程序時是在這里安排一條ORG指令,通過ORG指令跳轉到從0033H開始的用戶ROM區域,再來安排我們的程序語言。從0033開始的用戶ROM區域用戶可以通過ORG指令任意安排,但在應用中應注意,不要超過了實際的存儲空間,不然程序就會找不到。
數據存儲器
數據存儲器也稱為隨機存取數據存儲器。數據存儲器分為內部數據存儲和外部數據存儲。MCS-51內部RAM有128或256個位元組的用戶數據存儲(不同的型號有分別),片外最多可擴展64KB的RAM,構成兩個地址空間,訪問片內RAM用「MOV」指令,訪問片外RAM用「MOVX」指令。它們是用於存放執行的中間結果和過程數據的。MCS-51的數據存儲器均可讀寫,部分單元還可以位定址。
MCS-51單片機的內部數據存儲器在物理上和邏輯上都分為兩個地址空間,即:
數據存儲器空間(低128單元);
特殊功能寄存器空間(高128單元);
這兩個空間是相連的,從用戶角度而言,低128單元才是真正的數據存儲器。下面我們就來詳細的與大家講解一下:
低128單元:
片內數據存儲器為8位地址,所以最大可定址的范圍為256個單元地址,對片外數據存儲器採用間接定址方式,R0、R1和DPTR都可以做為間接定址寄存器,R0、R1是8位的寄存器,即R0、R1的定址范圍最大為256個單元,而DPTR是16位地址指針,定址范圍就可達到64KB。也就是說在定址片外數據存儲器時,定址范圍超過了256B,就不能用R0、R1做為間接定址寄存器,而必須用DPTR寄存器做為間接定址寄存器。
從上圖中我們可以看到,8051單片機片內RAM共有256個單元(00H-FFH),這256個單元共分為兩部分。其一是地址從00H—7FH單元(共128個位元組)為用戶數據RAM。從80H—FFH地址單元(也是128個位元組)為特殊寄存器(SFR)單元。從圖1中可清楚地看出它們的結構分布。
1、通用寄存器區(00H-1FH)
在00H—1FH共32個單元中被均勻地分為四塊,每塊包含八個8位寄存器,均以R0—R7來命名,我們常稱這些寄存器為通用寄存器。這四塊中的寄存器都稱為R0—R7,那麼在程序中怎麼區分和使用它們呢?聰明的INTEL工程師們又安排了一個寄存器——程序狀態字寄存器(PSW)來管理它們,CPU只要定義這個寄存的PSW的D3和D4位(RS0和RS1),即可選中這四組通用寄存器。對應的編碼關系如下表所示。惹程序中並不需要用4組,那麼其餘的可用做一般的數據緩沖器,CPU在復位後,選中第0組工作寄存器。
2、位定址區(20H-2FH)
片內RAM的20H—2FH單元為位定址區,既可作為一般單元用位元組定址,也可對它們的位進行定址。位定址區共有16個位元組,128個位,位地址為00H—7FH。位地址分配如下表所示:
++++++++
CPU能直接定址這些位,執行例如置「1」、清「0」、求「反」、轉移,傳送和邏輯等操作。我們常稱MCS-51具有布爾處理功能,布爾處理的存儲空間指的就是這些為定址區。
3、用戶RAM區(30H-7FH)
在片內RAM低128單元中,通用寄存器佔去32個單元,位定址區佔去16個單元,剩下的80個單元就是供用戶使用的一般RAM區了,地址單元為30H-7FH。對這部份區域的使用不作任何規定和限制,但應說明的是,堆棧一般開辟在這個區域。
高128單元:(80H-FFH)
前面提到,在片內的RAM中,高128位是專用寄存器區,因這節比較重要,所以我們單獨的安排一節課跟大家介紹。下節課我們就重點介紹51單片機片內RAM的高128位,即專用寄存器區