打印

PIC单片机的显示程序问题

[复制链接]
1406|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lading|  楼主 | 2010-4-29 15:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
主要问题是:显示150个数据还没显示完,就自动复位回主程序。请大虾解答下。是什么原因呢,我用的是手动按键复位
程序如下:
void Data_Display( float x9[], int i)
{
  float x3=0,x6;
  unsigned char x7[15];
  unsigned int k=0,j=0, x4[10];
  TRISD=0x00;//PORTD口为输出

   for(j=0; j<150;j++)
{
    k=0;
    x3=x9[j];
  if(x3>=1000&&x3<10000)//数字转换成字符为显示作准备
  {
    x4[k]=(int)x3/1000;
    x7[k]=x4[k]+'0';
    x6=x3-x4[k]*1000;
    k++;
    x4[k]=(int)x6/100;
    x7[k]=x4[k]+'0';
    x6=x6-x4[k]*100;
    k++;
    x4[k]=(int)x6/10;
    x7[k]=x4[k]+'0';
    x6=x6-x4[k]*10;
    k++;
    x4[k]=(int)x6;
    x7[k]=x4[k]+'0';
    x6=x6-x4[k];
    k++;
    x7[k]='.';
    x6=x6*100;
    x4[k]=(int)x6/10;
    x7[k+1]=x4[k]+'0';
    x6=x6-x4[k]*10;
    k++;
    x4[k]=(int)x6;
    x7[k+1]=x4[k]+'0';
    x7[k+2]='\0';
}
  
else if(x3>=100&&x3<1000)
  {
    x4[k]=(int)x3/100;
    x7[k]=x4[k]+'0';
    x6=x3-x4[k]*100;
    k++;
    x4[k]=(int)x6/10;
    x7[k]=x4[k]+'0';
    x6=x6-x4[k]*10;
    k++;
    x4[k]=(int)x6;
    x7[k]=x4[k]+'0';
    x6=x6-x4[k];
    k++;
    x7[k]='.';
    x6=x6*100;
    x4[k]=(int)x6/10;
    x7[k+1]=x4[k]+'0';
    x6=x6-x4[k]*10;
    k++;
    x4[k]=(int)x6;
    x7[k+1]=x4[k]+'0';
    x7[k+2]='\0';
}
  else if(x3>=10&&x3<100)
  {
    x4[k]=(int)x3/10;
    x7[k]=x4[k]+'0';
    x6=x3-x4[k]*10;
    k++;
    x4[k]=(int)x6;
    x7[k]=x4[k]+'0';
    x6=x6-x4[k];
    k++;
    x7[k]='.';
    x6=x6*100;
    x4[k]=(int)x6/10;
    x7[k+1]=x4[k]+'0';
    x6=x6-x4[k]*10;
    k++;
    x4[k]=(int)x6;
    x7[k+1]=x4[k]+'0';
    x7[k+2]='\0';
}
   else if (x3<10)
  {
    x4[k]=(int)x3;
    x7[k]=x4[k]+'0';
    x6=x3-x4[k];
    k++;
    x7[k]='.';
    x6=x6*100;
    x4[k]=(int)x6/10;
    x7[k+1]=x4[k]+'0';
    x6=x6-x4[k]*10;
    k++;
    x4[k]=(int)x6;
    x7[k+1]=x4[k]+'0';   
    x7[k+2]='\0';

}
   else if(x3>=10000)
{
  NOP();
}
   // LCMInit(); //LCM初始化
// LCM_Data_DIR = 0x00;

WriteCommandLCM(0x01,1);//显示清屏
  
if(i==0)
     {
       DisplayOneChar(0, 0, '-');
       for(k=0;x7[k]!='\0';k++)
         {
           DisplayOneChar(1+k, 0, x7[k]);
          }
        
         
         DisplayOneChar(k+1, 0, 'm');
         DisplayOneChar(2+k, 0,'V');
     }
  else
    {
    for(k=0;x7[k]!='\0';k++)
         {
           DisplayOneChar(k, 0 , x7[k]);
         }
            
        
         DisplayOneChar(k, 0, 'm');
         DisplayOneChar(k+1, 0,'V');   
    }  
        // Delay5Ms();
         Delay400Ms();//Delay400Ms();
  
}
}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

17

帖子

1

粉丝