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

PIC16C5X單片機(jī)寄存器文件

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


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

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

51單片機(jī)寄存器功能一覽表


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


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

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

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

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

單片機(jī)寄存器

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

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


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


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

單片機(jī)寄存器和存儲器哪個(gè)好

計(jì)算機(jī)寄存器和存儲器

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

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

單片機(jī)工作寄存器作用 單片機(jī)常用專用寄存器

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

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


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

評論