أخواني الكرام لقد صممت منظم كهرباء أتوماتيك بإستخدام البك 877A ولكن هناك مشكلة لاأجد لها حل وهي أن جزء من الكود لايعمل في الواقع مع أنهُ يعمل عند محاكاة الدارة بإستخدام برنامج بروتوس ولايظهر أي مشاكل والخطئ هوَ أنني واضع أربع ليدات لبيان حالة الكهرباء وهي normal,high,low,very low ولكنها لاتعمل في الواقع وإليكم صورة للدارة والكود.
[IMG]

[/IMG]
وهذا هوَ الكود
كود:
void main()
{trisa=3;trisb=0;trisc=0;trisd=0;trise=0;portb=0;portc=0;portd=0;porte=0;
delay_ms(2000);
while(1)
{
if(adc_read(0)<225)portb=0;
else if(adc_read(0)<346)portb=128;
else if(adc_read(0)<442)portb=64;
else if(adc_read(0)<528)portb=32;
else if(adc_read(0)<604)portb=16;
else if(adc_read(0)<706)portb=8;
else if(adc_read(0)<778)portb=4;
else if(adc_read(0)<813)portb=2;
else if(adc_read(0)<850)portb=1;
else if(adc_read(0)<860)portb=0;
if(adc_read(0)<225)portc=56;
else if(adc_read(0)<346)portc=7;
else if(adc_read(0)<442)portc=125;
else if(adc_read(0)<528)portc=109;
else if(adc_read(0)<604)portc=102;
else if(adc_read(0)<706)portc=79;
else if(adc_read(0)<778)portc=91;
else if(adc_read(0)<813)portc=48;
else if(adc_read(0)<850)portc=63;
else if(adc_read(0)<860)portc=118;
if(adc_read(1)<706)portd=8; //very low
else if(adc_read(1)<778)portd=4; //low
else if(adc_read(1)<850)portd=1; //normal
else if(adc_read(1)<860)portd=2;//high
}
}