现在的51单片机通常带512字节RAM,包含8052兼容的256字节RAM和挂在外部总线上的256字节SRAM,后面的这256字节用Xdata指定,用MOVX访问,现在的情况是应用如果需要300个字节的数组,如何直接定义呢?请教大家有没有好的办法。
如果小于或等于256字节,那好办,直接定义成unsigned char xdata DataBuff[256];现在大于256字节后,就要用两个空间,访问的指令都不一样,能想到的是将300个字节定义成2部分,1部分256,1部分余下的40多字节,然后封装成统一的寻址接口,有些麻烦,唉,这51架构,内存有好几种,不象AVR,512字节的芯片,开个300多字节的数组很简单。
呵呵,不要跟我讲选RAM容量大的51,我也知道有总容量为768字节的芯片,但价格不一样,大路货,竞争激烈,能省则省。先谢谢各位看官! |