導航:首頁 > 操作系統 > 51單片機擴展程序

51單片機擴展程序

發布時間:2022-11-13 11:39:02

⑴ 51單片機如何擴展512K的程序存儲器(EPROM)晶元是M27C4001

51單片機最大定址空間是64K,超過64K可以用P1口對存儲器進行分頁,512K 存儲器,可用P1.0,P1.1,P1.2接EPROM的A16,A17,A18;將其分成8個64K 的存儲器頁.
在頁間跳轉必須精確定位,在頁間跳轉指令後面加入幾條NOP空操作,在跳入的頁面也加入幾條NOP空操作,如果你擴展ROM只是為了擴充數據存儲空間,那麼你可以在每頁開始的一段內都放入(相同的)指令程序。
如從0頁換1頁,當前PC=FFF0H,ROM地址:00FFF0H
SET P1.0
NOP
NOP
NOP
NOP
SET P1.0切換後:PC=FFF2H,ROM地址:01FFF2H
要特別注意的是,中斷子程序必須放在每頁相同的位置安排入口,單片機上電時P1.0,P1.1,P1.2都是高電平,所以,你的初始化程序入口應在ROM的070000H處。
這么高難度,您只有5分,哎!!!!

⑵ MCS-51單片機可擴展的程序存儲器和數據存儲器的地址空間各為多少

51的存儲器從功能上來說可以分為程序存儲器和數據存儲器,至於到底能擴展多少存儲空間,要看你擴展的是哪一類存儲器。
訪問存儲空間時,需要用到兩個指針變數,為DPTR何PC。其中pc為程序計數器,指向下一條需要執行的指令的地址,DPTR為數據指針寄存器,這兩個變數的長度都為16位,這是51單片機內部結構決定的,無法改變。所以這兩個指針的定址能力都為64K。這樣看來,兩類存儲器的擴展能力都為64K
。但是,如果你實際擴展過存儲器,你就可以發現程序存儲器的擴展能力並沒有64K!!!
這是為什麼呢????
這得從51單片機的存儲空間的編址說起。這里僅作簡單說明,具體可以看教科書。簡單地說,內部程序存儲器和外部程序存儲器是一起編址的,它們分別佔用64K地址的一部分,所以外部擴展時要減去內部的地址空間,當然小於64K啦。而數據存儲器是內外部分別編址,內外部數據存儲器用不同的指令進行訪問,所以不用擔心單片機會混淆內外部數據存儲器,所以外部數據存儲器擴展能力有64K

⑶ mcs 51系列單片機在擴展了外部程序存儲器時,為何需要在P0口接地址鎖存器

MCS-51單片機與外部擴展的存儲器相連時,P0口是作為地址/數據准雙向口(可輸入又可輸出),ALE輸出信號的負跳變用於單下機發出的低8位地址鎖存器的鎖存控制信號。如果地地址超過8位,由P2口的A8-15來選取外部存儲器,其中又可作為訊問外部存儲器的控制端,你想想看,我要對外擴充的存儲器進行讀或者寫,首先是不是要讓單片機知道外部存儲器的地址,這個地址就是由單片機從P0口輸出(如果地址超過8位,由P0、P2組合),以選通外部器件,接下來,就是傳送數據,但在傳送數據之前,單片機是不是要把之前傳送的地址要進行鎖存呢,這個任務就是由ALE口的負跳變來完成的。一旦知道地址了,那麼,單片機就可以方便麵的和外設進行交流了。
但願,我的解說,能夠對你有幫助。

⑷ 51單片機的內存擴展

你先告訴你們這出題 的老師,現這2764可是不好購買了,也可能你們以後一輩子用不上的了。如真是在學習的最好選用一片存貯器再加一片I/O晶元來做那才更實在點。

⑸ 在51單片機的外部,需要擴展2KB的程序存儲器,請將以下電路原理圖連接完整

因為是在模擬軟體上畫,樓主耐心點看。

註:1.你圖中的74LS373的G端就是連我圖中的LE端;

2.其地址范圍是:0000H~07FFH。

⑹ 51單片機需要擴展程序存儲器嗎

不用擴展。
程序存儲器是用來存儲「程序代碼」的,還沒有見到誰編寫的「程序代碼」能超過32K位元組。

有人編寫的大規模的程序,說是超過了多少多少K,其實往往都是包括了大量的數據表格,如漢字點陣等等,根本不是程序代碼。
這樣的內容,都可以用IIC匯流排的EEPROM來存儲,這樣就可以代替三匯流排的程序存儲器。

⑺ 51單片機程序儲存器擴展。

你定義一個xdata類型的變數就可以了。

unsigned char xdata *p;//p就是你的RAM地址,
你要取地址為addr的數據,你可以這樣。
p=addr;
temp=*p;

⑻ 51單片機程序存儲器擴展的一些問題

RAM還是RAM,當然有起作用了,如果RAM不夠就要擴展,51RAM只有128B,有時確實不夠用,也可以用52、53的單片機,看看程序有沒寫錯了。

有點奇怪,為什麼要用AT28C64呢,可以用AT89S52內部就有8KB的FLASH,而且兩種價格相當,我這52跟51是一樣的。

還是建議你不要用擴展的ROM,用來玩還可以,用來做設計不實用,佔用太多IO口不說,安全性不高,你也不想自己苦寫的程序被人盜走吧。
你可以提高編程技巧,使程序簡捷,減少佔用空間。或改用其它內帶大容量ROM的晶元。
51的ROM確實小,不過我還沒寫出超出8K的(匯編),用AVR的吧如:ATmega32吧,內部就有32K的FLASH,2KBRAM,1KBEEPROM跟51一樣40個腳,速度大約是51的8倍。ATmega128有128K的FLASH(不過管腳有點多),跟AT89S51是同一個廠家.

⑼ C51單片機外部中斷擴展程序設計

外部中斷0設置為低電平觸發,去掉while循環後一直按下按鍵實際代碼為
delay();
p1=0xfe;
delay();
ex0=0;
p1=_crol_(p1,1);
delay();
ex0=1;
p1=0x00;
一直重復.
之前的代碼進入中斷後會一直循環,並不會退出中斷。正確做法中斷應該改為:
void
tx0()
interrupt
0
using
0
{
unsigned
char
i;
delay();
p1=0xfe;
delay();
ex0=0;
while(1)
{
p1=_crol_(p1,1);
delay();
if(p3&0x04)
//判斷是否松開中斷0的按鍵
{
break;
}
}
ex0=1;
p1=0x00;
}

⑽ 51單片機串列口擴展並行輸入口的C語言程序

那需要看你用什麼晶元了,不同的晶元程序也就 不同,沒有晶元怎麼能編程呢?

閱讀全文

與51單片機擴展程序相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151
伊克塞爾文檔怎麼進行加密 瀏覽:893
app轉賬是什麼 瀏覽:163