久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5802|回復: 56
收起左側

對于51單片機內存的困擾,求指教

  [復制鏈接]
ID:73992 發表于 2022-10-1 19:21 | 顯示全部樓層 |閱讀模式
在51單片機片內取指令,無法從內存中讀取,只能從程序存儲器中讀取。那么,新輸入的指令單片機運行的時候就無法接收。
1.如果CPU可以從片內ram讀取指令,請大家不吝賜

回復

使用道具 舉報

ID:146878 發表于 2022-10-1 23:11 | 顯示全部樓層
沒辦法,因為能不能從內存取指,得看PC指針能不能指向RAM。
回復

使用道具 舉報

ID:624769 發表于 2022-10-2 00:32 | 顯示全部樓層
學匯編吧, 你就知道你要達到這個目的, 需要克服的問題,  以及如何克服了。
另外,還要學一點  51  工作 原理。 學了這些,你就能明白 PC指針的 動作基準是什么了。
回復

使用道具 舉報

ID:824490 發表于 2022-10-2 03:56 | 顯示全部樓層
先要去了解一下,什么是指令以及ROM和RAM的區別。然后是PC指針。沒試過,理論上貌似可以,但要變通。
回復

使用道具 舉報

ID:526108 發表于 2022-10-2 07:48 | 顯示全部樓層
C51沒辦法實現,ARM可以
回復

使用道具 舉報

ID:123289 發表于 2022-10-8 10:59 | 顯示全部樓層
傳統的51是可以外擴程序存儲器的,你可以用RAM來做這個外擴的部分。
回復

使用道具 舉報

ID:88256 發表于 2022-10-8 11:19 | 顯示全部樓層
8051單片機,EA置一,使用片內存儲器的程序,EA置零,使用外部存儲器的程序
回復

使用道具 舉報

ID:401564 發表于 2022-10-8 11:44 | 顯示全部樓層
C我會,匯編我也會,精通算不上,至少算是已經入門了
但為什么我看不懂樓主的問題

在51單片機片內取指令,這句話什么意思?
無法從內存中讀取,這又是什么意思?
只能從程序存儲器中讀取,那這個呢?
他是不是在描述8051的的總線結構?
那么,新輸入的指令單片機運行的時候就無法接收。?????
我用了幾年的匯編,難道,我連入門都算不上?
回復

使用道具 舉報

ID:73992 發表于 2022-10-9 22:49 來自觸屏版 | 顯示全部樓層
Y_G_G 發表于 2022-10-8 11:44
C我會,匯編我也會,精通算不上,至少算是已經入門了
但為什么我看不懂樓主的問題


通常51單片機是執行ROM中的指令
現在是想讓單片機執行片內RAM中的指令,
回復

使用道具 舉報

ID:73992 發表于 2022-10-9 23:07 來自觸屏版 | 顯示全部樓層
yzwzfyz 發表于 2022-10-8 10:59
傳統的51是可以外擴程序存儲器的,你可以用RAM來做這個外擴的部分。

外置RAM當ROM用,應該是可以做到。就是分享程序缺乏通用性。我考慮過用自身端口,模擬外置程序存儲器,但是程序太繁雜了。
回復

使用道具 舉報

ID:155507 發表于 2022-10-9 23:08 | 顯示全部樓層
lyonkon 發表于 2022-10-9 22:49
通常51單片機是執行ROM中的指令
現在是想讓單片機執行片內RAM中的指令,

你要去了解
哈佛結構與馮·諾伊曼結構區別

哈佛結構是一種將程序指令存儲和數據存儲分開的存儲器結構。
馮·諾伊曼結構,也稱普林斯頓結構,是一種將程序指令存儲器和數據存儲器合并在一起的存儲器結構。

51單片機是哈佛結構,所以不能執行片內RAM中的指令。
回復

使用道具 舉報

ID:883242 發表于 2022-10-10 00:40 | 顯示全部樓層
yzwzfyz 發表于 2022-10-8 10:59
傳統的51是可以外擴程序存儲器的,你可以用RAM來做這個外擴的部分。

扯淡。MOVC指令只能從程序存儲空間讀數據,無法寫數據,你拿RAM做程序空間,硬件怎么接,軟件怎么寫?
回復

