Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <mega8.h>
- #include <delay.h>
- #include <alcd.h>
- #include <LM35.h>
- #define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR))
- float celcius; char bf[20];
- // Read the AD conversion result
- unsigned int read_adc(unsigned char adc_input)
- {
- ADMUX=adc_input | ADC_VREF_TYPE;
- // Delay needed for the stabilization of the ADC input voltage
- delay_us(10);
- // Start the AD conversion
- ADCSRA|=(1<<ADSC);
- // Wait for the AD conversion to complete
- while ((ADCSRA & (1<<ADIF))==0);
- ADCSRA|=(1<<ADIF);
- return ADCW;
- }
- void main(void)
- {
- //DDRB = 0xff;
- //DDRD |= (1<<PORTD.7);
- // ADC initialization
- // ADC Clock frequency: 125,000 kHz
- // ADC Voltage Reference: AVCC pin
- ADMUX=ADC_VREF_TYPE;
- ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (0<<ADPS1) | (1<<ADPS0);
- SFIOR=(0<<ACME);
- // Alphanumeric LCD initialization
- // Connections are specified in the
- // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
- // RS - PORTB Bit 0
- // RD - PORTB Bit 1
- // EN - PORTB Bit 2
- // D4 - PORTB Bit 3
- // D5 - PORTB Bit 4
- // D6 - PORTB Bit 5
- // D7 - PORTD Bit 7
- // Characters/line: 16
- lcd_init(16);
- while (1)
- {
- celcius=LM35_C(0);
- ftoa(celcius,1,bf);
- lcd_puts("Temp = ");
- lcd_gotoxy(0,1);
- lcd_puts(bf);
- lcd_gotoxy(5,1);
- lcd_putchar('C');
- delay_ms(500);
- lcd_clear();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment