C51单片机 如何用xdata 定义整形数组
发布网友
发布时间:2022-05-15 23:28
我来回答
共2个回答
热心网友
时间:2024-02-29 02:38
直接定义即可:
xdata int table[20];
操作也像正常的数组一样操作。
默认的话,编译器会把地址安排在外部0x0000开始的地址,即汇编里的dptr=0x0000的地址。如果此时你外部没有存储器硬件的话,程序也能编译过,但最后的现像就是能写,但读出来都是随机值 或者全0。除此,使用指针操作外部存储器时,也不要和你已经分配的这一段地址重合。
热心网友
时间:2024-02-29 02:39
按照你的描述,建议方法如下:
1)修改现有电路,增加外部RAM器件(最常用的如62C64(8kRAM)、62C256(32KRAM)等)和相应的驱动电路。
2)更改单片机型号,选择内部集成有扩展RAM的单片机(如STC的增强型51单片机,一般集成的外部扩展RAM有256字节~4K字节)。这个方案是我强烈推荐的,他的好处是只要选择一块封装一样、PIN对pin兼容的,软、硬件几乎不用更改,就可以达成目的。
做到上述以后,就可以按你的意思直接定义你想定义的数组了。剩余的xdata空间还可以用于它途。