說起單片機存儲器,大家可能知道RAM和ROM,但具體需要怎么用,還需要深入了解下,那今天通程創品就來大家詳細了解下51單片機存儲器的相關知識,希望對大家有幫助。
程序存儲器(又稱數據Flash),顧名思義,是用來存儲用戶的程序,使單片機能夠按照編寫的代碼順序執行,完成指定的任務。所以程序存儲器是只讀存儲器(只讀存儲器),我們已經聽過很多次了。代碼存儲在里面,一般有常數、表格、pi值、數碼管形狀、SCM ID號、內部參考信號源、關機喚醒定時器頻率、IRC參數等數據。
注意:單片機每次都是燒錄程序,燒錄就是為了把代碼放到程序存儲器中,而我們用的電腦則是把硬盤的數據和程序放到RAM,再用CPU去讀取RAM里面的數據和程序
一、存儲器的存儲單位與編址
1.存儲單位
位(bit):計算機的最小數據單位
字節(Byte):1Byte = 8bits
字(Word):1Word = 2Bytes = 16bits
2.編址
51單片機的存儲單元是一個字節,為了存取數據方便,每個存儲單元都有編號,這個編號就是編址,編址采用二進制數。例如:0000 0010B可以代表第二個存儲單元。
二、51單片機有哪些內部存儲器
1.片內RAM
RAM(Random Access Memory)又叫隨機存取存儲器,正常情況下不僅可以寫入數據到RAM,也可以從RAM讀取數據。
單片機內部總共有256Bytes的RAM。RAM的每一個字節都有編碼,從0000 0000開始直到1111 1111,不同區域的RAM有著不同的功能。可以把RAM想象成一棟辦公樓,不同的樓層有不同的部門,不同的部門自然干不同的活。
注意:因為單片機一次只能處理8個bit的數據(字長為8),并且一個8位二進制數的范圍是0到256,所以單片機一次能尋址的范圍也就是0到256。
2.片內ROM
ROM(Read-OnlyMemory),又叫只讀存儲器,正常情況下只能從ROM讀取數據,不能往寫入數據。
單片機內部的ROM大小為4KB(4096Bytes),字節地址范圍為000H~0FFFH。
在特殊條件下,可以把程序燒入到ROM中,所以ROM也叫程序存儲器。
如果ROM的大小不夠存入所有程序,也可以外接ROM。單片機最多可外接64KB的ROM。內部ROM和外部ROM是統一編址,要么就只用64KB的外部ROM,要么就用4KB的內部ROM+60KB的外部ROM(外部ROM的開頭4KB閑置)。
51單片機是如何區分是片內ROM還是片外ROM呢?
片內ROM和片外ROM的區分:
在單片機既有片內ROM又有片外ROM時,會產生一部分重復的地址范圍,
為了解決區分片內和片外ROM的問題,51單片機設置了一根控制線EA(低電平有效),所以
EA = 0 =>有效 =>訪問片內存儲器
EA = 1 =>無效 =>片內存儲器被忽略
本質的原理:
就是當PC的值大于了某個值時將訪問外部存儲器,PC的值小于了某個值時將訪問內部存儲器。這個值由存儲器容量的大小絕定,在8051單片機中,片內ROM = 4KB,所以當PC小于0FFFH時,訪問片內ROM。
三、存儲器數據讀寫說明
要對256字節存儲器的每個存儲單元進行讀寫,需要8根地址線和8根數據線,先送8位地址選中某個存儲單元,再根據讀控制或寫控制,將選中的存儲單元的8位數據從8根數據線送出,或通過8根數據線將8位數據存入選中的存儲單元中。以圖1存儲器結構為例,當地址總線A7~A0將8位地址00011111(1FH)送入存儲器時,會選中內部編址為1FH的存儲單元,這時再從讀控制線送入一個讀控制信號,1FH存儲單元中的數據00010111從8根數據總線D7~D0送出。
對于RAM和ROM,當我們寫程序的時候,我們把程序誤認為ROM,也就是說,我的某個邏輯形成了一系列的邏輯開關,但是當CPL進行操作的時候,在傳輸的過程中,交換邏輯需要不斷的改變,所以RAM就誕生了。但是由于技術的限制,RAM不能下電來保存邏輯,即電路中的每個硅電子都不能被保存,并且這個過程限制了內存的大小。因此,RAM和ROM是通過CPU總線連接的。
通過51單片機的RAM地址,ROM地址,可以看到,ROM存儲程序,通過CPU傳遞數據,到RAM,而RAM是各個寄存器的集合,按ROM程序形成邏輯,響應CPU,同時傳遞給ROM信號(這里ROM的邏輯已不變,相當于與或非的各種開關)。
以上就是通程創品今日分享內容了,關于單片機寄存器如果您還有其他疑問,歡迎一起探討交流。
審核編輯:湯梓紅
-
單片機
+關注
關注
6037文章
44562瀏覽量
635827 -
存儲器
+關注
關注
38文章
7494瀏覽量
163905
發布評論請先 登錄
相關推薦
評論