btvn4 (1)
btvn4 (1)
h>
#include <util/delay.h>
#include <stdlib.h> // For converting numbers to strings
void ADC_Init();
uint16_t ADC_Read(uint8_t channel);
void LCD_Command(unsigned char cmd);
void LCD_Char(unsigned char data);
void LCD_Init();
void LCD_String(char *str);
int main(void) {
uint16_t adc_value;
float temperature;
char temp_str[10];
void ADC_Init() {
ADMUX = (1 << REFS0); // Reference voltage = AVcc
ADCSRA = (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1); // Enable ADC, prescaler = 64
}
_delay_us(200);
LCD_PORT = (LCD_PORT & 0x0F) | (cmd << 4); // Send lower nibble
LCD_PORT |= (1 << EN); // Enable pulse
_delay_us(1);
LCD_PORT &= ~(1 << EN);
_delay_ms(2);
}
_delay_us(200);
LCD_PORT = (LCD_PORT & 0x0F) | (data << 4); // Send lower nibble
LCD_PORT |= (1 << EN); // Enable pulse
_delay_us(1);
LCD_PORT &= ~(1 << EN);
_delay_ms(2);
}
void LCD_Init() {
LCD_Command(0x02); // Initialize LCD in 4-bit mode
LCD_Command(0x28); // 2 lines, 5x8 matrix
LCD_Command(0x0C); // Display on, cursor off
LCD_Command(0x06); // Increment cursor
LCD_Command(0x01); // Clear display
_delay_ms(2);
}