單片機(jī)的存儲(chǔ)器有程序存儲(chǔ)器ROM與數(shù)據(jù)存儲(chǔ)器RAM兩種。 這兩種存儲(chǔ)器在使用上是嚴(yán)格區(qū)分的,不得混用。 程序存儲(chǔ)器存放程序指令,以及常數(shù),表格等;而數(shù)據(jù)存儲(chǔ)器則存放緩沖數(shù)據(jù)。
MCS-51單片機(jī)存儲(chǔ)器的結(jié)構(gòu)共有3部分:一是程序存儲(chǔ)器??二是內(nèi)部數(shù)據(jù)存儲(chǔ)器 三是外部數(shù)據(jù)存儲(chǔ)器MCS-51單片機(jī)的存儲(chǔ)器可分為5類:程序存儲(chǔ)器、內(nèi)部數(shù)據(jù)存儲(chǔ)器、特殊功能寄存器、位地址空間、外部數(shù)據(jù)存儲(chǔ)器
程序存儲(chǔ)器
程序是控制計(jì)算機(jī)動(dòng)作的一系列命令,單片機(jī)只認(rèn)識(shí)由“0”和“1”代碼構(gòu)成的機(jī)器指令。如前述用助記符編寫的命令MOV A,#20H,換成機(jī)器認(rèn)識(shí)的代碼74H、20H:(寫成二進(jìn)制就是01110100B和00100000B)。在單片機(jī)處理問題之前必須事先將編好的程序、表格、常數(shù)匯編成機(jī)器代碼后存入單片機(jī)的存儲(chǔ)器中,該存儲(chǔ)器稱為程序存儲(chǔ)器。程序存儲(chǔ)器可以放在片內(nèi)或片外,亦可片內(nèi)片外同時(shí)設(shè)置。由于PC程序計(jì)數(shù)器為16位,使得程序存儲(chǔ)器可用16位二進(jìn)制地址,因此,內(nèi)外存儲(chǔ)器的地址最大可從0000H到FFFFH。8051內(nèi)部有4k字節(jié)的ROM,就占用了由0000H~0FFFH的最低4k個(gè)字節(jié),這時(shí)片外擴(kuò)充的程序存儲(chǔ)器地址編號(hào)應(yīng)由1000H開始,如果將8051當(dāng)做8031使用,不想利用片內(nèi)4kROM,全用片外存儲(chǔ)器,則地址編號(hào)仍可由0000H開始。不過,這時(shí)應(yīng)使8051的第{31}腳(即EA腳)保持低電平。當(dāng)EA為高電平時(shí),用戶在0000H至0FFFH范圍內(nèi)使用內(nèi)部ROM,大于0FFFH后,單片機(jī)CPU自動(dòng)訪問外部程序存儲(chǔ)器。
數(shù)據(jù)存儲(chǔ)器
單片機(jī)的數(shù)據(jù)存儲(chǔ)器由讀寫存儲(chǔ)器RAM組成。其最大容量可擴(kuò)展到64k,用于存儲(chǔ)實(shí)時(shí)輸入的數(shù)據(jù)。8051內(nèi)部有256個(gè)單元的內(nèi)部數(shù)據(jù)存儲(chǔ)器,其中00H~7FH為內(nèi)部隨機(jī)存儲(chǔ)器RAM,80H~FFH為專用寄存器區(qū)。實(shí)際使用時(shí)應(yīng)首先充分利用內(nèi)部存儲(chǔ)器,從使用角度講,搞清內(nèi)部數(shù)據(jù)存儲(chǔ)器的結(jié)構(gòu)和地址分配是十分重要的。因?yàn)閷碓趯W(xué)習(xí)指令系統(tǒng)和程序設(shè)計(jì)時(shí)會(huì)經(jīng)常用到它們。8051內(nèi)部數(shù)據(jù)存儲(chǔ)器地址由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é)。各特殊功能寄存器的符號(hào)和地址見附表2。其中帶*號(hào)的可位尋址。特殊功能寄存器反映了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)。比如電話號(hào)碼,在美國和很多其他國家,一個(gè)本地電話號(hào)碼通常是一個(gè)7位的數(shù)字。因此,電話號(hào)碼的地址空間是從0 000 000到9 999 999,雖然一些號(hào)碼并沒有被使用,比如以000開頭的號(hào)碼。隨著手機(jī)、調(diào)制解調(diào)器和傳真機(jī)數(shù)量的增長,這個(gè)空間變得越來越不夠用了,從而導(dǎo)致需要使用更多位數(shù)的號(hào)碼。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)明白地址空間的概念了。它是很簡單的。
外部存儲(chǔ)器
軟盤、硬盤、光盤、U盤都是外部存儲(chǔ)器。 從馮.諾依曼的存儲(chǔ)程序工作原理及計(jì)算機(jī)的組成來說,計(jì)算機(jī)分為運(yùn)算器、控制器、存儲(chǔ)器和輸入/輸出設(shè)備,這里的存儲(chǔ)器就是指內(nèi)存,而硬盤屬于輸入/輸出設(shè)備。 CPU運(yùn)算所需要的程序代碼和數(shù)據(jù)來自于內(nèi)存,內(nèi)存中的東西則來自于硬盤。所以硬盤并不直接與CPU打交道。 硬盤相對于內(nèi)存來說就是外部存儲(chǔ)器。 存儲(chǔ)器是用來存儲(chǔ)器數(shù)據(jù)的,內(nèi)存有告訴緩存和內(nèi)存,計(jì)算機(jī)內(nèi)部存儲(chǔ),外存就是類似U盤的外部存儲(chǔ),內(nèi)存儲(chǔ)器 速度快 價(jià)格貴,容量小,斷電 后內(nèi)存內(nèi)數(shù)據(jù)會(huì)丟失。 外存儲(chǔ)器 單位價(jià)格低,容量大, 速度慢, 斷電后數(shù)據(jù)不會(huì)丟失。
- 單片機(jī)(665815)
- 存儲(chǔ)器(171173)
51單片機(jī)存儲(chǔ)器內(nèi)存的講解
224251單片機(jī)的寄存器如何賦值
24434
單片機(jī)的寄存器編程與位運(yùn)算
2549
單片機(jī)中的存儲(chǔ)器介紹
單片機(jī)數(shù)據(jù)存儲(chǔ)器擴(kuò)展板設(shè)計(jì)
存儲(chǔ)器包括寄存器,只針對單片機(jī)而言嗎?
寄存器和存儲(chǔ)器的區(qū)別在哪
PIC單片機(jī)數(shù)據(jù)存儲(chǔ)器的特點(diǎn)和功能
sfr和sfr16直接對51單片機(jī)的特殊寄存器進(jìn)行定義的方法有哪些?
如何擴(kuò)展單片機(jī)存儲(chǔ)器?
串行DataFlash 存儲(chǔ)器及其與單片機(jī)的接口
17MCS-51單片機(jī)數(shù)據(jù)存儲(chǔ)器的擴(kuò)展
124單片機(jī)存儲(chǔ)器擴(kuò)充與程序下載技巧
63PIC16C5X單片機(jī)寄存器文件
1149PIC16C5X單片機(jī)數(shù)據(jù)存儲(chǔ)器
1143單片機(jī)教程二:單片機(jī)存儲(chǔ)器結(jié)構(gòu)
778
單片機(jī)教程七:單片機(jī)的特殊功能寄存器
2718
單片機(jī)存儲(chǔ)器,單片機(jī)存儲(chǔ)器結(jié)構(gòu)原理是什么?
7285
單片機(jī)的特殊功能寄存器結(jié)構(gòu)原理分析
3786
51單片機(jī)定時(shí)器寄存器設(shè)置及應(yīng)用詳細(xì)
7pic單片機(jī)教程之?dāng)?shù)據(jù)存儲(chǔ)器的直接間接尋址方式
12708
閃存存儲(chǔ)器是寄存器嗎?_寄存器和存儲(chǔ)器的區(qū)別
12475存儲(chǔ)器和寄存器的區(qū)別
13090基于單片機(jī)的LED點(diǎn)陣顯示屏得的設(shè)計(jì)移位寄存器簡介
551單片機(jī)寄存器功能一覽表
54055
基于ARM單片機(jī)中的部分寄存器地址為什么會(huì)相差4
3852
51單片機(jī)的SCON寄存器與C程序解析
14051如何計(jì)算給單片機(jī)寄存器賦的值
5401
單片機(jī)教程之單片機(jī)總線與存儲(chǔ)器的擴(kuò)展資料說明
27如何將PIC單片機(jī)的數(shù)據(jù)存儲(chǔ)器RAM當(dāng)作寄存器來使用
4222
51單片機(jī)的寄存器組應(yīng)該如何設(shè)置
051單片機(jī)的21個(gè)特殊功能寄存器的詳細(xì)資料說明
1451單片機(jī)經(jīng)常使用的寄存器功能總結(jié)
12單片機(jī)的片內(nèi)存儲(chǔ)器和片外存儲(chǔ)器到底有什么區(qū)別
351單片機(jī)串口通訊需要注意的寄存器及51單片機(jī)使用PRINTF的示例程序
251單片機(jī)的一些特殊寄存器資料說明
251單片機(jī)的21個(gè)特殊功能寄存器詳細(xì)資料概述
851單片機(jī)中斷相關(guān)寄存器的詳細(xì)說明
051單片機(jī)電源管理寄存器PCON及單片機(jī)的空閑掉電正常工作模式介紹
1關(guān)于51單片機(jī)寄存器的功能
8942
寄存器和存儲(chǔ)器的區(qū)別
16095如何將PIC單片機(jī)的數(shù)據(jù)存儲(chǔ)器RAM作為寄存器使用
347651單片機(jī)存儲(chǔ)器的結(jié)構(gòu)和原理解析
23954
如何對單片機(jī)進(jìn)行片外程序存儲(chǔ)器設(shè)計(jì)
5572單片機(jī)的主要寄存器有哪些
15608單片機(jī)內(nèi)部的三大存儲(chǔ)器介紹
10664單片機(jī)寄存器
1151單片機(jī)的原理,指令,寄存器,以及接口
951單片機(jī)之存儲(chǔ)器
1551單片機(jī)與中斷相關(guān)的寄存器
8如何寫單片機(jī)的寄存器,這篇文章帶你入門。
051單片機(jī)——存儲(chǔ)器
1msp4306989單片機(jī)的寄存器 第五章
2751匯編(一):存儲(chǔ)器結(jié)構(gòu)
13芯片與寄存器
50單片機(jī)怎么通過按鍵控制計(jì)時(shí)器的開始和停止_超詳細(xì)!51單片機(jī)寄存器功能一覽表...
20單片機(jī)的存儲(chǔ)器
3嵌入式開發(fā)學(xué)習(xí)筆記4-了解單片機(jī)中的存儲(chǔ)器
7[筆記]|[stm32]|[寄存器存儲(chǔ)器區(qū)別]|[PWM]|[串口]|[Timer]stm32f103筆記
10【硬見小百科】單片機(jī)的特殊功能寄存器
14單片機(jī)定時(shí)器的寄存器
1單片機(jī)存儲(chǔ)器的入門知識(shí)分享
1916
MSP430單片機(jī)CPU和存儲(chǔ)器課件ppt
0普通單片機(jī)與STM32單片機(jī)中堆棧的區(qū)別
849寄存器和存儲(chǔ)器的區(qū)別
5367
簡單區(qū)分寄存器、存儲(chǔ)器、RAM、ROM
10008
cpu寄存器和存儲(chǔ)器的區(qū)別
2309單片機(jī)寄存器和存儲(chǔ)器哪個(gè)好
1124計(jì)算機(jī)寄存器和存儲(chǔ)器
2787寄存器,存儲(chǔ)器,RAM他們之間有何區(qū)別
561216位寄存器數(shù)據(jù)范圍 32位寄存器數(shù)據(jù)范圍 數(shù)據(jù)寄存器多少位怎么算
1408116位和32位寄存器的區(qū)別 16位寄存器有哪些
19307單片機(jī)寄存器有哪些 單片機(jī)寄存器怎么理解 寄存器和單片機(jī)的關(guān)系
7463單片機(jī)的寄存器類型及操作教程
6099單片機(jī)工作寄存器作用 單片機(jī)常用專用寄存器
9158寄存器和存儲(chǔ)器如何區(qū)分
16072外部寄存器在單片機(jī)中的使用 單片機(jī)特殊功能寄存器有哪些
4192什么是寄存器和存儲(chǔ)器?寄存器與存儲(chǔ)器有何區(qū)別?
6392
詳解PIC系列單片機(jī)數(shù)據(jù)存儲(chǔ)器轉(zhuǎn)換寄存器的指令
1813存儲(chǔ)器和寄存器的區(qū)別
5488寄存器和單片機(jī)的關(guān)系與區(qū)別
1852
電子發(fā)燒友App



評論