關於51微控制器讀取片外ROM的問題

時間 2021-08-11 17:35:05

1樓:匿名使用者

rom的cs一腳接到微控制器的哪個位置?用的rd訊號使用了嗎?

你用的27e512是64kb的rom,這個正好是51微控制器的定址空間,所以你把微控制器連線rom時要稍微特殊一些,rom的cs引腳用p1或p3的一個埠位連線,rom的oe連線微控制器的rd,其餘相同,這樣使用movx指令來讀取rom中的內容。

2樓:米海濤

看不出什麼,不過有幾點看法:

1.不知道你的硬體怎麼設計的;

2.從程式區0000h開始讀的話,讀到的應該是你的程式入口點和中斷向量區,不是你隨便能寫入什麼都行的;

3.51微控制器應該整合了部分rom,這些rom佔用了從0x0000開始的rom空間,除非你用的是8031或者禁用了片內rom,你讀到的真的是片外的rom嗎?

如果你燒錄了一片片外rom,你要確定它的初始地址是不是0000。如果是0000,你要確定這些地址空間是不是被片內rom覆蓋了。

希望對你有幫助。

###############################

這就很明顯了。

你外接了64kb的片外rom,其物理首地址只能是0000h,而且看起來你的程式是燒在片內rom上的,很顯然你也沒禁用片內rom。這樣一來,片外rom開始的一段地址空間就與片內rom重疊了,在這段地址內微控制器按照配置讀取片內rom的內容,只有超出片內rom的地址空間才能讀到片外rom的內容。

1.假設微控制器整合了4kb的片內rom,你又沒有禁用片內rom,那麼從0x0000--0x1000的地址就都對映到片內rom的空間,即使你只寫了0x0000--0x00df的**,0x0100開始的地址也還是片內rom空間,你讀這段地址的資料只能讀到片內rom的內容,而不是片外rom的內容。

2.資料寫在0x0100開始的空間中,讀資料的地址就不能從0x0000開始。

你有兩個選擇,一個是禁用片內rom(好像是ea引腳控制的吧,記不太清了),把程式燒也在片外rom上,然後把程式改為讀取從0x0100到0x0150的資料;

第二個辦法就是弄清自己的微控制器整合多少rom,然後把資料燒在片外rom裡不屬於這些重合地址的空間,再從你燒錄資料的地址開始讀資料就行了。

8051微控制器訪問片外rom與片外ram的讀寫訊號各是什麼。

3樓:墨汁諾

51微控制器訪問片外rom(取指令**、執行movc指令)時,/psen出現短暫的低電平;

51微控制器訪問片外ram(執行movx指令)時,/wr或/rd出現短暫的低電平。

它們三條線,就是樓主問的讀寫控制訊號。雖然訪問片外儲存器時,/ea 和 ale 也起了作用,但是它們都不在回答本題的範圍之內。

當ale是高電平時,允許地址鎖存訊號,當訪問外部儲存器時,ale訊號負跳變(即由正變負)將p0口上低8位地址訊號送入鎖存器。當ale是低電平時,p0口上的內容和鎖存器輸出一致。

4樓:匿名使用者

ale/prog 地址鎖存控制訊號:在系統擴充套件時,ale用於控制把p0口的輸出低8位地址送鎖存器鎖存起來,以實現低位地址和資料的隔離ale有可能是高電平也有可能是低電平,當ale是高電平時,允許地址鎖存訊號,當訪問外部儲存器時,ale訊號負跳變(即由正變負)將p0口上低8位地址訊號送入鎖存器。當ale是低電平時,p0口上的內容和鎖存器輸出一致。

在沒有訪問外部儲存器期間,ale以1/6振盪週期頻率輸出(即6分頻),當訪問外部儲存器以1/12振盪週期輸出(12分頻)。進行擴充套件時ale會以1/6振盪週期的固定頻率輸出,因此可以做為外部時鐘,或者外部定時脈衝使用。

porg為程式設計脈衝的輸入端:psen 外部程式儲存器讀選通訊號:在讀外部rom時psen低電平有效,以實現外部rom單元的讀操作。

1、內部rom讀取時,psen不動作;

2、外部rom讀取時,在每個機器週期會動作兩次;

