痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 13389|回復: 59

求助 89s52 記憶體不夠用!!

  [複製鏈接]
發表於 2012-4-30 00:45:18 | 顯示全部樓層 |閱讀模式
請問 89S52 記憶體只有8K 可是我現在因為程式亂亂寫 居然已經超出了,請問,相容的IC 哪裡有賣? 好像是STC89C53... 40pin DIL (有一家賣10顆1200元太貴了..)
發表於 2012-4-30 00:50:39 | 顯示全部樓層
修改一下程式, C 如果寫的不太好, 肥大是正常的
發表於 2012-4-30 11:57:29 | 顯示全部樓層
本帖最後由 legion 於 2012-4-30 02:58 PM 編輯

STC89C52只有8K而已,不過一般8K的記憶體大概可以寫2000多行的組合語言了
這也是為什麼不太想用C的主要原因
可以參考一下,STC89C54-16K,STC89C58-32K,STC89C516-64K
都是可以參考的型號
發表於 2012-4-30 14:01:03 | 顯示全部樓層
如果不限定燒錄方法的話:
AT89C55(20K) x2 $150 - 沒屋頂拍賣編號 21012092535897
W78E516DDG(64k) @70 - 沒屋頂拍賣編號 21107195037523
發表於 2012-4-30 14:17:26 | 顯示全部樓層
樓主說的應該是flash rom 吧,
記憶體應該是sram吧!
不知道有沒有錯?
還請各位先進指教啊!

另外,我記得stc90c516rd+有到63k flash rom,
樓主可以參考看看!
 樓主| 發表於 2012-4-30 18:16:05 | 顯示全部樓層
legion 發表於 2012-4-30 11:57 AM static/image/common/back.gif
STC89C52只有8K而已,不過一般8K的記憶體大概可以寫2000多行的組合語言了
這也是為什麼不太想用C的主要原因
...

legion大:
    因為要把 家訓放在銀幕上顯示我以 自型數量比較多
/*呂家家訓:
不做保 不借錢 不捐錢 不接觸政治
要努力 要積極 要助人 要樂觀 */
加上 星期一~日 現在溫度 時間 日期 ... 所以耗掉不少,目前編碼已經 8466了!! 我以要用 12K才夠用!!
 樓主| 發表於 2012-4-30 18:17:39 | 顯示全部樓層
oldhan 發表於 2012-4-30 02:01 PM static/image/common/back.gif
如果不限定燒錄方法的話:
AT89C55(20K) x2 $150 - 沒屋頂拍賣編號 21012092535897
W78E516DDG(64k) @70 -  ...

OLDHAN大:
  感謝您!!   AT89S52 10個才 270,不知道有沒有便宜一點的賣加!!
 樓主| 發表於 2012-4-30 18:18:24 | 顯示全部樓層
fatzeros 發表於 2012-4-30 02:17 PM static/image/common/back.gif
樓主說的應該是flash rom 吧,
記憶體應該是sram吧!
不知道有沒有錯?

FATZERO大:
    價錢是否為天價!!
發表於 2012-4-30 18:35:16 | 顯示全部樓層
字型碼位什麼不用擴充記憶體呢?
這樣外部擴充!!應該可以到32K吧
發表於 2012-4-30 18:40:35 | 顯示全部樓層
恭喜你,表示時間到了,到了該提升功力的時刻 ... :sam31
C是很方便,但是佔記憶體,現在是開始學習Asm和修整C語法的時刻 ... 歡迎加入苦命人行列 ... :sam38
 樓主| 發表於 2012-4-30 21:34:00 | 顯示全部樓層
macliu 發表於 2012-4-30 06:35 PM static/image/common/back.gif
字型碼位什麼不用擴充記憶體呢?
這樣外部擴充!!應該可以到32K吧

MACLIU大:
   剛剛有想到一種解法是使用 24C16,但是我還沒學到這裡...或許要回頭去練習實驗板的程式,再回來寫"家訓"了!!
 樓主| 發表於 2012-4-30 21:42:57 | 顯示全部樓層
scottwang 發表於 2012-4-30 06:40 PM static/image/common/back.gif
恭喜你,表示時間到了,到了該提升功力的時刻 ...
C是很方便,但是佔記憶體,現在是開始學習Asm和修整C ...

scottwang大:
   別折磨我了!! 這幾天都在 整理"內務"(木工已經告一段落) ,晚上休息時間看一下 VISUAL BASIC(被你害的啦!) ,才翻了 1/3 而已,你又要我學習 ASM ... 太累了! 嘻!! 當初你和 LEGION大 被打鴨子上架(強迫學習)現在頭髮提早"白",要我陪你"白",哈哈哈!! 學ASM !!謝謝再連絡!! 去年我就在 學日語和學 C做抉擇,後來想想 學日文要一直學下去,太辛苦了!! 學C 只要會做一些玩具"唬唬人"自爽一下就可以了...我決定 要不是加大MCU容量,要不就把"家訓" 少幾字或是 字縮小... 應該可以過關吧!!