使用道具 舉報

ID:401564 發表于 2022-10-10 08:16 | 顯示全部樓層
lyonkon 發表于 2022-10-9 22:49
通常51單片機是執行ROM中的指令
現在是想讓單片機執行片內RAM中的指令,

你只怕是對RAM有什么誤解吧
我不是計算機專業的,只能解讀51的RAM
51的RAM是易失的,掉電就沒了了,"任何RAM中存儲的信息在斷電后均會丟失,所以RAM是易失性存儲器。"這是百度的解釋,記住這句話,記不住就抄20扁
RAM和ROM雖然名字上都夾帶著內存,但它們是兩個東西,從設計的最初目的到實際使用,它們一直都是指向兩個不同的地方的
RAM是提高數據相關處理速度的,算是一個數據處理的中轉站,沒有DMA功能的單片機,處理數據都要經過RAM的,RAM放滿了,單片機就處理不了數據了
ROM就是存放數據的,就像家里的一個箱子,放滿了就放滿了,最多是再也放不下東西而已,單片機一樣的正常運行
不要有著把指令放在RAM的想法,有了這個想法,并不是你有創新思想或者是腦洞大開,那是連51單片機的入門知識都沒有學好
回復

使用道具 舉報

ID:879348 發表于 2022-10-10 08:21 | 顯示全部樓層
架構決定不可以這樣做,STM32可以運行在RAM,就可以這樣做
回復

使用道具 舉報

ID:624769 發表于 2022-10-10 08:50 來自觸屏版 | 顯示全部樓層
lyonkon 發表于 2022-10-9 22:49
通常51單片機是執行ROM中的指令
現在是想讓單片機執行片內RAM中的指令,

首先,51單片機確實只能執行rom中的指令,然后,你希望單片機執行片內ram的指令,是可以實現的,但是,不是直接執行,而是用十幾條指令,去執行一條在ram中的指令,具體執行方法你可以參考stc的在線仿真用到的,單片機端的程序。你能看懂,基本就能實現你的目的,看不懂,說明你的知識暫時還不支持你完成你的最終目標。
回復

使用道具 舉報

ID:688692 發表于 2022-10-10 09:00 | 顯示全部樓層
這個不是說不可以,只是有點麻煩了。
你去找找上古時期的
MCS-51試驗箱
就有這種搞法,板子上是單片機,通過鍵盤輸入匯編指令,可以直接運行
“CPU100%出借”  是我記得的一句說明書里面最印象深刻的話。
回復

使用道具 舉報

ID:73992 發表于 2022-10-10 11:35 來自觸屏版 | 顯示全部樓層
cnos 發表于 2022-10-10 09:00
這個不是說不可以,只是有點麻煩了。
你去找找上古時期的
MCS-51試驗箱

我就是想實現這個功能,用鍵盤輸入程序,然后CPU執行。
回復

使用道具 舉報

ID:73992 發表于 2022-10-10 12:07 來自觸屏版 | 顯示全部樓層
Y_G_G 發表于 2022-10-10 08:16
你只怕是對RAM有什么誤解吧
我不是計算機專業的,只能解讀51的RAM
51的RAM是易失的,掉電就沒了了,"任何R ...

開機之前RAM中沒有程序,這個是不用擔心的。可以像x86那樣,開機將程序載人RAM,載完了之后,CPU跳轉到RAM執行指令。這樣,不論是加載的程序還是鍵盤輸入的程序,都可以執行
回復

使用道具 舉報

ID:73992 發表于 2022-10-10 12:24 來自觸屏版 | 顯示全部樓層
cnos 發表于 2022-10-10 09:00
這個不是說不可以,只是有點麻煩了。
你去找找上古時期的
MCS-51試驗箱

apple 1 用的CPU與51CPU性能差不多,但是apple1不僅支持匯編,還支持b語言。我覺得51單片機是可以做到匯編語言輸入,并且執行指令的,只是沒有人做,我是想做一個玩玩
回復

使用道具 舉報

ID:384109 發表于 2022-10-10 12:42 | 顯示全部樓層
感覺樓主還是有誤解了,看貼里對51試驗箱的描述,應該是外掛了一個比較大的RAM,這個RAM可以作為RAM和ROM來使用
回復

