一、前言
程序存儲(chǔ)器(又稱數(shù)據(jù)Flash),顧名思義,是用來(lái)存儲(chǔ)用戶的程序,使單片機(jī)能夠按照編寫的代碼順序執(zhí)行,完成指定的任務(wù)。所以程序存儲(chǔ)器是只讀存儲(chǔ)器(只讀存儲(chǔ)器),我們已經(jīng)聽(tīng)過(guò)很多次了。
代碼存儲(chǔ)在程序存儲(chǔ)器里面,一般有常數(shù)、表格、pi值、數(shù)碼管形狀、SCM ID號(hào)、內(nèi)部參考信號(hào)源、關(guān)機(jī)喚醒定時(shí)器頻率、IRC參數(shù)等數(shù)據(jù)。
注意: 單片機(jī)每次都是燒錄程序,燒錄就是為了把代碼放到程序存儲(chǔ)器中,而我們用的電腦則是把硬盤的數(shù)據(jù)和程序放到RAM,再用CPU去讀取RAM里面的數(shù)據(jù)和程序。
二、存儲(chǔ)器的存儲(chǔ)單位與編址
存儲(chǔ)信息的基本單位稱存儲(chǔ)元件,每個(gè)存儲(chǔ)元件是一個(gè)二進(jìn)制位,一位可存放一個(gè)二進(jìn)制數(shù)0或1。. 每8位組成一個(gè)字節(jié)。
編址是為了方便我們存取存儲(chǔ)器中的信息,我們需要給每個(gè)存儲(chǔ)單元編號(hào),即編址。
1.存儲(chǔ)單位
位(bit):計(jì)算機(jī)的最小數(shù)據(jù)單位
字節(jié)(Byte):1Byte = 8bits
字(Word):1Word = 2Bytes = 16bits
2.編址
51單片機(jī)的存儲(chǔ)單元是一個(gè)字節(jié),為了存取數(shù)據(jù)方便,每個(gè)存儲(chǔ)單元都有編號(hào),這個(gè)編號(hào)就是編址,編址采用二進(jìn)制數(shù)。例如:0000 0010B可以代表第二個(gè)存儲(chǔ)單元。
三、51單片機(jī)有哪些內(nèi)部存儲(chǔ)器
存儲(chǔ)器是單片機(jī)的又一個(gè)重要組成部分,存儲(chǔ)容量為256個(gè)單元的存儲(chǔ)器結(jié)構(gòu)中每個(gè)存儲(chǔ)單元對(duì)應(yīng)一個(gè)地址,256個(gè)單元共有256個(gè)地址,用兩位16進(jìn)制數(shù)表示,即存儲(chǔ)器的地址(00H~FFH)。
存儲(chǔ)器中每個(gè)存儲(chǔ)單元可存放一個(gè)八位二進(jìn)制信息,通常用兩位16進(jìn)制數(shù)來(lái)表示,這就是存儲(chǔ)器的內(nèi)容。存儲(chǔ)器的存儲(chǔ)單元地址和存儲(chǔ)單元的內(nèi)容是不同的兩個(gè)概念,不能混淆。
1.片內(nèi)RAM
RAM(Random Access Memory)又叫隨機(jī)存取存儲(chǔ)器,正常情況下不僅可以寫入數(shù)據(jù)到RAM,也可以從RAM讀取數(shù)據(jù)。
單片機(jī)內(nèi)部總共有256Bytes的RAM。RAM的每一個(gè)字節(jié)都有編碼,從0000 0000開(kāi)始直到1111 1111,不同區(qū)域的RAM有著不同的功能。可以把RAM想象成一棟辦公樓,不同的樓層有不同的部門,不同的部門自然干不同的活。
注意: 因?yàn)閱纹瑱C(jī)一次只能處理8個(gè)bit的數(shù)據(jù)(字長(zhǎng)為8),并且一個(gè)8位二進(jìn)制數(shù)的范圍是0到256,所以單片機(jī)一次能尋址的范圍也就是0到256。
2.片內(nèi)ROM
ROM(Read-OnlyMemory),又叫只讀存儲(chǔ)器,正常情況下只能從ROM讀取數(shù)據(jù),不能往寫入數(shù)據(jù)。
單片機(jī)內(nèi)部的ROM大小為4KB(4096Bytes),字節(jié)地址范圍為000H~0FFFH。
在特殊條件下,可以把程序燒入到ROM中,所以ROM也叫程序存儲(chǔ)器。
如果ROM的大小不夠存入所有程序,也可以外接ROM。單片機(jī)最多可外接64KB的ROM。內(nèi)部ROM和外部ROM是統(tǒng)一編址,要么就只用64KB的外部ROM,要么就用4KB的內(nèi)部ROM+60KB的外部ROM(外部ROM的開(kāi)頭4KB閑置)。
3.外部數(shù)據(jù)存儲(chǔ)器
外部數(shù)據(jù)存儲(chǔ)器一般由靜態(tài) RAM 構(gòu)成,其容量大小由用戶根據(jù)需要而定,最大可擴(kuò)展到 64KB RAM,地址是 0000H~0FFFFH。CPU 通過(guò) MOVX 指令訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,用間接尋址方式,R0 、R1 和 DPTR 都可作間接寄存器。
注意: 外部 RAM 和 擴(kuò)展的 I/O接口是統(tǒng)一編址的,所有的外擴(kuò)I/O 口都要占用 64KB 中的地址單元。
四、如何區(qū)分ROM和ROM
片內(nèi)ROM和片外ROM的區(qū)分:在單片機(jī)既有片內(nèi)ROM又有片外ROM時(shí),會(huì)產(chǎn)生一部分重復(fù)的地址范圍,為了解決區(qū)分片內(nèi)和片外ROM的問(wèn)題,51單片機(jī)設(shè)置了一根控制線EA(低電平有效),所以
EA = 0 => 有效 => 訪問(wèn)片內(nèi)存儲(chǔ)器
EA = 1 => 無(wú)效 => 片內(nèi)存儲(chǔ)器被忽略
本質(zhì)的原理:
就是當(dāng)PC的值大于了某個(gè)值時(shí)將訪問(wèn)外部存儲(chǔ)器,PC的值小于了某個(gè)值時(shí)將訪問(wèn)內(nèi)部存儲(chǔ)器。這個(gè)值由存儲(chǔ)器容量的大小絕定,在8051單片機(jī)中,片內(nèi)ROM = 4KB,所以當(dāng)PC小于0FFFH時(shí),訪問(wèn)片內(nèi)ROM。
五、存儲(chǔ)器數(shù)據(jù)讀寫說(shuō)明
要對(duì)256字節(jié)存儲(chǔ)器的每個(gè)存儲(chǔ)單元進(jìn)行讀寫,需要8根地址線和8根數(shù)據(jù)線,先送8位地址選中某個(gè)存儲(chǔ)單元,再根據(jù)讀控制或?qū)懣刂疲瑢⑦x中的存儲(chǔ)單元的8位數(shù)據(jù)從8根數(shù)據(jù)線送出,或通過(guò)8根數(shù)據(jù)線將8位數(shù)據(jù)存入選中的存儲(chǔ)單元中。
當(dāng)?shù)刂房偩€A7~A0將8位地址00011111(1FH)送入存儲(chǔ)器時(shí),會(huì)選中內(nèi)部編址為1FH的存儲(chǔ)單元,這時(shí)再?gòu)淖x控制線送入一個(gè)讀控制信號(hào),1FH 存儲(chǔ)單元中的數(shù)據(jù)00010111從8根數(shù)據(jù)總線D7~D0送出。
六、總結(jié)
對(duì)于RAM和ROM,當(dāng)我們寫程序的時(shí)候,我們把程序誤認(rèn)為ROM,也就是說(shuō),我的某個(gè)邏輯形成了一系列的邏輯開(kāi)關(guān),但是當(dāng)CPL進(jìn)行操作的時(shí)候,在傳輸?shù)倪^(guò)程中,交換邏輯需要不斷的改變,所以RAM就誕生了。
但是由于技術(shù)的限制,RAM不能下電來(lái)保存邏輯,即電路中的每個(gè)硅電子都不能被保存,并且這個(gè)過(guò)程限制了內(nèi)存的大小。因此,RAM和ROM是通過(guò)CPU總線連接的。
通過(guò)51單片機(jī)的RAM地址,ROM地址,可以看到,ROM存儲(chǔ)程序,通過(guò)CPU傳遞數(shù)據(jù),到RAM,而RAM是各個(gè)寄存器的集合,按ROM程序形成邏輯,響應(yīng)CPU,同時(shí)傳遞給ROM信號(hào)(這里ROM的邏輯已不變,相當(dāng)于與或非的各種開(kāi)關(guān))。
審核編輯:湯梓紅
-
單片機(jī)
+關(guān)注
關(guān)注
6063文章
44915瀏覽量
646891 -
RAM
+關(guān)注
關(guān)注
8文章
1391瀏覽量
116782 -
51單片機(jī)
+關(guān)注
關(guān)注
277文章
5710瀏覽量
126546 -
程序存儲(chǔ)器
+關(guān)注
關(guān)注
0文章
20瀏覽量
12532 -
儲(chǔ)存器
+關(guān)注
關(guān)注
1文章
94瀏覽量
17728
原文標(biāo)題:今天給大家講解一下單片機(jī)的儲(chǔ)存器!
文章出處:【微信號(hào):嵌入式悅翔園,微信公眾號(hào):嵌入式悅翔園】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
給單片機(jī)上電,但是沒(méi)反應(yīng),只有將RXD和RST短接一下單片...
各位給推薦一下單片機(jī)初學(xué)者看哪些視頻呢?謝謝!
當(dāng)下單片機(jī)應(yīng)用現(xiàn)狀
請(qǐng)問(wèn)一下單片機(jī)中IIR濾波器的實(shí)現(xiàn)方法是什么?
分享一下單片機(jī)畢設(shè)如何選題
常見(jiàn)的儲(chǔ)存器有哪些?如何選擇儲(chǔ)存器?
安裝一下單片機(jī)開(kāi)發(fā)最常用的軟件–keil
分享一下單片機(jī)和PLC哪個(gè)更好上手
記錄一下單片機(jī)的IO口
STM32單片機(jī)的最小系統(tǒng)
使用STC單片機(jī)進(jìn)行EEPROM儲(chǔ)存器的讀寫程序免費(fèi)下載

單片機(jī)計(jì)數(shù)器工作原理及講解

工業(yè)用冷水機(jī)使用時(shí)常見(jiàn)的十大故障,今天就給大家總結(jié)一下

結(jié)合STM32給大家描述一下單片機(jī)常見(jiàn)的劃分區(qū)域

評(píng)論