發表於 2012-4-30 21:50:08 | 顯示全部樓層
哈!!!24C16~~是用I2C架構!!
在89C52上本身沒有I2C的I/O
要自己定義與宣告

但擴充記憶體!好像就有一堆電路可以抄
發表於 2012-4-30 22:16:01 | 顯示全部樓層
antlu 發表於 2012-4-30 09:42 PM static/image/common/back.gif
scottwang大:
   別折磨我了!! 這幾天都在 整理"內務"(木工已經告一段落) ,晚上休息時間看一下 VISUAL BA ...

改用 MSP430 Launchpad?
16K FLASH/512BYTES RAM
只賣4.3美金.
含燒錄器喔。

http://e2e.ti.com/group/msp430launchpad/w/default.aspx
發表於 2012-4-30 22:37:16 | 顯示全部樓層
玩單晶片?組合語言真是好選擇,好懷念古早的 MCS-51、Microchip PIC、HOLTEK HT48。
 樓主| 發表於 2012-4-30 23:05:16 | 顯示全部樓層
逃兵 發表於 2012-4-30 10:16 PM static/image/common/back.gif
改用 MSP430 Launchpad?
16K FLASH/512BYTES RAM
只賣4.3美金.

逃兵大:
    這對我有困難!! 因為我用C寫的 最少需要3個PORT ... 8952都剛開始而已,不感想其他的MCU... 感謝!!
發表於 2012-4-30 23:21:35 | 顯示全部樓層
antlu 發表於 2012-4-30 11:05 PM static/image/common/back.gif
逃兵大:
    這對我有困難!! 因為我用C寫的 最少需要3個PORT ... 8952都剛開始而已,不感想其他的MCU...  ...

3PORT?
接3顆 74595就好了. 一切好辦。
發表於 2012-5-1 00:40:47 | 顯示全部樓層
antlu 發表於 2012-4-30 06:16 PM static/image/common/back.gif
legion大:
    因為要把 家訓放在銀幕上顯示我以 自型數量比較多
