You are on page 1of 2

#include <mega8.

h>
#include <delay.h>
// Alphanumeric LCD Module functions
#include <alcd.h>

// Declare your global variables here


void adc_init(void)
{

ADCSRA |= (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Set ADC prescalar to
128 - 125KHz sample rate @ 16MHz

ADMUX |= (1 << REFS0); // Set ADC reference to AVCC


//ADMUX |= (1 << ADLAR); // Left adjust ADC result to allow easy 8 bit reading

// No MUX values needed to be changed to use ADC0

//ADCSRA |= (1 << ADFR); // Set ADC to Free-Running Mode


ADCSRA |= (1 << ADEN); // Enable ADC
ADCSRA |= (1 << ADSC); // Start A2D Conversions
}

unsigned int read_adc(unsigned char ch)


{

ADMUX &= 0xF8; // clear bottom 3 bits


ADMUX |= ch; // then set bottom 3 bits to channel n
ADCSRA |= (1 << ADSC); // Start A2D Conversions
while ((ADCSRA & 0x10)==0);

return(ADCW);
}

void main(void)
{

PORTB=0x00;
DDRB=0x01;

PORTC=0x00;
DDRC=0x00;

PORTD=0x00;
DDRD=0x00;

lcd_init(16);
adc_init();
while (1)
{
t=read_adc(4)/10.2;
r=serial_read(0,1);
lcd_gotoxy(0,0);
lcd_puts("temperature", t);
if (t>r)
{
PORTD.0=1;
}
PORTD.0=0;

}
}

You might also like