當前位置:首頁 » 存儲配置 » 單片機的存儲系統

單片機的存儲系統

發布時間: 2022-05-30 06:17:18

❶ 單片機的程序存儲器有哪些類型

單片機的程序存儲器是專門用來存放程序和常數的,有掩模ROM、OTPROM、EPROM、FlashROM等類型。

掩模這種形式的程序存儲器適用於成熟、大批量生產的產品,如彩色電視機等家電產品中的單片機。用戶把應用程序代碼交給半導體製造廠家,單片機在生產時,程序就被固化到晶元中,因此晶元一旦生產出來,程序就無法改變了。

採用EPROM的單片機具有可以靈活修改程序的優點,但存在需要紫外線擦除、較費時間的缺點。

在自己做試驗或樣機的研發階段,推薦使用Flash單片機,它有電寫入、電擦除的優點,使得修改程序很方便,可以提高開發速度。

對於初具規模的產品可選用0TP單片機,它不但能免去較長的產品掩膜時間,加快產品的上市時間,而且方便程序的修改,能夠對產品進行及時的調整和升級。

程序存儲器的容量可根據程序的大小確定。8位單片機片內程序存儲器的最大容量能達到64KB,不夠時還可以擴展。

❷ 簡述8051單片機存儲器結構

8051單片機存儲器結構包含內部存儲器,外部擴展存儲器。
1、內部存儲器包括:
00H~1FH,工作寄存器區域
20H~2FH,位址寄存器區域
30H~7FH,用戶寄存器區域
80H~FFH,特殊功能寄存器區域
2、擴展存儲區包括
0000H~FFFFH的數據存儲器和程序存儲器,地址重疊。

❸ 單片機存儲器主要由哪幾個部分組成,如何使用

存儲器由存儲體、地址解碼器和控制電路組成。

1)存儲體是存儲數據信息的載體。由一系列存儲單元組成,每個存儲單元都有確定的地址。存儲單元通常按位元組編址,一個存儲單元為一個位元組,每個位元組能存放一個8位二進制數。就像一個大倉庫,分成許多房間,大倉庫相當於存儲體,房間相當於位元組,房間都有編號,編號就是地址。

2)地址解碼器將CPU發出的地址信號轉換為對存儲體中某一存儲單元的選通信號。相當於CPU給出地址,地址解碼器找出相應地址房間的鑰匙。通常地址是8位或1 6位,輸入到地址解碼器,產生相應的選通線,8位地址能產生28=256根選通線,即能選通256位元組。16位地址能產生216=65536=64K根選通線,即能選通64K位元組。當然要產生65536根選通線是很難想像的,實際上它是分成256根行線和256根列線,256 X 256=65536,合起來能選通65536個存儲單元。
3)存儲器控制電路包括片選控制、讀/寫控制和帶三態門的輸入/輸出緩沖電路。

①片選控制確定存儲器晶元是否工作。
②讀/寫控制確定數據傳輸方向;若是讀指令,則將已被選通的存儲單元中的內容傳送到數據匯流排上;若是寫指令,則將數據匯流排上的數據傳送到已被選通的存儲單元中。
③帶三態門的輸入/輸出緩沖電路用於數據緩沖和防止匯流排上數據競爭。數據匯流排相當於一條車流頻繁的大馬路,必須在綠燈條件下,車輛才能進入這條大馬路,否則要撞車發生交通事故。同理,存儲器的輸出端是連接在數據匯流排上的,存儲器中的數據是不能隨意傳送到數據匯流排上的。例如,若數據匯流排上的數據是「1」(高電平5V),存儲器中的數據是「0」(低電平OV),兩種數據若碰到一起就會發生短路而損壞單片機。因此,存儲器輸出埠不僅能呈現「1」和「O」兩種狀態,還應具有第三種狀態「高阻"態。呈「高阻"態時,它們的輸出埠相當於斷開,對數據匯流排不起作用,此時數據匯流排可被其他器件佔用。當其他器件呈「高阻"態時,存儲器在片選允許和輸出允許的條件下,才能將自己的數據輸出到數據匯流排上。

❹ 51單片機的存儲器分為哪幾個空間

1)MCS-51單片機的存儲器從物理結構上分為:片內和片外數據存儲器,片內和片外程序存儲器。

2)從邏輯上分別可劃分為:片內統一定址的64K程序存儲器空間(0000H---FFFFH);64KB的片外數據存儲器空間(0000H---FFFFH);256B的片內數據存儲器空間(00H---FFH)。

