找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2841|回复: 20
打印 上一主题 下一主题
收起左侧

大佬们,单片机只有8k代码写不下了怎么办啊?

  [复制链接]
跳转到指定楼层
楼主
用的stc89c52,一个上位机控制4个下位机在5个时段的温度
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:748096 发表于 2021-5-10 20:28 | 只看该作者
优化代码试试
回复

使用道具 举报

板凳
ID:155507 发表于 2021-5-10 23:20 | 只看该作者
只能用8K的单片机还是什么?  51单片机也包括很多, STC12的用法和STC89完全一样, 只是多了一些功能,最大去到64K,而且不够内存的时候可以外接储存芯片,这样下来256K都不是问题了。

回复

使用道具 举报

地板
ID:889094 发表于 2021-5-10 23:27 | 只看该作者
1个单片机控制4个单片机?那作为上位机的单片机可以用好一点的,起码flash大一点的
回复

使用道具 举报

5#
ID:858964 发表于 2021-5-10 23:57 | 只看该作者
angmall 发表于 2021-5-10 23:20
只能用8K的单片机还是什么?  51单片机也包括很多, STC12的用法和STC89完全一样, 只是多了一些功能,最大 ...

正解。赞同!
回复

使用道具 举报

6#
ID:517951 发表于 2021-5-11 01:15 | 只看该作者
看着描述的功能不复杂呀,8k应该够用的。 把字库一些用不到的字符去掉,用不到的代码优化掉,把大字库32*32的改成16*16或者更小,浮点数改成整数运算, 把温度小数点2位改1位,或者就是整数。实在不行就换容量大的单片机。
回复

使用道具 举报

7#
ID:584814 发表于 2021-5-11 08:18 | 只看该作者
STC的单片机64K的了去了价格也不高为何不用呢
如果死抱8K的单片机,只能从优化代码入手,软件硬件都不想换的话可以上淘宝。
回复

使用道具 举报

8#
ID:743654 发表于 2021-5-11 08:48 | 只看该作者
换个单片机型号,stc12c5a60完全可以替代stc89c52,容量大得多
回复

使用道具 举报

9#
ID:918790 发表于 2021-5-11 08:53 来自手机 | 只看该作者
首先,看看是不是用了什么没有用到的C库,这些库其实很占用空间。如果非要用,自己实现个简单的,能省不少地方。  其次,分别检查下都是什么功能,占用了多少容量,是否可以提炼优化下空间。  如果空间还是不够,那就换MCU吧。
回复

使用道具 举报

10#
ID:592807 发表于 2021-5-11 08:58 | 只看该作者
angmall 发表于 2021-5-10 23:20
只能用8K的单片机还是什么?  51单片机也包括很多, STC12的用法和STC89完全一样, 只是多了一些功能,最大 ...

单片机不好买。缺货
回复

使用道具 举报

11#
ID:401564 发表于 2021-5-11 13:14 | 只看该作者
个人感觉,一个人能写下大于8K代码的程序,是不应该出现这种"代码写不下怎么办?"的问题的
要么优化代码
要么换单片机
要么换汇编
回复

使用道具 举报

12#
ID:748096 发表于 2021-5-11 18:18 | 只看该作者
angmall 发表于 2021-5-10 23:20
只能用8K的单片机还是什么?  51单片机也包括很多, STC12的用法和STC89完全一样, 只是多了一些功能,最大 ...

一共16条地址总线,怎么外接到256K的?
回复

使用道具 举报

13#
ID:826403 发表于 2021-5-11 19:26 来自手机 | 只看该作者
如果死抱8K的单片机,只能从优化代码入手,软件硬件都不想换的话可以上某一个宝。
回复

使用道具 举报

14#
ID:57657 发表于 2021-5-11 21:04 | 只看该作者
沧兴电子 发表于 2021-5-11 18:18
一共16条地址总线,怎么外接到256K的?

外接存储芯片,你外接1TB的都可以。
回复

使用道具 举报

15#
ID:381220 发表于 2021-5-11 21:34 | 只看该作者
可以用大容量的单片机
回复

使用道具 举报

16#
ID:381220 发表于 2021-5-11 21:35 | 只看该作者
可以考虑选用大容量的单片机
回复

使用道具 举报

17#
ID:155507 发表于 2021-5-11 23:07 | 只看该作者
沧兴电子 发表于 2021-5-11 18:18
一共16条地址总线,怎么外接到256K的?





图14-18。 8051访问256Kx8外部NV-RAM
在某些应用程序中,我们需要大量(例如256K。字节)的内存来存储数据。 但是,由于DPTR是16位的,所以8051只能支持64K字节的外部数据存储器。 为了解决这个问题,我们将8051的AO – A15直接连接到外部存储器的AO – A15引脚,并使用某些P1引脚访问单个256Kx8内存芯片中的64K字节块。 图14-18对此进行了说明。

256Kx8 NV-RAM具有18个地址引脚(AO – Al 7)和8条数据线。 如图所示
在图14-18中,AO – A15直接进入存储芯片,而A16和A17
分别由P1.0和P1.1控制 4个的64K字节块。 还要注意,外部的芯片选择 RAM连接到8051的P1.2。

回复

使用道具 举报

18#
ID:420836 发表于 2021-5-12 07:46 | 只看该作者
如果8k闪存不够用,则简化程序代码。
回复

使用道具 举报

19#
ID:311846 发表于 2021-5-12 09:48 | 只看该作者
如果是数据多可以用外部内存
回复

使用道具 举报

20#
ID:883031 发表于 2021-5-13 17:21 | 只看该作者
stc10/11/12都有能兼容at89c52的型号
回复

使用道具 举报

21#
ID:451718 发表于 2021-5-13 17:47 | 只看该作者
控制下位机温度?  涉及到采集温度,通讯,然后控制。  如果你每路都分别用一套代码来搞,估计程序空间真是不够用。   为什么不分时复用呢?  一套程序,300ms到500ms轮询控制一路,这样你的代码会优化很多的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表