① 80C51單片機中,什麼叫單片機內部的數據存儲器和外部存儲器
單片機內部的數據存儲通過內部匯流排訪問的數據存儲器,128Bytes,或256Bytes。訪問命令為 MOV
外部存儲器,通過外部埠,即通過P0、P2形成地址匯流排和數據匯流排來訪問。訪問命令為 MOVX。2個訪問周期
當然,現在也有將外部存儲器集成到內部的晶元,但仍然是外部存儲器。
仍然用MOVX訪問。2個訪問周期
② 單片機存儲器主要由哪幾個部分組成,如何使用
存儲器由存儲體、地址解碼器和控制電路組成。
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」兩種狀態,還應具有第三種狀態「高阻"態。呈「高阻"態時,它們的輸出埠相當於斷開,對數據匯流排不起作用,此時數據匯流排可被其他器件佔用。當其他器件呈「高阻"態時,存儲器在片選允許和輸出允許的條件下,才能將自己的數據輸出到數據匯流排上。
③ 關於單片機內部存儲器的使用,急求解答。一頭霧水啊
是的,程序大小是17855位元組,Xdata用了 89位元組,data出現小數點,是因為你程序中用了bit類型的變數,你的程序用了 (N*8 + 6)個位類型的變數,N = 0---15 之間
你前面的那個有關擦除是什麼?是下載單片機程序,還是單片機IAP編程?還是使用單片機內部的EEPROM?
④ 關於51單片機內部存儲器
51單片機內部分數據存儲器和程序存儲器,數據存儲器分配如:00H~1FH 為四個工作寄存器區、20H~2FH為位定址區、30H~7FH為一般RAM區、80H~FFH為特殊功能寄存器區。內部程序存儲器分配是0000H~0FFFH。1000H~FFFFH為外部程序存儲器。但別忘了當訪問內部程序存儲器時EA一定要接高電平。當EA為低電平時,單片機會全部訪問外部程序存儲器。
⑤ 求助。關於51單片機的內部數據存儲器。
idata 指定數據存儲在內部256位元組的RAM數據存儲區。不是低256位元組。
而是這256位元組存儲分為低128位元組,高128位元組。
如:AT89SC1隻有低128位元組,而AT89C52才有256位元組。
如果用匯編語言寫程序,這兩部分的定址方式是不同的,低128位元組可以間接定址,也可以直接定址。而高128位元組,只能間接定址。
在建工程時,如果選AT89C51,程序就只能用低128位元組。但是選了AT89C52,才可以使用256位元組。
這不是什麼特意去存低256位元組的事。
關於單片機的存儲器的結構空間,任何一本關於51單片機的教材或書都會講的。
⑥ 單片機片內存儲器和片外存儲器的作用和概念
單片機片內存儲器包括片內ROM和片內RAM,片內ROM用於存儲程序代碼,片內RAM包括寄存器和片內擴展RAM,比如STC的很多型號都有片內擴展EEPROM。
片外存儲器包括片外ROM和片外RAM,片外ROM用戶存儲程序代碼,片外RAM用於存儲用戶的可改寫數據。
⑦ 單片機上電時內部各個存儲器狀態
首先單片機復位也分別幾種:掉電再通電,按復位按鈕,程序復位,通過外部介面復位。
各晶元的復位電路大同小異,這里以51系列單片機為例,上電後,保持RST一段高電平時間,就能達到上電復位的操作目的。
常見的復位電路如下:
1.掉電再通電,這里就視為冷啟動吧
這種情況下單片機的復位操作使單片機進入初始化狀態,其中包括使程序計數器PC=0000H,這表明程序從0000H地址單元開始執行。單片機冷啟動後,片內RAM為隨機值,特殊功能寄存器復位後的狀態為確定值,具體可參考相應單片機的說明書。
2.按復位按鈕
這種情況下單片機的復位操作也會使程序計數器PC=0000H,程序重新從 0000H 地址執行,但是與第1種情況不同的是,片內RAM為復位前的狀態值,也就是說,運行中的復位操作不改變片內RAM區中的內容。而特殊功能寄存器復位後的狀態為確定值,具體可參考相應單片機的說明書。
51單片機復位後特殊功能寄存器的初始值
特殊功能寄存器 初始值 特殊功能寄存器 初始值
ACC 00H TCON 00H
B 00H TMOD 00H
PSW 00H TL0 00H
SP 07H TH0 00H
DPTR 0000H TL1 00H
P0~P3 FFH TH1 00H
PCON 0XXX 0000B T2CON 00H
AUXR XXX0 0XX0B T2MOD XXXX XX00B
AUXR1 XXXX XXX0B RCAP2L 00H
IE 0X00 0000B RCAP2H 00H
IP XX00 0000B TL2 00H
SCON 00H TH2 00H
SBUF XXXX XXXXXB WDTRST XXXX XXXXB
表中部分符號的含義如下:
PSW=00H:表明復位後自動選擇第0組工作寄存器組為當前工作寄存器組
SP=07H:表明堆棧指針指向片內RAM07H單元,堆棧的壓入操作為先加後壓,所以第一個被壓入的數據存放在08H單元中
P0~P3=FFH:表明各埠寫入1,此時各埠既可作輸入口,也可以作輸出口
AUXR=XXX0 0XX0:表明ALE引腳在CPU不訪問外部存儲器期間有脈沖信號輸出
AUXR1=XXXX XXX0:表明選擇DPTR0作數據指針
IE=00H:表明各中斷均關閉
TCON=00H:表明T0,T1 均被停止
SCON=00H:表明串口處於方式0,允許發送,不允許接收
PCON=00H:表明SMOD=0,波特率不加倍。PD=0,IDL=0,單片機處於正常工作方式。
3.程序復位
這種情況下單片機的復位操作由程序內部控制,功能要視乎程序的編寫。例如我們可以操作使程序計數器PC=0000H,同時
添加RAM初始化程序,清0或置1,同時設置某些特殊寄存器的值,或者其他操作,總之這是一種軟體操控的復位,功能可靈活控制。
4.外部介面復位待研究。
P.S.
1.什麼是冷啟動?熱啟動呢?
冷啟動就是在不加電的情況下啟動系統,熱啟動就是在加電的情況下重啟系統!
例子:
冷啟動是之直接按下電源開關啟動計算機。
熱啟動是之在已開機的狀態下在開始菜單中選擇重新啟動計算機,這叫做熱啟動。
⑧ STC89C52 單片機的內部程序存儲器與數據存儲器容量各為多少
STC89C52 單片機的內部程序存儲器為8K位元組;內部數據存儲器容量為512位元組。
⑨ 單片機內部程序存儲器ROM,4K的存儲容量是什麼
單片機內如ROM4K的存儲容量也就是4096個位元組的容量地址空間是0000H~0FFFH主要存儲的是程序、一些常量、數據表等等。
⑩ 單片機讀片外數據存儲器信號輸出端是什麼
/EA是外部程序存儲器選擇端,當其為低電平時,cpu只訪問外部rom,當其為高電平時,cpu首先訪問內部rom並自動延至外部rom。8031內部沒有rom,/EA端必須接地。
ALE:地址鎖存允許信號,當cpu訪問外部存儲器時,ALE信號由高電平變為低電平(下降沿有效)鎖存p0口輸出的低8位地址。
單片機讀片外數據存儲器信號movx a,@dptr