微控制器的程式儲存器疑問,微控制器程式儲存器的問題

2022-09-11 04:15:01 字數 2760 閱讀 8307

1樓:匿名使用者

早期的微控制器mcs-8051, 片內不帶程式儲存器, 需要擴充套件程式儲存器, 一般是紫外線可擦除的, 有個玻璃窗口 供紫外線照射擦除的, 稱為eprom, 晶元可重複擦除和寫入.

eprom內資料的寫入要用專用的程式設計器,並且往晶元中寫內容時必須要加一定的程式設計電壓(vpp=12—24v,隨不同的晶元型號而定)。

現在的微控制器 一般片內帶有程式儲存器, 有一次性的 就是只能一次寫入程式。有可以重複使用多次擦除 和 寫入程式, (一般稱擦寫次數10 萬次), 稱為 flash 程式儲存器(也稱快閃儲存器) , 為電擦除形式。

微控制器程式儲存器的問題

2樓:做而論道

0000h-1fffh,有兩塊,一塊在片內,一塊在片外。

/ea=0,使用片內的;

/ea=1,使用片外的;

超過1fffh,無論/ea如何,都使用片外的2000h-ffffh。

3樓:

對於51微控制器核心來說,無論片內還是片外,它的第一條指令都是從0000h這個位址開始的。

當ea=0的時候,微控制器使用片外rom儲存器(此時不會使用片內的rom),所以位址還是從0開始的

對於片外的ram 51微控制器是根據指令的不同來區分片內與片外儲存器。

如 mov a,0x20 這裡的0x20是片內的movx a,0x20 這裡就是對片外的0x20進行ram的定址主流的微控制器80%以上都是從0位址開始執行第一條指令的。

4樓:小伊凡_豆豆

對於51微控制器來說,無論片內還是片外,它的第一條指令都是從0000h這個位址開始取指令的。

而且對於程儲存器,片內片外位址都是從0000h開始的啊,誰告訴你片外位址從2000h開始的,找本書看一下儲存器映像圖。當ea=1的時候,微控制器是從片記憶體儲器的0000h取第一條指令,當ea=0時,微控制器從片外0000h單元取第一條指令,所以如果你把程式燒到片內了,那麼你要把ea置成高電平。如果你把程式燒到片外了,那麼你要把ea置成低電平。

當然你也可以反過來,把ea置成低電平,把程式燒到片內,這時微控制器還會到外存裡面0000h單元取第一條指令,只不過取不過造成死同罷了,不知你明白沒。不過我說的是51微控制器哦

5樓:

ea=0全部設為片外,還是從0000h開始的

這是51微控制器程式儲存器結構 ,誰能給我解釋一下什麼意思啊,那最上面的60kb怎麼理解?

6樓:匿名使用者

就是ea=1時選擇內部暫存器,0時是外部暫存器,0000-0fff,是儲存位址,每個位址依次是0000,0001,0002,.....,0fff,0fff用2進製表示的,即0000 1111 1111 1111,轉換成十進位制是2的12次方,是4048,即4k,如圖表示的內部儲存器容量,如果從0000到ffff,是2的16次方,即64k,所以外部儲存器容量是減4k,即60k

微控制器疑問 真心求解疑 回答的好加100分

7樓:

可以這麼說,馮氏結構重在執行速度,哈氏結構重在空間擴充套件。

普林斯頓結構,也稱馮·諾伊曼結構,是將程式指令儲存器和資料儲存器合併在一起。程式指令儲存位址和資料儲存位址指向同乙個儲存器,但不同物理位置,程式指令和資料的寬度相同,這就形成一種結果,就是普林斯頓結構執行速度很快,因為他不需要靠指令區分到底訪問哪個儲存器,靠的只是位址範圍,所以普氏結構的指令叫精簡指令集。

哈佛結構是將程式指令儲存和資料儲存分開。哈佛結構是一種並行體系結構,它的主要特點是將程式和資料儲存在不同的儲存空間中,即程式儲存器和資料儲存器是兩個獨立的儲存器,每個儲存器獨立編址、獨立訪問,因為哈佛結構實際上是兩個甚至多個儲存器,那麼,為了分清楚指令到底訪問的是哪個儲存器,需要不同的指令,表現的51微控制器組合語言,就像mov,movx,movc,所以哈氏結構的指令集叫複雜指令集,就是因為同樣功能的指令,有不同的版本,用來區分儲存器。

總的來說,時間與空間不可兼得,哈佛結構擴充套件了空間,但是執行速度慢的很多,馮氏結構空間得不到擴充套件,但是指令執行速度快的很多。

現在因為32位機是主流,所以,哈氏結構基本上被摒棄了,因為32位即4g的空間怎麼都夠用了。

另外,在有些特殊的地方,如我們現在的pc機,是兩種結構並存的。

微控制器立即數定址為什麼不用movc

8樓:匿名使用者

在彙編中,movc指令是表示程式儲存器裡的內容和別的儲存單元進行傳送的,主要是用在累加器a和程式儲存器的資料傳送。正如上面的兩條指令:movc a,@a+pc;movc a,@a+dptr。

9樓:匿名使用者

movc是通過跳轉位址去訪問其他程式空間位址的資料的,比如當前**存放在1000h的位址,通過movc,你可以去讀取2000h位址的資料

而立即數是存放在當前指令的下乙個位址,pc直接加1就可以訪問,用mov,高效簡潔。

如果你應是要這樣繞彎去做,也可以通過movc去的方式獲取這個數的,比如你現在的位址是1000h,你要獲取1001h的立即數,你把pc賦值1001h,就可以通過movc就得到

10樓:做而論道

立即數定址,和 movc 怎麼可能聯絡在一起?

樓主寫出一條《用立即數定址的 movc 的指令》,讓大家看看。

11樓:

實際上不會出現你所說的現象。可能是你的描述表達不準確。你舉個具體的例子說明一下。

微控制器程式解讀 20,微控制器程式解釋

org 000h ajmp start org 001bh ajmp timel 定時器1中斷服務org 0030h start mov ie,10000100b 開啟總中斷和外部1中斷 貌似有錯誤 mov sp,60h 棧頂為60hmov p1,0ffh mov r0,00000011b r0 0...

微控制器LED,微控制器中程式中,LED LED是什麼意思?

雖然你這樣的電路仍然可以實現這些功能,但不值得推薦,你了解一下動態掃瞄吧,如果能掌握動態掃瞄就很簡單了,因為按你這個樣子,如果顯示5位數的話,那微控制器io口豈不是都不夠用了啊,你只要把數碼管的段顯示部分 2個數碼管的左邊七個引腳 都接在p2口就行,也就是再多的數碼管都接在乙個 8位 口上,例如 p...

微控制器問題,微控制器的問題

是 51 微控制器問題?正負數分開存放。零,放在正數一起。main mov 20h,21h 設定存放正數的起始位址mov 60h,61h 設定存放負數的起始位址mov r0,40h 資料源位址mov r2,20 資料個數lp mov a,r0 jnb acc.7,zh mov r1,60h 取負數位...