可以用STC12C5A60S2来替代AT89C51, 40PIN管脚一对一兼容, 指令兼容, 片内带1K XRAM. 不需要Keil设置xram, 注意软件设置XRAM开关, 就能用xram了. |
对不起楼主,是我孤陋寡闻,刚刚查资料才知道stc15w的片内ram居然多达2k,可以用movx 指令来读写这2k片内ram |
楼主可能还没搞懂ram和程序rom之间的关系,还是多学习吧 |
戡拤 发表于 2023-8-3 11:58 这跟你设置成什么芯片有一毛钱的关系吗? |
不需要设置。程序默认都有最大ram但是你用就不能超芯片范围 |
我知道了,我之前试过,在keil中我选择AT89C51,然后我设置了一个查表数组是这样的u8 xdata Arry[256]{},编译的时候没有报错,但是烧录进芯片后就出了问题。所以结论是,keil中,它只管编译有没有报错,不管实际中芯片RAM的大小 |
戡拤 发表于 2023-8-3 08:19 这是你选错了芯片造成的吗? |
a825563619 发表于 2023-8-3 09:36 是的,我就是这样做的,但我不知道编译是以“AT89C51”128Byte判断,还是实际烧录的芯片 |
戡拤 发表于 2023-8-3 08:19 可以用code把数组放入flash空间,就不占ram空间了 |
Hephaestus 发表于 2023-8-2 22:55 我之前设置了了一个数组查表,结果编译没有错误,烧录进芯片中就出问题了,发现是数组占用了所有ram空间 |
RAM只能这样设置吗?能不能像汇编一样在程序中设置好? |
如果你没有专用的仿真器,只是凭借烧录后的运行结果来判断程序写的对不对,那么这里是可以瞎填的,不需要正确设置,能不能合理的利用全部RAM,完全是凭借你的软件写的是否正确,这里的设置完全没有意义。 |
长数组用idata或xdata |
装STC的包,不要用这个包 |