(4)單片機的存儲系統擴展閱讀:

使用方法:

1、將模擬器插入需模擬的用戶板的CPU插座中,模擬器由用戶板供電;

2、將模擬器的串列電纜和PC機接好,打開用戶板電源;

3、通過KeilC 的IDE開發模擬環境UV2 下載用戶程序進行模擬、調試。

硬體說明

1、使用用戶板的晶振:模擬器晶振旁有兩組跳線用來切換內部晶振和用戶板晶振,當兩個短路塊位於模擬器晶振一側時,默認使用模擬板上的晶振(11.0592MHz), 當兩個短路塊位於電容一側時,使用用戶板的晶振。

2、為便於調試帶看門狗的用戶板,模擬器的復位端未與用戶板復位端相連;故模擬器的復位按鈕只復位模擬器,不復位用戶板;若要復位用戶板,請使用用戶板復位按鈕。

❺ 單片機應用程序一般存放在哪一個存儲器中

ROM。只讀存儲器(Read-Only Memory,ROM)以非破壞性讀出方式工作,只能讀出無法寫入信息。信息一旦寫入後就固定下來,即使切斷電源,信息也不會丟失,所以又稱為固定存儲器。

ROM所存數據通常是裝入整機前寫入的,整機工作過程中只能讀出,不像隨機存儲器能快速方便地改寫存儲內容。ROM所存數據穩定 ,斷電後所存數據也不會改變,並且結構較簡單,使用方便,因而常用於存儲各種固定程序和數據。

(5)單片機的存儲系統擴展閱讀

單片機的數據存儲器由讀寫存儲器RAM組成。其最大容量可擴展到64k,用於存儲實時輸入的數據。8051內部有256個單元的內部數據存儲器,其中00H~7FH為內部隨機存儲器RAM,80H~FFH為專用寄存器區。

實際使用時應首先充分利用內部存儲器,從使用角度講,搞清內部數據存儲器的結構和地址分配是十分重要的。因為將來在學習指令系統和程序設計時會經常用到它們。

8051內部數據存儲器地址由00H至FFH共有256個位元組的地址空間,該空間被分為兩部分,其中內部數據RAM的地址為00H~7FH(即0~127)。

而用做特殊功能寄存器的地址為80H~FFH。在此256個位元組中,還開辟有一個所謂「位地址」區,該區域內不但可按位元組定址,還可按「位(bit)」定址。對於那些需要進行位操作的數據,可以存放到這個區域。從00H到1FH安排了四組工作寄存器,每組佔用8個RAM位元組,記為R0~R7。

❻ 單片機的存儲器可以分為幾種

單片機的存儲器可分為程序存儲器(ROM)和數據存儲器(RAM)。

程序存儲器是專門用來存放程序和常數的。

數據存儲器是程序在運行中存放臨時數據的,掉電後數據即丟失,現在有些型號的單片機提供了EEPROM,可用來存儲掉電後需要保存的關鍵數據,如系統的一些設置參數。

❼ MCS-51單片機整個存儲系統是由什麼組成的

mcs-51單片機按照功能劃分是由運算器,控制器,片內存儲器,4個並行i/o口,串列口,定時/計數器,中斷系統,振盪器等功能部件組成。

❽ 分析at89s52單片機的存儲器結構

1.程序存儲器

設計人員編寫的程序存放在微處理器的程序存儲器中。

at89s52具有64kb程序存儲器定址空間,它是用於存放用戶程序、數據和表格等信息,程序存儲器的結構如圖1所示。

圖1 at89s52程序存儲器的結構

at89s52片內片外的程序存儲器在統一邏輯空間中,地址從0000h~ffffh,共有64k位元組范圍。引腳接高電平時,程序從片內程序存儲器0000h開始執行,即訪問片內存儲器。當pc值超出片內rom容量時,會自動轉向片外程序存儲器空間執行。引腳接低電平時,迫使系統全部執行片外程序存儲器0000h開始存放的程序。

2.數據存儲器

at89s52 有256 位元組片內數據存儲器。地址為00h~ffh。這256個單元共分為兩部分。其一是地址從00h~7fh單元(共128個位元組)為用戶數據ram。從80h~ffh地址單元(也是128個位元組)為特殊寄存器(sfr)單元。高128 位元組與特殊功能寄存器重疊,也就是說高128位元組與特殊功能寄存器有相同的地址,而物理上是分開的。