3、外部ram讀取時,兩個psen脈衝被跳過不會輸出;

4、外接rom時,與rom的oe腳相接。

ea/vpp 訪問和序儲存器控制訊號

1、接高電平時:

cpu讀取內部程式儲存器(rom)

擴充套件外部rom:當讀取內部程式儲存器超過0fffh(8051)1fffh(8052)時自動讀取外部rom。

2、接低電平時:cpu讀取外部程式儲存器(rom)。 在前面的學習中我們已知道,8031微控制器內部是沒有rom的,那麼在應用8031微控制器時,這個腳是一直接低電平的。

3、8751燒寫內部eprom時,利用此腳輸入21v的燒寫電壓。

5樓:修者世界

8051訪問片外rom的訊號為:

1、ea=0;

2、ale有效

3、psen有效

8051訪問片外ram的訊號為:

1、ale有效

2、rd或wr有效

6樓:匿名使用者

非psen 和非ea

如何用微控制器(89c51)c語言訪問片外rom?當ram和rom同時外擴時該如何區別?

7樓:匿名使用者

ea/vpp(引腳):當ea端保持高電平時,訪問內部程式儲存器,反之訪問外部程式儲存器,

與之相關的三根引腳psen,rd,wr你都很清楚了,就不多說了,使用外部儲存器,需要使用程式設計器將你的程式寫到外部rom中。

psen是rom的選通線,因此,外部rom及外部ram是不會干擾的,你根本不用考慮這個問題,按教材連線就可以了,當然,stc的微控制器需要注意,它內部有擴充套件ram,在使用外部ram時需要遮蔽內部ram。

總之,內部還是外部,你的**完全一樣,只是ea/vpp腳接高低電平不同。

望採納!謝謝.

8樓:匿名使用者

沒記錯的話是用p0口來訪問的。地址匯流排與資料匯流排分時複用。

9樓:匿名使用者

自己是做嵌入式的,微控制器的話沒那麼難,自己大學時候根本學的不是微控制器,但後面感覺也沒有什麼太大的壓力,因為的確不那麼難學吧或許。微控制器也沒你說的那麼複雜吧,只要按照每個晶片的功能仕樣書中寫的通訊方式送信,把要寫的data送進正確的register裡的話,晶片就會正確工作起來。

51微控制器把片外rom.20ffh的內容放到片外ram 10eeh 。能下面這樣寫嗎?

10樓:匿名使用者

看似可以,實際有問題,雖然你先設定了 mov p2 #10h;

但執行 movc a,@a+dptr 後,p2值已改變為20h所以再專執行movx @r0,a不能

屬達到目的。

將mov p2 #10h緊接著 movx @r0,a應該可以。

11樓:匿名使用者

可以的,這樣寫程式是可以實現的。寫外部ram10eeh,也用dptr還可簡化

movx @r0,a換成

mov dptr,#10eeh

movx @dptr,a

12樓:匿名使用者

選最終boss妖族公主,還得到了一把能百分比

8051微控制器訪問片外ROM與片外RAM的讀寫訊號各是什麼

墨汁諾 51微控制器訪問片外rom 取指令 執行movc指令 時,psen出現短暫的低電平 51微控制器訪問片外ram 執行movx指令 時,wr或 rd出現短暫的低電平。它們三條線,就是樓主問的讀寫控制訊號。雖然訪問片外儲存器時,ea 和 ale 也起了作用,但是它們都不在回答本題的範圍之內。當a...

關於51微控制器的中斷,關於51微控制器的中斷。

廣東人讀書好 中斷的概念 cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷髮生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 二 中斷源 在51微控制器中有5箇中斷...

51微控制器外部中斷的觸發方式,51微控制器怎麼設定外部中斷?

捲毛 51微控制器的外部中斷有兩種觸發方式可選 電平觸發和邊沿觸發。選擇電平觸發時,微控制器在每個機器週期檢查中斷源口線,檢測到低電平,即置位中斷請求標誌,向cpu請求中斷。選擇邊沿觸發方式時,微控制器在上一個機器週期檢測到中斷源口線為高電平,下一個機器週期檢測到低電平,即置位中斷標誌,請求中斷。這...