第一次做稍微大点的程序,知道变量按照data idata xdata原则分配,用了W78E058的单片机 keil 里的说明文件是这样的8051 based CMOS controller with 12T architecture speed up to 40MHz,36 I/O lines, 3 Timers/Counters, 8 Interrupts/2 priority levels,
Multiple-Time Programmable, Extra I/O Port, INT2, INT3
32k FLASH EPROM (Application), 512 Bytes on-chip RAM
4k FLASH EPROM (Loader)
这里说RAM:
找到变量定义说明是这样的:
data是在 0 到 127 之间的一个数据存储器地址,或者在 128 .. 255 范围内的一个特殊功能寄存器(SFR)地址。
idata是 0 to 255 范围内的一个 idata 存储器地址。
xdata 是 0 to 65535 范围内的一个 xdata 存储器地址。
问题1:
在实际运用中发现一个变量我定义为IDATA 程序运行时,如果给片子的中断很快,单片机会自动复位。
如果我定义为data则没有这个问题
问题2:
还有一个变量定义为XDATA 而这个变量保存的数据要显示在128*64LCD上时,会出现显示错误的情况。
硬件电路是连接正确的,用了62256做外部RAM拓展
变量定义为XDATA 后,KEIL是不是会自动处理,需要在KEIL的选项设置么,具体我这个情况(W78E058的单片机和62256)该怎么设置?
问题3:
62256有一个铁电供电,我发现有几个特定的数据会存储错误,关掉电源,再开启的话会乱掉,不知道是什么原因
在论坛看到许多热心的人,所以一些不懂的问题想找到一些答案,或者说是思路
请大家帮助下,不胜感激!!!
|