在00h~1fh共32個單元中被均勻地分為四塊,每塊包含八個8位寄存器,均以r0~r7來命名,稱這些寄存器為通用寄存器。這四塊中的寄存器都稱為r0~r7,利用psw的第3和第4位(rs0和rs1),即可選中這四組通用寄存器。

內部數據存儲器的20h—2fh單元為位定址區,可作為一般單元用位元組定址,也可對它們的位進行定址,位定址區地址如表1所示

表1 ram位定址區地址表

3. 中斷服務程序的入口地址

在程序存儲區中,為中斷服務程序保存了一段中斷服務程序的入口地址:其中一組特殊單元是0003h—0032h,各個單元各有用途,它們被分為六段,每個段8個位元組,專門留給中斷服務程序使用,被稱為中斷矢量區。at89s52共有8個中斷源,6個中斷矢量,它們的定義如下表2所,

表2 中斷服務程序的入口地址

4.特殊功能寄存器sfr(special? function register)

特殊功能寄存器是指有特殊用途的寄存器集合,也稱為專用寄存器,本質上是一些具有特殊功能的片內ram單元,反映單片機的運行狀態,很多功能也通過特殊功能寄存器來定義和控製程序的執行。

at89s52單片機內部高128(80~ffh)地址分配給特殊功能寄存器。這個地址空間和晶元內數據存儲器的高128位元組地址完全重疊,但兩者在物理硬體上是完全獨立的,用定址方式來區分這個完全重疊的地址空間。使用直接定址方式訪問這個地址空間時,訪問的是特殊功能寄存器;使用間接定址方式訪問這個地址空間時,訪問的是數據存儲器。

at89s52有32個特殊功能寄存器,它們被離散地分布在內部ram的80h~ffh地址中,這些寄存的功能已作了專門的規定,用戶不能修改其結構。

5.幾個注意問題

(1)地址的重疊性

單片機中的所有存儲器都必須分配地址,可以定址的地址范圍為64kb,數據存儲器與程序存儲器都佔用相同的地址。

程序存儲器中片內片外0000h~0ffffh低4kb地址完全重疊,但是我們使用引腳進行區分:=0時,選擇片外,=1時,選擇片內,這樣就完全區分開來了。

數據存儲器中片內外0000h~00ffh的256個單元地址完全重疊,片內外數據的訪問採用不同指令來區分:mov指令訪問片內數據存儲器,movx指令訪問片外數據存儲器。

(2)程序存儲器(rom)與數據存儲器(ram)的區分

程序存儲器(rom)與數據存儲器(ram)的區分在使用上是嚴格區分的,程序存儲器只能放置程序指令及常數表格,對程序存儲器中數據的訪問只可以使用movc指令。而數據存儲器則存放數據,片內外的操作指令分別用mov,movx進行操作。

(3)位地址空間的區域劃分

片內ram中的20h~2fh的128位,以及sfr中的位地址,這些位定址單元與位指令集構成了位處理器系統

❾ MCS-51系列單片機系統的存儲器結構

8051存儲器包括內部數據存儲器RAM,地址為00~7FH,特殊功能存儲器80H~FFH,外部擴展數據存儲器,地址:0000H~FFFFH,外部擴展數據存儲器:0000H~FFFFH。
內部數據存儲器又細分為:
工作寄存器:00~1FH(共四組)
位定址寄存器:20H~2FH(位地址00H~7FH)
用戶寄存器:30H~7FH
位地址20H的具體地址為:24H.0

❿ 單片機的存儲器結構

通過上面的實驗我們已經知道:一盞燈亮或者說一根線的電平的高低,能代表兩種狀態:0和1。實際上這就是一個二進制位,因此我們就把一根線稱之為一「位」,用BIT表示。

什麼是位元組:
  一根線能表於0和1,兩根線能表達00,01,10,11四種狀態,也就是能表於0到3,而三根能表達0-7,計算機中常常用8根線放在一起,同時計數,就能表過到0-255一共256種狀態。這8根線或者8位就稱之為一個位元組(BYTE)。不要問我為什麼是8根而不是其它數,因為我也不知道。(計算機世界是一本人造的世界,不是自然界,很多事情你無法問為什麼,只能說:它是一種規定,大家在以後的學習過程中也要注意這個問題)

存儲器的工作原理:

1、存儲器構造

   存儲器就是用來存放數據的地方。它是利用電平的高低來存放數據的,也就是說,它存放的實際上是電平的高、低,而不是我們所習慣認為的1234這樣的數字,這樣,我們的一個謎團就解開了,計算機也沒什麼神秘的嗎。

 

 

 
