單片機的存儲器有程序存儲器ROM與數(shù)據(jù)存儲器RAM兩種。 這兩種存儲器在使用上是嚴(yán)格區(qū)分的,不得混用。 程序存儲器存放程序指令,以及常數(shù),表格等;而數(shù)據(jù)存儲器則存放緩沖數(shù)據(jù)。
MCS-51單片機存儲器的結(jié)構(gòu)共有3部分:一是程序存儲器??二是內(nèi)部數(shù)據(jù)存儲器 三是外部數(shù)據(jù)存儲器MCS-51單片機的存儲器可分為5類:程序存儲器、內(nèi)部數(shù)據(jù)存儲器、特殊功能寄存器、位地址空間、外部數(shù)據(jù)存儲器
程序存儲器
程序是控制計算機動作的一系列命令,單片機只認(rèn)識由“0”和“1”代碼構(gòu)成的機器指令。如前述用助記符編寫的命令MOV A,#20H,換成機器認(rèn)識的代碼74H、20H:(寫成二進(jìn)制就是01110100B和00100000B)。在單片機處理問題之前必須事先將編好的程序、表格、常數(shù)匯編成機器代碼后存入單片機的存儲器中,該存儲器稱為程序存儲器。程序存儲器可以放在片內(nèi)或片外,亦可片內(nèi)片外同時設(shè)置。由于PC程序計數(shù)器為16位,使得程序存儲器可用16位二進(jìn)制地址,因此,內(nèi)外存儲器的地址最大可從0000H到FFFFH。8051內(nèi)部有4k字節(jié)的ROM,就占用了由0000H~0FFFH的最低4k個字節(jié),這時片外擴充的程序存儲器地址編號應(yīng)由1000H開始,如果將8051當(dāng)做8031使用,不想利用片內(nèi)4kROM,全用片外存儲器,則地址編號仍可由0000H開始。不過,這時應(yīng)使8051的第{31}腳(即EA腳)保持低電平。當(dāng)EA為高電平時,用戶在0000H至0FFFH范圍內(nèi)使用內(nèi)部ROM,大于0FFFH后,單片機CPU自動訪問外部程序存儲器。
數(shù)據(jù)存儲器
單片機的數(shù)據(jù)存儲器由讀寫存儲器RAM組成。其最大容量可擴展到64k,用于存儲實時輸入的數(shù)據(jù)。8051內(nèi)部有256個單元的內(nèi)部數(shù)據(jù)存儲器,其中00H~7FH為內(nèi)部隨機存儲器RAM,80H~FFH為專用寄存器區(qū)。實際使用時應(yīng)首先充分利用內(nèi)部存儲器,從使用角度講,搞清內(nèi)部數(shù)據(jù)存儲器的結(jié)構(gòu)和地址分配是十分重要的。因為將來在學(xué)習(xí)指令系統(tǒng)和程序設(shè)計時會經(jīng)常用到它們。8051內(nèi)部數(shù)據(jù)存儲器地址由00H至FFH共有256個字節(jié)的地址空間,該空間被分為兩部分,其中內(nèi)部數(shù)據(jù)RAM的地址為00H~7FH(即0~127)。而用做特殊功能寄存器的地址為80H~FFH。在此256個字節(jié)中,還開辟有一個所謂“位地址”區(qū),該區(qū)域內(nèi)不但可按字節(jié)尋址,還可按“位(bit)”尋址。對于那些需要進(jìn)行位操作的數(shù)據(jù),可以存放到這個區(qū)域。從00H到1FH安排了四組工作寄存器,每組占用8個RAM字節(jié),記為R0~R7。究竟選用那一組寄存器,由前述標(biāo)志寄存器中的RS1和RS0來選用。在這兩位上放入不同的二進(jìn)制數(shù),即可選用不同的寄存器組。
特殊功能寄存器
特殊功能寄存器(SFR)的地址范圍為80H~FFH。在MCS-51中,除程序計數(shù)器PC和四個工作寄存器區(qū)外,其余21個特殊功能寄存器都在這SFR塊中。其中5個是雙字節(jié)寄存器,它們共占用了26個字節(jié)。各特殊功能寄存器的符號和地址見附表2。其中帶*號的可位尋址。特殊功能寄存器反映了8051的狀態(tài),實際上是8051的狀態(tài)字及控制字寄存器。用于CPU PSW便是典型一例。這些特殊功能寄存器大體上分為兩類,一類與芯片的引腳有關(guān),另一類作片內(nèi)功能的控制用。與芯片引腳有關(guān)的特殊功能寄存器是P0~P3,它們實際上是4個八位鎖存器(每個I/O口一個),每個鎖存器附加有相應(yīng)的輸出驅(qū)動器和輸入緩沖器就構(gòu)成了一個并行口。MCS-51共有P0~P3四個這樣的并行口,可提供32根I/O線,每根線都是雙向的,并且大都有第二功能。其余用于芯片控制的寄存器中,累加器A、標(biāo)志寄存器PSW、數(shù)據(jù)指針DPTR等的功能前已提及,而另一些寄存器的功能在后面有關(guān)部分再作進(jìn)一步介紹。
地址空間
要保證多個應(yīng)用程序同時處于內(nèi)存中并且不互相影響,則需要解決兩個問題:保護(hù)和重定位。我們來看一個原始的對前者的解決辦法,它曾被用在IBM 360上:給內(nèi)存塊標(biāo)記上一個保護(hù)鍵,并且比較執(zhí)行進(jìn)程的鍵和其訪問的每個內(nèi)存字的保護(hù)鍵。然而,這種方法本身并沒有解決后一個問題,雖然這個問題可以通過在程序被裝載時重定位程序來解決,但這是一個緩慢且復(fù)雜的解決方法。
一個更好的辦法是創(chuàng)造一個新的內(nèi)存抽象:地址空間。就像進(jìn)程的概念創(chuàng)造了一類抽象的CPU以運行程序一樣,地址空間為程序創(chuàng)造了一種抽象的內(nèi)存。地址空間是一個進(jìn)程可用于尋址內(nèi)存的一套地址集合。每個進(jìn)程都有一個自己的地址空間,并且這個地址空間獨立于其他進(jìn)程的地址空間(除了在一些特殊情況下進(jìn)程需要共享它們的地址空間外)。
地址空間的概念非常通用,并且在很多場合中出現(xiàn)。比如電話號碼,在美國和很多其他國家,一個本地電話號碼通常是一個7位的數(shù)字。因此,電話號碼的地址空間是從0 000 000到9 999 999,雖然一些號碼并沒有被使用,比如以000開頭的號碼。隨著手機、調(diào)制解調(diào)器和傳真機數(shù)量的增長,這個空間變得越來越不夠用了,從而導(dǎo)致需要使用更多位數(shù)的號碼。Pentium的I/O端口的地址空間從0到16 383。IPv4的地址是32位的數(shù)字,因此它們的地址空間從0到232-1(也有一些保留數(shù)字)。
地址空間可以不是數(shù)字的。一套“.com”的互聯(lián)網(wǎng)域名也是地址空間。這個地址空間是由所有包含2~63個字符并且后面跟著“.com”的字符串組成的,組成這些字符串的字符可以是字母、數(shù)字和連字符。到現(xiàn)在你應(yīng)該已經(jīng)明白地址空間的概念了。它是很簡單的。
外部存儲器
軟盤、硬盤、光盤、U盤都是外部存儲器。 從馮.諾依曼的存儲程序工作原理及計算機的組成來說,計算機分為運算器、控制器、存儲器和輸入/輸出設(shè)備,這里的存儲器就是指內(nèi)存,而硬盤屬于輸入/輸出設(shè)備。 CPU運算所需要的程序代碼和數(shù)據(jù)來自于內(nèi)存,內(nèi)存中的東西則來自于硬盤。所以硬盤并不直接與CPU打交道。 硬盤相對于內(nèi)存來說就是外部存儲器。 存儲器是用來存儲器數(shù)據(jù)的,內(nèi)存有告訴緩存和內(nèi)存,計算機內(nèi)部存儲,外存就是類似U盤的外部存儲,內(nèi)存儲器 速度快 價格貴,容量小,斷電 后內(nèi)存內(nèi)數(shù)據(jù)會丟失。 外存儲器 單位價格低,容量大, 速度慢, 斷電后數(shù)據(jù)不會丟失。
- 單片機(619327)
- 存儲器(161620)
相關(guān)推薦
51單片機存儲器擴展問題
51單片機與中斷相關(guān)的寄存器簡介
51單片機外擴數(shù)據(jù)存儲器最大的容量是多少?
51單片機尋址方式的疑問:為什么B寄存器在乘除法指令中是寄存器尋址?
51單片機的存儲器分為倆大部分
51系列單片機的內(nèi)部存儲器簡介
8051單片機內(nèi)部程序存儲器容量
單片機存儲器的相關(guān)資料下載
單片機存儲器結(jié)構(gòu)
單片機存儲器結(jié)構(gòu)資料大合集
單片機寄存器的資源有多充分呢
單片機中的存儲器介紹
單片機中的數(shù)據(jù)存儲器RAM有哪些特性呢
單片機教程(7)特殊功能寄存器
單片機數(shù)據(jù)存儲器擴展板設(shè)計
單片機的程序存儲器和數(shù)據(jù)存儲器共處同一地址空間為什么不會發(fā)生總線沖突呢?
存儲器與寄存器區(qū)別
存儲器與通用寄存器的相關(guān)資料下載
存儲器映射與寄存器映射的原理分別是什么
寄存器、內(nèi)存(內(nèi)存儲器)與外設(shè)寄存器
寄存器和存儲器的區(qū)別在哪
AT89S52單片機存儲器結(jié)構(gòu)介紹
OSCCAL校準(zhǔn)寄存器的使用方法
PIC單片機數(shù)據(jù)存儲器的特點和功能
sfr和sfr16直接對51單片機的特殊寄存器進(jìn)行定義的方法有哪些?
【51單片機教程講堂】分析單片機的特殊功能寄存器
【NEC單片機學(xué)習(xí)】NEC單片機存儲器有哪些類型
為什么單片機定義的數(shù)組是存放在數(shù)據(jù)存儲器中
為什么塊存儲器沒有Din的原始輸出寄存器或核心輸出寄存器?
單寄存器加載與存儲指令
吳鑒鷹大侃單片機系列之——存儲器介紹
淺析51單片機存儲器結(jié)構(gòu)
聊聊對單片機的內(nèi)部存儲器RAM和FLASH的一些認(rèn)識和理解
請問ADF4002內(nèi)部自置的24位輸入寄存器,是什么類型的存儲器?
MCS-51單片機數(shù)據(jù)存儲器的擴展

