独闷闷网

标题: 数组调用问题求助(已经解决) [打印本页]

作者: mykafw    时间: 2015-3-25 21:39
标题: 数组调用问题求助(已经解决)
本帖最后由 mykafw 于 2015-4-2 20:11 编辑

我是单片机初学者
我的问题:原来定义在CODE区的一个数组,程序运行时可以正常调用。后来这个数组元素在程序运行时需要更改,这个数组不能存储在CODE区
就去掉CODE关键字,我的程序不能正常运行。
如:
uchar code PhoneCall[]={"ATD1xxxxxxxxxx;"}; //拨打电话数组

  void phone()//拨电话
{
   Print_Str(PhoneCall,15);
   Print_Char('\r');
   ES=1;
   delay_Xms(500);
}   
void main() 主函数
{
while(!SW1);//松手检测
   {
    D1LED=1;//指示灯亮
    delay_Xms(100);
    phone();
    D1LED=0;//指示灯灭
    clear_Buff();
    delay_Xms(500);
  }
}     
这样程序能运行。指示灯亮灭变化,能拨打电话。
当去掉CODE关键字,用其它函数改变数组元素时
(即更换电话号),
主函数还是那样,程序不运行。因程序较长,
不便全贴上来,这样不知是否把问题说清楚了,
求jianghong老师或坛友帮助一下,指点迷津。
   





作者: jianhong_wu    时间: 2015-3-25 22:10
这个问题我也不清楚。感觉这类程序bug的问题还是要靠自己,别人没有在那个现场很难帮你找到bug。
作者: mykafw    时间: 2015-3-26 07:39
谢谢老师回复。
作者: mykafw    时间: 2015-4-2 20:20
芯片问题。原来用AT89S52单片机就是调不出来。更换STC89C52RC芯片,程序不用改就好了。
看来AT89S52芯片在变量的使用上还是有点限制。




欢迎光临 独闷闷网 (http://dumenmen.com/) Powered by Discuz! X3.2