圖2

 
圖3

  讓我們看圖2。單片機裡面都有這樣的存儲器,這是一個存儲器的示意圖:一個存儲器就象一個個的小抽屜,一個小抽屜里有八個小格子,每個小格子就是用來存放「電荷」的,電荷通過與它相連的電線傳進來或釋放掉,至於電荷在小格子里是怎樣存的,就不用我們操心了,你能把電線想像成水管,小格子里的電荷就象是水,那就好理解了。存儲器中的每個小抽屜就是一個放數據的地方,我們稱之為一個「單元」。

 

 

  有了這么一個構造,我們就能開始存放數據了,想要放進一個數據12,也就是00001100,我們只要把第二號和第三號小格子里存滿電荷,而其它小格子里的電荷給放掉就行了(看圖3)。可是問題出來了,看圖2,一個存儲器有好多單元,線是並聯的,在放入電荷的時候,會將電荷放入所有的單元中,而釋放電荷的時候,會把每個單元中的電荷都放掉,這樣的話,不管存儲器有多少個單元,都只能放同一個數,這當然不是我們所希望的,因此,要在結構上稍作變化,看圖2,在每個單元上有個控制線,我想要把數據放進哪個單元,就給一個信號這個單元的控制線,這個控制線就把開關打開,這樣電荷就能自由流動了,而其它單元控制線上沒有信號,所以開關不打開,不會受到影響,這樣,只要控制不一樣單元的控制線,就能向各單元寫入不一樣的數據了,同樣,如果要某個單元中取數據,也只要打開對應的控制開關就行了。

2、存儲器解碼
  那麼,我們怎樣來控制各個單元的控制線呢?這個還不簡單,把每個單元元的控制線都引到集成電路的外面不就行了嗎?事情可沒那麼簡單,一片27512存儲器中有65536個單元,把每根線都引出來,這個集成電路就得有6萬多個腳?不行,怎麼辦?要想法減少線的數量。我們有一種辦法稱這為解碼,簡單介紹一下:一根線能代表2種狀態,2根線能代表4種狀態,3根線能代表幾種,256種狀態又需要幾根線代表?8種,8根線,所以65536種狀態我們只需要16根線就能代表了。

(圖4)

3、存儲器的選片及匯流排的概念
   至此,解碼的問題解決了,讓我們再來關注另外一個問題。送入每個單元的八根線是用從什麼地方來的呢?它就是從計算機上接過來的,一般地,這八根線除了接一個存儲器之外,還要接其它的器件,如圖4所示。這樣問題就出來了,這八根線既然不是存儲器和計算機之間專用的,如果總是將某個單元接在這八根線上,就不好了,比如這個存儲器單元中的數值是0FFH另一個存儲器的單元是00H,那麼這根線到底是處於高電平,還是低電平?豈非要打架看誰歷害了?所以我們要讓它們分離。辦法當然很簡單,當外面的線接到集成電路的管腳進來後,不直接接到各單元去,中間再加一組開關(參考圖4 )就行了。平時我們讓開關關閉著,如果確實是要向這個存儲器中寫入數據,或要從存儲器中讀出數據,再讓開關接通就行了。這組開關由三根引線選擇:讀控制端、寫控制端和片選端。要將數據寫入片中,先選中該片,然後發出寫信號,開關就合上了,並將傳過來的數據(電荷)寫入片中。如果要讀,先選中該片,然後發出讀信號,開關合上,數據就被送出去了。注意圖4,讀和寫信號同時還接入到另一個存儲器,但是由於片選端不一樣,所以雖有讀或寫信號,但沒有片選信號,所以另一個存儲器不會「誤會」而開門,造成沖突。那麼會不一樣時選中兩片晶元呢?只要是設計好的系統就不會,因為它是由計算控制的,而不是我們人來控制的,如果真的出現同時出現選中兩片的情況,那就是電路出了故障了,這不在我們的討論之列。

熱點內容
ios應用上傳 發布:2024-09-08 09:39:41 瀏覽:438
ios儲存密碼哪裡看 發布:2024-09-08 09:30:02 瀏覽:870
opensslcmake編譯 發布:2024-09-08 09:08:48 瀏覽:653
linux下ntp伺服器搭建 發布:2024-09-08 08:26:46 瀏覽:744
db2新建資料庫 發布:2024-09-08 08:10:19 瀏覽:173
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:780
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:101
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:209
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995