使用道具 舉報

ID:1047140 發表于 2022-10-10 13:35 | 顯示全部樓層
51單片機暫時做不到,因為是機制的原因,本身并不是ARM架構的關系,這跟底層架構是有關系的,建議學習下底層架構知識,就是那種純匯編代碼,了解PC指針,以及具體的寄存器,學習下就會明白
回復

使用道具 舉報

ID:401564 發表于 2022-10-10 14:08 | 顯示全部樓層
lyonkon 發表于 2022-10-10 12:07
開機之前RAM中沒有程序,這個是不用擔心的?梢韵駒86那樣,開機將程序載人RAM,載完了之后,CPU跳轉到RA ...

"開機之前RAM中沒有程序,這個是不用擔心的?梢韵駒86那樣,開機將程序載人RAM,載完了之后,CPU跳轉到RAM執行指令。這樣,不論是加載的程序還是鍵盤輸入的程序,都可以執行"
非常好,反正我學了幾年的單片機,什么都看不明白,果然,我還是技術不到家
回復

使用道具 舉報

ID:384109 發表于 2022-10-10 15:43 | 顯示全部樓層
這個方式現在好像沒什么意義了,這個需求就類似早期一些設備商提供基本的功能,然后客戶可以自己加載自己的功能,但現在基本都是一次性設計完全,這種功能沒什么用了
回復

使用道具 舉報

ID:283954 發表于 2022-10-10 16:22 | 顯示全部樓層
lyonkon 發表于 2022-10-10 11:35
我就是想實現這個功能,用鍵盤輸入程序,然后CPU執行。

這是能夠實現的,你先寫一個基本操作程序,里面包含很多基本要用到的功能,比如TIME,COM, PRINT, VOLT, SENT,LOAD,RUN,PLAY(用中文也可)等等,然后用一個主控程序等待輸入,并顯示在LCD上,等輸入回車鍵后開始檢查字串,如果是正確字串就開始執行相應的副程式,執行完畢后有回到等待輸入程序,要載入的外部程序可以儲存在SD卡,用LOAD命令加載在RAM, 讓后跳到程序起始處執行,這樣就把控制權交給加載的程序,程序執行完畢后把控制權再交回給主控程序,這樣就做成了51的DOS,由于現代有了大容量非易失存儲器SD卡的加持,也許會有新的用途。
回復

使用道具 舉報

ID:73992 發表于 2022-10-10 22:47 | 顯示全部樓層
dalaoshi 發表于 2022-10-10 16:22
這是能夠實現的,你先寫一個基本操作程序,里面包含很多基本要用到的功能,比如TIME,COM, PRINT, VOLT,  ...

外部程序要想執行,先要把程序加載到ram。但是51 系統指令只在rom中,ram中的只被當成數據。除非外部掛載普林斯頓體系存儲器。樓上說有執行ram中指令的方法,我先看看官方手冊
回復

使用道具 舉報

ID:384109 發表于 2022-10-10 23:04 | 顯示全部樓層
樓主沒明白24樓的意思,應該是外掛一個RAM,用來存程序和執行程序,只是把一般外接的ROM改成了RAM
回復

使用道具 舉報

ID:1047240 發表于 2022-10-11 00:59 | 顯示全部樓層
Y_G_G 發表于 2022-10-8 11:44
C我會,匯編我也會,精通算不上,至少算是已經入門了
但為什么我看不懂樓主的問題

新手剛入駐求教,我看樓主的意思是不從內存取從別的地方取吧,反通常操作再問行不行得通吧。
本來要學單片編程的我學了C++,歪了一陣風中凌亂嘻嘻嘻....
今天才知道單片的編程不能硬套電腦編程,有些是不通用的。但是分清楚了就較簡單了信心滿滿再補一波單片編程
回復

使用道具 舉報

ID:584814 發表于 2022-10-11 08:22 | 顯示全部樓層
“在51單片機片內取指令,無法從內存中讀取,只能從程序存儲器中讀取!
這個問題很好,但是看不懂
單片機指令不是編譯后一次寫入么 ?編好的程序如何放在內存 ?而且還可以放在程序存儲器 ?
回復

