关于单片机RAM的问题,定义大数组导致程序不好使,STC52单片机

程序好使,我要定义一个数组来读取从串口缓存来的数据,
#define Buf_Max 200 //缓存长度200
unsigned char Rec_Buf[Buf_Max]; //定义缓存数组
这样,成品程序在仿真好使,在实物里就不好使,应用操作混乱
我把改之前的程序单独加数组也是这个现象,
编译的时候加数组要选第二种或者第三种

编译通过了实物也不好使,我的52单片机是有512byte的字节啊,怎么会不够呢,应该怎么设置啊,急!!!

52单片机用户可以使用的RAM最大从08H~FFH,也就是说只有248Byte,如果使用STC单片机,有些有内部扩展RAM,如果打开的话,你的程序是没有问题的,不过得定义成XDATA,普通的52是不行的。追问

怎么打开这个内部扩展RAM啊?

追答

比如STC12C5A60S2

ANL AUXR,#0FDH ;内部RAM可以访问
也就是说AUXR寄存器的D2位清0即可。

追问

起想买个stc的58单片机,有1.2k的RAM是不是就没压力了,编译怎么编译啊

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-11
你看看stc的数据手册 上面有告诉怎么使用扩展的内部ram的追问

嗯,找到了,在定义前加xdata就好了

第2个回答  2013-09-11
5643
2.12
656548645123.4532
相似回答