wuzhengmin 发表于 2025-12-30 20:05:27

重新编译就OK

缺点是现在所有的变量都在XDATA当中,显然系统速度慢了

因为使用XDATA的时候,CPU是通过总线的,理想的方式不要修改Memory Model

采样这样的办法:

方法2:
在大数组前加关键字:xdata
# include "stc8h.h"
void main(void)
{
unsigned charxdata mychar,i;
      for (i=0;i<300;i++)
      {
            mychar=i;
      }
      while(1);
}


把内存模式改回去:

wuzhengmin 发表于 2025-12-30 20:07:10

这样,编译连接也没问题:

一切都正常..............


下面我们模拟仿真一下:

wuzhengmin 发表于 2025-12-30 20:10:57

在模拟仿真里看一下,0-299放在哪里啦?

进入模拟仿真后,在Memory1窗口输入x:0

意思是显示XDATA从地址0开始的内容

wuzhengmin 发表于 2025-12-30 20:12:20

接着开始运行,运行结束后看XDATA的内容:

wuzhengmin 发表于 2025-12-30 20:13:21

当然也可以单步执行:

wuzhengmin 发表于 2025-12-30 20:16:07

XDATA一开始都是0:
单步执行后:
第一次赋值0,第二次赋值1,第三次赋值2..................

注意Memory1窗口看的是x:0

wuzhengmin 发表于 2025-12-30 20:18:26

STC8HK64U已经有8K的外部数据存储器(XDATA)

一般够用了

wuzhengmin 发表于 2025-12-30 20:22:09

下面看单片机的引脚:

好多,厉害啊,估计很难搞懂.............

wuzhengmin 发表于 2025-12-30 20:33:10

还有直插的:不用焊接

wuzhengmin 发表于 2025-12-30 20:38:56

最小系统:
页: 16 17 18 19 20 21 22 23 24 25 [26] 27 28 29 30 31 32 33 34 35
查看完整版本: 有关DMA,山东大学陈桂友教授