找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4120|回復(fù): 20
收起左側(cè)

大佬們,單片機(jī)只有8k代碼寫不下了怎么辦啊?

  [復(fù)制鏈接]
ID:910941 發(fā)表于 2021-5-10 09:56 | 顯示全部樓層 |閱讀模式
用的stc89c52,一個上位機(jī)控制4個下位機(jī)在5個時段的溫度
回復(fù)

使用道具 舉報(bào)

ID:748096 發(fā)表于 2021-5-10 20:28 | 顯示全部樓層
優(yōu)化代碼試試
回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 2021-5-10 23:20 | 顯示全部樓層
只能用8K的單片機(jī)還是什么?  51單片機(jī)也包括很多, STC12的用法和STC89完全一樣, 只是多了一些功能,最大去到64K,而且不夠內(nèi)存的時候可以外接儲存芯片,這樣下來256K都不是問題了。

回復(fù)

使用道具 舉報(bào)

ID:889094 發(fā)表于 2021-5-10 23:27 | 顯示全部樓層
1個單片機(jī)控制4個單片機(jī)?那作為上位機(jī)的單片機(jī)可以用好一點(diǎn)的,起碼flash大一點(diǎn)的
回復(fù)

使用道具 舉報(bào)

ID:858964 發(fā)表于 2021-5-10 23:57 | 顯示全部樓層
angmall 發(fā)表于 2021-5-10 23:20
只能用8K的單片機(jī)還是什么?  51單片機(jī)也包括很多, STC12的用法和STC89完全一樣, 只是多了一些功能,最大 ...

正解。贊同!
回復(fù)

使用道具 舉報(bào)

ID:517951 發(fā)表于 2021-5-11 01:15 | 顯示全部樓層
看著描述的功能不復(fù)雜呀,8k應(yīng)該夠用的。 把字庫一些用不到的字符去掉,用不到的代碼優(yōu)化掉,把大字庫32*32的改成16*16或者更小,浮點(diǎn)數(shù)改成整數(shù)運(yùn)算, 把溫度小數(shù)點(diǎn)2位改1位,或者就是整數(shù)。實(shí)在不行就換容量大的單片機(jī)。
回復(fù)

使用道具 舉報(bào)

ID:584814 發(fā)表于 2021-5-11 08:18 | 顯示全部樓層
STC的單片機(jī)64K的了去了價格也不高為何不用呢
如果死抱8K的單片機(jī),只能從優(yōu)化代碼入手,軟件硬件都不想換的話可以上淘寶。
回復(fù)

使用道具 舉報(bào)

ID:743654 發(fā)表于 2021-5-11 08:48 | 顯示全部樓層
換個單片機(jī)型號,stc12c5a60完全可以替代stc89c52,容量大得多
回復(fù)

使用道具 舉報(bào)

ID:918790 發(fā)表于 2021-5-11 08:53 來自手機(jī) | 顯示全部樓層
首先,看看是不是用了什么沒有用到的C庫,這些庫其實(shí)很占用空間。如果非要用,自己實(shí)現(xiàn)個簡單的,能省不少地方。  其次,分別檢查下都是什么功能,占用了多少容量,是否可以提煉優(yōu)化下空間。  如果空間還是不夠,那就換MCU吧。
回復(fù)

使用道具 舉報(bào)

ID:592807 發(fā)表于 2021-5-11 08:58 | 顯示全部樓層
angmall 發(fā)表于 2021-5-10 23:20
只能用8K的單片機(jī)還是什么?  51單片機(jī)也包括很多, STC12的用法和STC89完全一樣, 只是多了一些功能,最大 ...

單片機(jī)不好買。缺貨
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2021-5-11 13:14 | 顯示全部樓層
個人感覺,一個人能寫下大于8K代碼的程序,是不應(yīng)該出現(xiàn)這種"代碼寫不下怎么辦?"的問題的
要么優(yōu)化代碼
要么換單片機(jī)
要么換匯編
回復(fù)

使用道具 舉報(bào)

ID:748096 發(fā)表于 2021-5-11 18:18 | 顯示全部樓層
angmall 發(fā)表于 2021-5-10 23:20
只能用8K的單片機(jī)還是什么?  51單片機(jī)也包括很多, STC12的用法和STC89完全一樣, 只是多了一些功能,最大 ...

一共16條地址總線,怎么外接到256K的?
回復(fù)

使用道具 舉報(bào)

ID:826403 發(fā)表于 2021-5-11 19:26 來自手機(jī) | 顯示全部樓層
如果死抱8K的單片機(jī),只能從優(yōu)化代碼入手,軟件硬件都不想換的話可以上某一個寶。
回復(fù)

使用道具 舉報(bào)

ID:57657 發(fā)表于 2021-5-11 21:04 | 顯示全部樓層
滄興電子 發(fā)表于 2021-5-11 18:18
一共16條地址總線,怎么外接到256K的?

外接存儲芯片,你外接1TB的都可以。
回復(fù)

使用道具 舉報(bào)

ID:381220 發(fā)表于 2021-5-11 21:34 | 顯示全部樓層
可以用大容量的單片機(jī)
回復(fù)

使用道具 舉報(bào)

ID:381220 發(fā)表于 2021-5-11 21:35 | 顯示全部樓層
可以考慮選用大容量的單片機(jī)
回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 2021-5-11 23:07 | 顯示全部樓層
滄興電子 發(fā)表于 2021-5-11 18:18
一共16條地址總線,怎么外接到256K的?


080509_0834_8051datamem8.png


圖14-18。 8051訪問256Kx8外部NV-RAM
在某些應(yīng)用程序中,我們需要大量(例如256K。字節(jié))的內(nèi)存來存儲數(shù)據(jù)。 但是,由于DPTR是16位的,所以8051只能支持64K字節(jié)的外部數(shù)據(jù)存儲器。 為了解決這個問題,我們將8051的AO – A15直接連接到外部存儲器的AO – A15引腳,并使用某些P1引腳訪問單個256Kx8內(nèi)存芯片中的64K字節(jié)塊。 圖14-18對此進(jìn)行了說明。

256Kx8 NV-RAM具有18個地址引腳(AO – Al 7)和8條數(shù)據(jù)線。 如圖所示
在圖14-18中,AO – A15直接進(jìn)入存儲芯片,而A16和A17
分別由P1.0和P1.1控制 4個的64K字節(jié)塊。 還要注意,外部的芯片選擇 RAM連接到8051的P1.2。

回復(fù)

使用道具 舉報(bào)

ID:420836 發(fā)表于 2021-5-12 07:46 | 顯示全部樓層
如果8k閃存不夠用,則簡化程序代碼。
回復(fù)

使用道具 舉報(bào)

ID:311846 發(fā)表于 2021-5-12 09:48 | 顯示全部樓層
如果是數(shù)據(jù)多可以用外部內(nèi)存
回復(fù)

使用道具 舉報(bào)

ID:883031 發(fā)表于 2021-5-13 17:21 | 顯示全部樓層
stc10/11/12都有能兼容at89c52的型號
回復(fù)

使用道具 舉報(bào)

ID:451718 發(fā)表于 2021-5-13 17:47 | 顯示全部樓層
控制下位機(jī)溫度?  涉及到采集溫度,通訊,然后控制。  如果你每路都分別用一套代碼來搞,估計(jì)程序空間真是不夠用。   為什么不分時復(fù)用呢?  一套程序,300ms到500ms輪詢控制一路,這樣你的代碼會優(yōu)化很多的。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表