使用道具 舉報

ID:86450 發表于 2022-10-11 08:48 | 顯示全部樓層
Y_G_G 發表于 2022-10-10 08:16
你只怕是對RAM有什么誤解吧
我不是計算機專業的,只能解讀51的RAM
51的RAM是易失的,掉電就沒了了,"任何R ...

是不是 跑個虛擬機,然后就能實現 運行RAM指令了。 不知道這么理解對不對?
回復

使用道具 舉報

ID:86450 發表于 2022-10-11 08:53 | 顯示全部樓層
dalaoshi 發表于 2022-10-10 16:22
這是能夠實現的,你先寫一個基本操作程序,里面包含很多基本要用到的功能,比如TIME,COM, PRINT, VOLT,  ...

我也想做這個東西。
回復

使用道具 舉報

ID:86450 發表于 2022-10-11 08:55 | 顯示全部樓層
正在學習51 發表于 2022-10-11 00:59
新手剛入駐求教,我看樓主的意思是不從內存取從別的地方取吧,反通常操作再問行不行得通吧。
本來 ...

現在 單片機  可以用C++ 編程了
回復

使用道具 舉報

ID:73992 發表于 2022-10-11 09:24 來自觸屏版 | 顯示全部樓層
正在學習51 發表于 2022-10-11 00:59
新手剛入駐求教,我看樓主的意思是不從內存取從別的地方取吧,反通常操作再問行不行得通吧。
本來 ...

當鍵盤輸入一條指令,存入內存。CPU要執行這條指令,51單片機在外接RAM的時候可以做到。我們討論的是只用片內資源如何達到這個目的。并不是明知不可為而為。那樣就失去了探索的意義了
回復

使用道具 舉報

ID:401564 發表于 2022-10-11 11:50 | 顯示全部樓層
jjwangxu2008 發表于 2022-10-11 08:48
是不是 跑個虛擬機,然后就能實現 運行RAM指令了。 不知道這么理解對不對?

跑什么虛擬機
這是樓主單片機基礎知識沒學好,想當然的冒出一個想法
你說什么他都能找到一堆東西來反駁你,說得有理有據的
指令跟數據都分清
STM32把程序放在RAM中運行和他說的這個,完全是兩回事
FPGA運行方式也是把程序放到RAM中運行的,但也跟他說的不是一回事
他就是想當然的有一個想法,然后想當然的覺得這個方法是可以
再然后就是在這個"他自己覺得可以的"前提下,問人家怎么做
回復

使用道具 舉報

ID:748788 發表于 2022-10-11 15:33 | 顯示全部樓層
我理解的是,樓主想拿單片機當pc機用。坦率地說,你就死了這條心吧。計算機技術如今發展的已經很成熟了,其表現之一就是不同的技術有不同的定位
回復

使用道具 舉報

ID:155507 發表于 2022-10-11 15:53 | 顯示全部樓層
你可以試試這個
PAULMON 調試器
1.jpg

PAULMON 使用 8051 中的內置 UART 來與用戶溝通。通常,PC 計算機與終端程序、8051 匯編器一起使用
PM001.jpg

