熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2022-10-1 19:21
正文摘要:在51單片機(jī)片內(nèi)取指令,無法從內(nèi)存中讀取,只能從程序存儲(chǔ)器中讀取。那么,新輸入的指令單片機(jī)運(yùn)行的時(shí)候就無法接收。 1.如果CPU可以從片內(nèi)ram讀取指令,請(qǐng)大家不吝賜 |
lyonkon 發(fā)表于 2022-10-9 23:07 有這種的51單片機(jī),好像是錦銳的,有一部分 RAM和ROM在地址上是重疊映射的,主要用來做 BOOTLOAD代碼 |
回顧了樓主帖子,我覺得樓主是想做軟驅(qū),二十年前,插軟驅(qū)的那種,PC機(jī)![]() |
lyonkon 發(fā)表于 2022-11-23 23:13 STC89C52 有兩個(gè)版本。只有HD版本有EA ![]() 不過現(xiàn)在外面能夠買到的版本多數(shù)是90C版本沒有EA接腳的 ![]() ![]() |
angmall 發(fā)表于 2022-11-23 17:41 感謝,我從老哥圖紙中學(xué)了不少東西。 51 EA引腳實(shí)機(jī)我測(cè)試了, 用stc89c52測(cè)試 EA引腳接高電平,執(zhí)行片內(nèi)程序 EA引腳接低電平,執(zhí)行片內(nèi)程序 EA引腳懸空,任然執(zhí)行片內(nèi)程序 開機(jī)過后接線。接了線再開機(jī)任然,沒有任何變化 EA引腳彎出ic座 測(cè)試的,用兩個(gè)芯片試過, 我從老cd機(jī)上拆了一塊at89c51 用at89c51測(cè)試EA引腳沒問題, |
你的74HC138連接不正確。
![]() LCD1602讀寫地址是對(duì)的。 |
51單片機(jī)說"臣妾做不到啊。。。。。!" |
Y_G_G 發(fā)表于 2022-10-13 13:09 回帖沒看人,原來又是一位力圖拯救過時(shí)元器件和原理的大俠,我還以為只是一時(shí)興趣愛好想玩的呢,畢竟我也懷念之前用單片單板機(jī)輸入機(jī)器碼進(jìn)行學(xué)習(xí)單片機(jī)的經(jīng)過,也有重新打板(當(dāng)然元件簡(jiǎn)化用新式的,比如用TM1650系列做顯示和按鍵處理)“懷舊”的想法,自我陶醉一下 |
lyonkon 發(fā)表于 2022-10-13 12:27 我也是醉了,控制單片機(jī)EA引腳是這樣的嗎? “setb p3.0;單片機(jī)EA引腳” |
lyonkon 發(fā)表于 2022-10-13 08:21 錯(cuò)了,你還是沒有理解我的說法,“該電路板插在外擴(kuò)RAM上可讀寫”,已經(jīng)可以隨意編寫機(jī)器語言進(jìn)去了,然后控制引腳切換,就可以當(dāng)做程序存儲(chǔ)器運(yùn)行程序了 |
lyonkon 發(fā)表于 2022-10-13 12:27 我竟然無言以對(duì) 再去看了一下你以前的帖子,才發(fā)現(xiàn),你就是那個(gè)發(fā)明了三總線開發(fā)板的發(fā)明人 對(duì)不起,我錯(cuò)了,哪怕我上論壇只是打發(fā)時(shí)間,也不應(yīng)該把時(shí)間浪費(fèi)在這個(gè)帖子上 我只是一個(gè)執(zhí)著于把前輩經(jīng)驗(yàn)運(yùn)用到實(shí)際中的人,我沒什么上進(jìn)心,也沒有什么想要?jiǎng)?chuàng)新的思想 我只會(huì)運(yùn)用已經(jīng)存在的技術(shù)而已 |
Y_G_G 發(fā)表于 2022-10-13 10:47 org 0000h …… 主程序載入RAM程序從片內(nèi)rom載人片外ram d1: mov dph,#0000 mov dpl,#0000 movc a,@dptr mov r0 ,#00h movx @r0,a Inc r0 Inc dptr mov r1,#ffh//比如程序是128字節(jié) djnz r1 d1 setb p3.0;單片機(jī)EA引腳 至此單片機(jī)跳入外部RAM執(zhí)行。 你在主程序當(dāng)中加一條 movx a,1fh 那么用鍵盤在1fh地址輸入你的數(shù)字。就可以了 |
lyonkon 發(fā)表于 2022-10-13 08:46 你運(yùn)行過了?如果你運(yùn)行了,我有硬件,你把你的代碼發(fā)上來,我去運(yùn)行看一下結(jié)果 順便問一下,MOV P0,#015H 你要怎么輸入這個(gè)命令,從哪里輸入? |
樓主對(duì)51的RAM有一些概念的錯(cuò)誤,35樓實(shí)現(xiàn)的仍然是使用外部RAM做加載程序的存儲(chǔ)器,并不是使用51芯片內(nèi)部的RAM,是不同的概念 |
angmall 發(fā)表于 2022-10-11 15:53 psen引腳我本來是放棄不用的,沒想到老哥用的這么好。普林斯頓存儲(chǔ)體系。 |
Y_G_G 發(fā)表于 2022-10-11 11:50 35樓的設(shè)計(jì)已經(jīng)做到了,指令可以在RAM中執(zhí)行。也不影響RAM存儲(chǔ)數(shù)據(jù)。 |
angmall 發(fā)表于 2022-10-11 15:53 老哥時(shí)序玩的溜。∥业脑O(shè)計(jì)是將p2.7引腳和red引腳接一個(gè)與門到RAM oe端。讀寫數(shù)據(jù)的時(shí)候,p2.7為高電平(地址最高位)。執(zhí)行RAM中指令時(shí),p2.7為低電平。缺點(diǎn)是數(shù)據(jù)地址,與指令地址是兩套地址,容易記不住。我覺得你的設(shè)計(jì)更符合時(shí)序,用起來也省心。 |
hhdsdy 發(fā)表于 2022-10-13 01:19 你看到35樓的設(shè)計(jì),你就會(huì)改變想法了。你說的思路是將RAM芯片加電池當(dāng)ROM用。 |
lyonkon 發(fā)表于 2022-10-13 00:26 以前的武漢尚吉電子曾經(jīng)出品過SCB-II-51或者說是SCB-2-51的單片單板機(jī),你或許要的就是這種。 我那時(shí)從電子報(bào)中縫廣告看到有學(xué)習(xí)單片機(jī)的書籍然后郵購(gòu),從此才對(duì)單片機(jī)感興趣并學(xué)習(xí)的,實(shí)際上那上下兩冊(cè)的書籍就是該單片單板機(jī)的說明書,但是解說的很詳細(xì),并附有詳細(xì)完整的程序,反正我那時(shí)就是靠著該書,沒有老師沒有同好交流,一個(gè)人自學(xué)單片機(jī)的,最后還組裝了一套該單片單板機(jī)。 |
lyonkon 發(fā)表于 2022-10-9 23:07 還以為樓主有了這個(gè)想法,就能理解我的說法,沒想到還是不懂。 不明白為什么會(huì)說缺乏通用性?6264外加小電池并稍作處理,做個(gè)小電路板,就能代替2764使用,存儲(chǔ)器的座子用鎖緊座代替,該電路板插在外擴(kuò)RAM上可讀寫,插在外擴(kuò)ROM上并將EA置零可運(yùn)行程序。 嫌麻煩的,用地址區(qū)分,比如4000H開始的地址分配給它,用雙刀雙擲開關(guān)進(jìn)行切換,一樣可以讀寫以及運(yùn)行程序,至于具體的,因?yàn)殚L(zhǎng)久沒接觸,倒是忘了,但是絕對(duì)可行。 |
wwh2382 發(fā)表于 2022-10-11 15:33 我的目的的確是這樣 |
你可以試試這個(gè) PAULMON 調(diào)試器 ![]() PAULMON 使用 8051 中的內(nèi)置 UART 來與用戶溝通。通常,PC 計(jì)算機(jī)與終端程序、8051 匯編器一起使用 ![]() PAULMON 也旨在與 RAM 一起使用,并且 RAM 開頭的默認(rèn)位置是 2000(十六進(jìn)制),在 EPROM 之后,雖然是 RAM 可以在 2000 - FFFF 范圍內(nèi)的任何地方使用。到 RAM 的讀使能信號(hào)應(yīng)該是 RD 和 PSEN 信號(hào)的邏輯或,以便讀取 嘗試外部代碼存儲(chǔ)器或程序存儲(chǔ)器空格將從 RAM 中讀取。 (使用與門做這些信號(hào)的邏輯或,因?yàn)樗鼈?br /> 低電平有效。╋@然的寫使能 RAM 應(yīng)連接到 8051 的 WR 引腳。 以這種方式連接 RAM 將允許在 PAULMON 中下載命令來編寫你的程序進(jìn)入 RAM (寫入外部數(shù)據(jù)存儲(chǔ)器 空間)。然后你可以運(yùn)行你的程序,因?yàn)閺耐獠砍绦虼鎯?chǔ)空間讀取嘗試 將從 RAM 芯片中讀取。 |
3.4 MB, 下載次數(shù): 4
我理解的是,樓主想拿單片機(jī)當(dāng)pc機(jī)用。坦率地說,你就死了這條心吧。計(jì)算機(jī)技術(shù)如今發(fā)展的已經(jīng)很成熟了,其表現(xiàn)之一就是不同的技術(shù)有不同的定位 |
jjwangxu2008 發(fā)表于 2022-10-11 08:48 跑什么虛擬機(jī) 這是樓主單片機(jī)基礎(chǔ)知識(shí)沒學(xué)好,想當(dāng)然的冒出一個(gè)想法 你說什么他都能找到一堆東西來反駁你,說得有理有據(jù)的 指令跟數(shù)據(jù)都分清 STM32把程序放在RAM中運(yùn)行和他說的這個(gè),完全是兩回事 FPGA運(yùn)行方式也是把程序放到RAM中運(yùn)行的,但也跟他說的不是一回事 他就是想當(dāng)然的有一個(gè)想法,然后想當(dāng)然的覺得這個(gè)方法是可以 再然后就是在這個(gè)"他自己覺得可以的"前提下,問人家怎么做 |
正在學(xué)習(xí)51 發(fā)表于 2022-10-11 00:59 當(dāng)鍵盤輸入一條指令,存入內(nèi)存。CPU要執(zhí)行這條指令,51單片機(jī)在外接RAM的時(shí)候可以做到。我們討論的是只用片內(nèi)資源如何達(dá)到這個(gè)目的。并不是明知不可為而為。那樣就失去了探索的意義了 |
正在學(xué)習(xí)51 發(fā)表于 2022-10-11 00:59 現(xiàn)在 單片機(jī) 可以用C++ 編程了 |
dalaoshi 發(fā)表于 2022-10-10 16:22 我也想做這個(gè)東西。 |
Y_G_G 發(fā)表于 2022-10-10 08:16 是不是 跑個(gè)虛擬機(jī),然后就能實(shí)現(xiàn) 運(yùn)行RAM指令了。 不知道這么理解對(duì)不對(duì)? |
“在51單片機(jī)片內(nèi)取指令,無法從內(nèi)存中讀取,只能從程序存儲(chǔ)器中讀取。” 這個(gè)問題很好,但是看不懂 ![]() 單片機(jī)指令不是編譯后一次寫入么 ?編好的程序如何放在內(nèi)存 ?而且還可以放在程序存儲(chǔ)器 ? |
Y_G_G 發(fā)表于 2022-10-8 11:44 新手剛?cè)腭v求教, ![]() 本來要學(xué)單片編程的我學(xué)了C++,歪了一陣風(fēng)中凌亂嘻嘻嘻.... 今天才知道單片的編程不能硬套電腦編程,有些是不通用的。但是分清楚了就較簡(jiǎn)單了信心滿滿再補(bǔ)一波單片編程 |
樓主沒明白24樓的意思,應(yīng)該是外掛一個(gè)RAM,用來存程序和執(zhí)行程序,只是把一般外接的ROM改成了RAM |
dalaoshi 發(fā)表于 2022-10-10 16:22 外部程序要想執(zhí)行,先要把程序加載到ram。但是51 系統(tǒng)指令只在rom中,ram中的只被當(dāng)成數(shù)據(jù)。除非外部掛載普林斯頓體系存儲(chǔ)器。樓上說有執(zhí)行ram中指令的方法,我先看看官方手冊(cè) |
lyonkon 發(fā)表于 2022-10-10 11:35 這是能夠?qū)崿F(xiàn)的,你先寫一個(gè)基本操作程序,里面包含很多基本要用到的功能,比如TIME,COM, PRINT, VOLT, SENT,LOAD,RUN,PLAY(用中文也可)等等,然后用一個(gè)主控程序等待輸入,并顯示在LCD上,等輸入回車鍵后開始檢查字串,如果是正確字串就開始執(zhí)行相應(yīng)的副程式,執(zhí)行完畢后有回到等待輸入程序,要載入的外部程序可以儲(chǔ)存在SD卡,用LOAD命令加載在RAM, 讓后跳到程序起始處執(zhí)行,這樣就把控制權(quán)交給加載的程序,程序執(zhí)行完畢后把控制權(quán)再交回給主控程序,這樣就做成了51的DOS,由于現(xiàn)代有了大容量非易失存儲(chǔ)器SD卡的加持,也許會(huì)有新的用途。 |
這個(gè)方式現(xiàn)在好像沒什么意義了,這個(gè)需求就類似早期一些設(shè)備商提供基本的功能,然后客戶可以自己加載自己的功能,但現(xiàn)在基本都是一次性設(shè)計(jì)完全,這種功能沒什么用了 |
lyonkon 發(fā)表于 2022-10-10 12:07 "開機(jī)之前RAM中沒有程序,這個(gè)是不用擔(dān)心的?梢韵駒86那樣,開機(jī)將程序載人RAM,載完了之后,CPU跳轉(zhuǎn)到RAM執(zhí)行指令。這樣,不論是加載的程序還是鍵盤輸入的程序,都可以執(zhí)行" 非常好,反正我學(xué)了幾年的單片機(jī),什么都看不明白,果然,我還是技術(shù)不到家 |
51單片機(jī)暫時(shí)做不到,因?yàn)槭菣C(jī)制的原因,本身并不是ARM架構(gòu)的關(guān)系,這跟底層架構(gòu)是有關(guān)系的,建議學(xué)習(xí)下底層架構(gòu)知識(shí),就是那種純匯編代碼,了解PC指針,以及具體的寄存器,學(xué)習(xí)下就會(huì)明白 |
感覺樓主還是有誤解了,看貼里對(duì)51試驗(yàn)箱的描述,應(yīng)該是外掛了一個(gè)比較大的RAM,這個(gè)RAM可以作為RAM和ROM來使用 |
cnos 發(fā)表于 2022-10-10 09:00 apple 1 用的CPU與51CPU性能差不多,但是apple1不僅支持匯編,還支持b語言。我覺得51單片機(jī)是可以做到匯編語言輸入,并且執(zhí)行指令的,只是沒有人做,我是想做一個(gè)玩玩 |
Powered by 單片機(jī)教程網(wǎng)