اطلاعیه

Collapse
No announcement yet.

مشکل در LCD

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در LCD

    با سلام .تو کدویژن و برنامه زیر به یه مشکل بر خوردم وقتی از هب اخری برمیگرده.با اینکه تو حلقه while تابع lcd_clear هم اوردم.اما به جای اینکه کلمه sestem normal رانشان بده بصورت چند حرف نامفهوم و بعد کلمه mal را تشان میده میشه کمکم کنید.
    این هم از برنامه
    while (1){
    fault=10;
    lcd_clear();
    lcd_putsf("Press Key(1)"
    delay_ms(10);

    if(PIND.6==0){
    //+P(Main) reading
    p=0;
    lcd_clear();
    main_possitive=adc_data[0];
    main_possitive/=400;
    //sprintf(st,"POSSITIVE:%5.2f",main_possit ive);
    //lcd_puts(st);
    //delay_ms(wait);

    //(Force line P 1)
    PORTD=0x0e;
    delay_ms(wait);
    line[p]=adc_data[0];
    line[p]=line[p]-20;
    line[p]/=400;
    //lcd_clear();
    //sprintf(st,"+LINE(1):%5.2f",line[p]);
    //lcd_puts(st);
    //delay_ms(wait);
    ++p;
    //(Force line P 2)
    //delay_ms(10);
    PORTD=0x0d;
    delay_ms(wait);
    line[p]=adc_data[0];
    line[p]=line[p]-20;
    line[p]/=400;
    //lcd_clear();
    //sprintf(st,"+LINE(2):%5.2f",line[p]);
    //lcd_puts(st);
    //delay_ms(wait);
    PORTD=0x0f;
    delay_ms(wait);
    //lcd_clear();
    // lcd_puts(" START N LINE"
    // delay_ms(300);
    ++p;
    //lcd_clear();

    //Line (-) Reading
    main_negative=adc_data[2];
    main_negative/=400;
    //sprintf(st,"NEGATIVE:%5.2f",main_negativ e);
    //lcd_puts(st);
    //delay_ms(wait);

    //(Force line N 1)
    //delay_ms(10);
    PORTD=0x0b;
    delay_ms(wait);
    line[p]=adc_data[2];
    line[p]=line[p]-20;
    line[p]/=400;
    //lcd_clear();
    //sprintf(st,"-LINE(1):%5.2f",line[p]);
    //lcd_puts(st);
    //delay_ms(300);
    ++p;

    //(Force line N 2)
    PORTD=0x07;
    delay_ms(wait);
    line[p]=adc_data[2];
    line[p]=line[p]-20;
    line[p]/=400;
    //lcd_clear();
    //sprintf(st,"-LINE(2):%5.2f",line[p]);
    //lcd_puts(st);
    //delay_ms(wait);
    PORTD=0x0f;
    //lcd_clear();


    for(p=0;p<2;p++){
    if (line[p]>main_possitive)
    fault=p;
    }
    for(p=2;p<4;p++){
    if (line[p]>main_negative)
    fault=p;
    }
    if (fault==10){
    lcd_clear();
    lcd_puts("SYSTEM NORMAL"
    delay_ms(300);
    }
    else if (fault==0){
    lcd_clear();
    lcd_puts("DC Ground"
    lcd_gotoxy(0,1);
    lcd_puts("(+)SOL 1"
    delay_ms(300);
    }
    else if (fault==1){
    lcd_clear();
    lcd_puts("DC Ground"
    lcd_gotoxy(0,1);
    lcd_puts("(+)SOL 2"
    delay_ms(300);
    }
    else if (fault==2){
    lcd_clear();
    lcd_puts("DC Ground"
    lcd_gotoxy(0,1);
    lcd_puts("(-)SOL 1"
    delay_ms(300);
    }
    else if (fault==3){
    lcd_clear();
    lcd_puts("DC Ground"
    lcd_gotoxy(0,1);
    lcd_puts("(-)SOL 2"
    delay_ms(300);
    }

    }
    }
لطفا صبر کنید...
X