السلام عليكم ورحمة الله وربركاته
اخوان ماهي المشكلة في هذا الكود ؟؟؟ المفروض من يصير الفولت من 2 الى 2.5 يعمل portd.f0
وعندما يكون الفولت بين 3 و 3.5 فولت يعمل portd.f1
وعندما يكون الفولت بين 4.5 و 4 فولت يعمل portd.f2
الان الفولت 0.4 وال portd.f0
يعمل
ومرات يبقى ثابت على portd.f0 مهما غيرت بالمقاومة المتغيرة
كود:
sbit LCD_RS at RB0_bit ;
sbit LCd_EN at RB1_bit ;
sbit LCD_D4 at RB2_bit ;
sbit LCD_D5 at RB3_bit ;
sbit LCD_D6 at RB4_bit ;
sbit LCD_D7 at RB5_bit ;
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;
long x=0;
char text[12];
char y=0;
void init()
{
lcd_init();
lcd_cmd(1);
lcd_cmd(12);
trisa.f0=1;
trisd=0;
portd=0x00;
}
void main()
{
init();
while(1)
{
x=adc_read(0);
x=(x*5000)>>10;
longtostr(x/1000,text);
lcd_out(1,1,"volt=");
for(y=0;y<11;y++){if(text[y]!=' ')lcd_chr_cp(text[y]);}
lcd_chr_cp(',');
longtostr(x%1000/100,text);
for(y=0;y<11;y++){if(text[y]!=' ')lcd_chr_cp(text[y]);}
if(x<500 && x>400){portd.f0=1;portd.f2=0;portd.f1=0; }
else if(x<700 && x>500){portd.f1=1; portd.f0=0;portd.f2=0; }
else if(x<900&& x>700){portd.f2=1;portd.f0=0; portd.f1=0; }
}
}
في هذه الصورة الفولت 0.4 وال portd.f0 شغال لماذا ؟؟؟