PIC16C5X單片機寄存器文件

單片機存儲器,單片機存儲器結(jié)構(gòu)原理是什么?


閃存存儲器是寄存器嗎?_寄存器和存儲器的區(qū)別

存儲器和寄存器的區(qū)別

51單片機寄存器功能一覽表


如何將PIC單片機的數(shù)據(jù)存儲器RAM當(dāng)作寄存器來使用


51單片機的一些特殊寄存器資料說明

寄存器和存儲器的區(qū)別

如何將PIC單片機的數(shù)據(jù)存儲器RAM作為寄存器使用

單片機內(nèi)部的三大存儲器介紹

單片機寄存器

[筆記]|[stm32]|[寄存器存儲器區(qū)別]|[PWM]|[串口]|[Timer]stm32f103筆記

寄存器和存儲器的區(qū)別


簡單區(qū)分寄存器、存儲器、RAM、ROM


cpu寄存器和存儲器的區(qū)別

單片機寄存器和存儲器哪個好

計算機寄存器和存儲器

16位和32位寄存器的區(qū)別 16位寄存器有哪些

單片機寄存器有哪些 單片機寄存器怎么理解 寄存器和單片機的關(guān)系

單片機工作寄存器作用 單片機常用專用寄存器

寄存器和存儲器如何區(qū)分

什么是寄存器和存儲器?寄存器與存儲器有何區(qū)別?


詳解PIC系列單片機數(shù)據(jù)存儲器轉(zhuǎn)換寄存器的指令

評論