PAULMON 也旨在與 RAM 一起使用,并且 RAM 開頭的默認位置是 2000(十六進制),在 EPROM 之后,雖然是 RAM
可以在 2000 - FFFF 范圍內的任何地方使用。到 RAM 的讀使能信號應該是 RD 和 PSEN 信號的邏輯或,以便讀取
嘗試外部代碼存儲器或程序存儲器空格將從 RAM 中讀取。 (使用與門做這些信號的邏輯或,因為它們
低電平有效。╋@然的寫使能 RAM 應連接到 8051 的 WR 引腳。

以這種方式連接 RAM 將允許在 PAULMON 中下載命令來編寫你的程序進入 RAM (寫入外部數據存儲器
空間)。然后你可以運行你的程序,因為從外部程序存儲空間讀取嘗試 將從 RAM 芯片中讀取。






PJRC.zip

3.4 MB, 下載次數: 4

回復

使用道具 舉報

ID:73992 發表于 2022-10-13 00:26 來自觸屏版 | 顯示全部樓層
wwh2382 發表于 2022-10-11 15:33
我理解的是,樓主想拿單片機當pc機用。坦率地說,你就死了這條心吧。計算機技術如今發展的已經很成熟了,其 ...

我的目的的確是這樣
回復

使用道具 舉報

ID:88256 發表于 2022-10-13 01:19 | 顯示全部樓層
lyonkon 發表于 2022-10-9 23:07
外置RAM當ROM用,應該是可以做到。就是分享程序缺乏通用性。我考慮過用自身端口,模擬外置程序存儲器,但 ...

還以為樓主有了這個想法,就能理解我的說法,沒想到還是不懂。
不明白為什么會說缺乏通用性?6264外加小電池并稍作處理,做個小電路板,就能代替2764使用,存儲器的座子用鎖緊座代替,該電路板插在外擴RAM上可讀寫,插在外擴ROM上并將EA置零可運行程序。
嫌麻煩的,用地址區分,比如4000H開始的地址分配給它,用雙刀雙擲開關進行切換,一樣可以讀寫以及運行程序,至于具體的,因為長久沒接觸,倒是忘了,但是絕對可行。
回復

使用道具 舉報

ID:88256 發表于 2022-10-13 01:39 | 顯示全部樓層
lyonkon 發表于 2022-10-13 00:26
我的目的的確是這樣

以前的武漢尚吉電子曾經出品過SCB-II-51或者說是SCB-2-51的單片單板機,你或許要的就是這種。
我那時從電子報中縫廣告看到有學習單片機的書籍然后郵購,從此才對單片機感興趣并學習的,實際上那上下兩冊的書籍就是該單片單板機的說明書,但是解說的很詳細,并附有詳細完整的程序,反正我那時就是靠著該書,沒有老師沒有同好交流,一個人自學單片機的,最后還組裝了一套該單片單板機。
回復

使用道具 舉報

ID:73992 發表于 2022-10-13 08:21 來自觸屏版 | 顯示全部樓層
hhdsdy 發表于 2022-10-13 01:19
還以為樓主有了這個想法,就能理解我的說法,沒想到還是不懂。
不明白為什么會說缺乏通用性?6264外加小 ...

你看到35樓的設計,你就會改變想法了。你說的思路是將RAM芯片加電池當ROM用。
回復

使用道具 舉報

ID:73992 發表于 2022-10-13 08:37 來自觸屏版 | 顯示全部樓層
angmall 發表于 2022-10-11 15:53
你可以試試這個
PAULMON 調試器


老哥時序玩的溜啊!我的設計是將p2.7引腳和red引腳接一個與門到RAM oe端。讀寫數據的時候,p2.7為高電平(地址最高位)。執行RAM中指令時,p2.7為低電平。缺點是數據地址,與指令地址是兩套地址,容易記不住。我覺得你的設計更符合時序,用起來也省心。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产中文字幕网 | a级毛片毛片免费观看久潮喷 | 亚洲国产精品va在线看黑人 | 日日日操 | 二区亚洲 | 国产剧情一区 | 中国美女av | 一区二区三区视频在线观看 | 香蕉二区| www.嫩草| 中文字幕国产视频 | 中文字幕在线中文 | 日韩三区在线 | 国产一级视频 | 一区二区三区日韩 | 偷拍自拍在线观看 | 91av精品 | 五月花丁香婷婷 | 91在线观看| 久久一日本道色综合久久 | 99久久久国产精品 | 欧美日韩中文在线观看 | 国产 亚洲 网红 主播 | 亚洲欧美中文日韩在线v日本 | 欧美国产视频 | 欧美黑人体内she精在线观看 | 亚洲狠狠丁香婷婷综合久久久 | 亚洲国产高清高潮精品美女 | 一级黄a视频 | 女朋友的闺蜜3韩国三级 | 免费一级毛片 | 中文字幕在线视频一区二区三区 | 日韩av免费在线观看 | 国产网站在线播放 | 91极品视频 | 精品免费视频一区二区 | 国产精品一区在线观看 | 日韩电影中文字幕 | 久久成人高清视频 | 日本精品一区二区三区视频 | 不卡的av电影 |