/*呂家家訓:

照理說程式應該不會這麼肥大才對,
中文字型以24*24來算,1個字也才占用72 byte,
以令家訓算來,不同的字也才19字,加上空格共算20字好了,
家訓字形部分占用1440 byte,字型部分應該不是造成程式肥大的主因。

發表於 2012-5-1 07:28:14 | 顯示全部樓層
除了字型外,可能在不知不覺中......很順手的宣告了一些變數、多了幾個function,程式變肥了?
判斷的if...else...多了好多好多,又會不知覺變肥了,有的compiler可以優化,就還不至於太誇張,但是有的比較差,可能就無法降低程式大小。
發表於 2012-5-1 09:21:07 | 顯示全部樓層
antlu 發表於 2012-4-30 06:18 PM static/image/common/back.gif
FATZERO大:
    價錢是否為天價!!

我記得,陳x電子,我買的時候一顆只要50新台幣,
給阿乾兄參考,
如果需要的話,我可以提供一顆給你玩玩!
我手頭上還有3顆閒置的!
 樓主| 發表於 2012-5-1 09:57:58 | 顯示全部樓層
ysc 發表於 2012-5-1 12:40 AM static/image/common/back.gif
照理說程式應該不會這麼肥大才對,
中文字型以24*24來算,1個字也才占用72 byte,
以令家訓算來,不同的 ...

YSC大:
    原先已經 7058 BYTE了 一把22個中文字 16*16加上去就變成 8466 BYTE 後來把3個沒有被 CALL的警告去掉之後 剩下 8386 BYTE ,而程式都還沒加上去呢!! 的確是程式肥大沒錯!! 這就是 DOS 和 WINDOWS 的差別吧!! 一比就多了4個英文字!!
 樓主| 發表於 2012-5-1 10:55:26 | 顯示全部樓層
s10274chen 發表於 2012-5-1 07:28 AM static/image/common/back.gif
除了字型外,可能在不知不覺中......很順手的宣告了一些變數、多了幾個function,程式變肥了?
判斷的if... ...

s10274chen大:
    上次在寫程式的時候 慣用 sprintf 指令,發現不得了,一次就多了 1000 byte 於是硬起頭皮改寫!! 才把它硬是壓到 7058 BYTE!!  不知道 C裡面哪些比較容易變"胖",好"迴避"他!! 要不然 MCU一直要用大尺寸,成本也會增加!! 其實我這一個 溫度計時鐘 的構想是來自 對岸的萬年曆+陰曆+生肖 後來發現他用的 MCU 不一樣,我猜想一定是 記憶容量過大的原因,所以才做了一些"調整"...
 樓主| 發表於 2012-5-1 10:58:04 | 顯示全部樓層
fatzeros 發表於 2012-5-1 09:21 AM static/image/common/back.gif
我記得,陳x電子,我買的時候一顆只要50新台幣,
給阿乾兄參考,
如果需要的話,我可以提供一顆給你玩玩 ...

FATZERO大:
    感謝!! 我到陳生電子去看看,或許還有其他可買也說不定!! 你留著好了,哪天你也需要"家訓"之類的用途!!
 樓主| 發表於 2012-5-1 11:00:47 | 顯示全部樓層
逃兵 發表於 2012-4-30 11:21 PM static/image/common/back.gif
3PORT?
接3顆 74595就好了. 一切好辦。

逃兵大:
   不好意思!! 74595 我已經買了! 但是玩具還沒"做""學"到那裡!! 之前回收場買了 10個大型 5*7點矩陣的LED 還供在那裡!!
發表於 2012-5-1 11:19:40 | 顯示全部樓層
本帖最後由 ysc 於 2012-5-1 11:22 AM 編輯
antlu 發表於 2012-5-1 09:57 AM static/image/common/back.gif
YSC大:
    原先已經 7058 BYTE了 一把22個中文字 16*16加上去就變成 8466 BYTE 後來把3個沒有被 CALL的 ...


如果不含字型光程式就已7058 Byte,那程式真的是太肥大了,
這部分以組合語言來寫,1K Byte一定寫得起來。

用Dos與Windows來比喻似乎不太洽當喔,Dos時代也有很多種高階語言,
Windows之下也可以用組合語言寫程式,這兩者跟語言種類沒有絕對關係。

晉級組合語言吧!將組合語言搞懂了,配合C的便利性,兩者各取長處互補利用,
阿乾大的功力必將無人能及......
8051系列組合語言算是很好學習的了,指令、CPU核心都還算簡單,市面上能找
得到的資料也算豐富。

不是說C不好,而是一些需要細微控制的地方,總是不及組合語言的直接有效,
有種隔靴搔癢的感覺,程式肥大還可以克服,加大程式記憶體就可解決,但指令
執行效率卻是無解啊.......

發表於 2012-5-1 11:31:24 | 顯示全部樓層
antlu 發表於 2012-5-1 10:55 AM static/image/common/back.gif
s10274chen大:
    上次在寫程式的時候 慣用 sprintf 指令,發現不得了,一次就多了 1000 byte 於是硬起頭 ...

阿乾大,我的功力還很淺,不太清楚有那些函數會影響,沒去實驗過,是有發現,有些功能,如果不太需要人家寫好的那麼複雜,變成自己兜驅動程式,只是比較陽春,而且除錯上會花很大功夫。
如果不用sprintf,乾脆自己兜一個function去實現,不知道能不能稍微控制程式大小。
發表於 2012-5-1 12:33:37 | 顯示全部樓層
antlu 發表於 2012-4-30 11:05 PM static/image/common/back.gif
逃兵大:
    這對我有困難!! 因為我用C寫的 最少需要3個PORT ... 8952都剛開始而已,不感想其他的MCU...  ...

我也覺得不要想其它mcu,來寫fpga吧。
 樓主| 發表於 2012-5-1 12:58:59 | 顯示全部樓層
s10274chen 發表於 2012-5-1 11:31 AM static/image/common/back.gif
阿乾大,我的功力還很淺,不太清楚有那些函數會影響,沒去實驗過,是有發現,有些功能,如果不太需要人家 ...

s10274chen大:
   我已經把 SPRINTF 幹掉了 才有現在的狀況!! 您太客氣了! 我會 REVIEW 程式,看看還有哪些"肥肉"可以減,比較擔心減到"肌肉"還不自知!!
 樓主| 發表於 2012-5-1 13:31:49 | 顯示全部樓層
ysc 發表於 2012-5-1 11:19 AM static/image/common/back.gif
如果不含字型光程式就已7058 Byte,那程式真的是太肥大了,
這部分以組合語言來寫,1K Byte一定寫得起來 ...

YSC大:
     因為 LCM 240128 圖形模式(沒有中文字庫),所以家訓還沒加上前  水平段 [2][40] 垂直 [2][30] 點[2][16] 數字 [13][16] 中文[16][32] 就已經不少了...(892)  晉級 組合語言 由奢入儉 難啊!!
 樓主| 發表於 2012-5-1 13:32:21 | 顯示全部樓層
bitboc 發表於 2012-5-1 12:33 PM static/image/common/back.gif
我也覺得不要想其它mcu,來寫fpga吧。

沒聽過這玩意阿!!
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-12-24 08:57 AM , Processed in 0.089601 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.