Thanks for ur explanation.This is the program that i write to display the temperature value in seven segment display once LM 35 sense the temperature.As a results from the source code,the seven segment only display the value 16 in seven segment display.Can i know what wrong with this source code?
#include<16f877.h>
#device adc=10
#use delay(clock=10000000)
#fuses hs, noprotect, nowdt, nolvp
#byte porta=5
#byte portb=6
#byte portd=8
int i;
int temp;
void main()
{
set_tris_d(0b00000000);
set_tris_b(0b00000000);
setup_port_a(RA0_analog);
setup_adc(adc_clock_internal);
do
{
set_adc_channel(0);
delay_ms(10);
temp=read_adc()/2;
if (temp=16)
{ portb=0b00000110;
portd=0b01111101; }
else if (temp=17)
{ portb=0b00000110;
portd=0b00000111; }
else if (temp=18)
{ portb=0b00000110;
portd=0b01111111; }
else if (temp=19)
{ portb=0b00000110;
portd=0b01101111; }
else if (temp=20)
{ portb=0b01011011;
portd=0b00111111; }
else if (temp=21)
{ portb=0b01011011;
portd=0b00000110; }
else if (temp=22)
{ portb=0b01011011;
portd=0b01011011; }
else if (temp=23)
{ portb=0b01011011;
portd=0b01001111; }
else if (temp=24)
{ portb=0b01011011;
portd=0b01100110; }
else if (temp=25)
{ portb=0b01011011;
portd=0b01101101; }
else if (temp=26)
{ portb=0b01011011;
portd=0b01111101; }
else if (temp=27)
{ portb=0b01011011;
portd=0b00000111; }
else if (temp=28)
{ portb=0b01011011;
portd=0b01111111; }
else if (temp=29)
{ portb=0b01011011;
portd=0b01101111; }
else if (temp=30)
{ portb=0b01001111;
portd=0b00111111; }
delay_ms(2000);
}while(1);
}
Bookmarks