Символьный LCD дисплей 16x2 широко используется радиолюбителями в своих проектах для вывода различного рода информации. Про то как подключить lcd дисплей к Arduino уже было сказано. Теперь давайте попробуем подключить тот же самый дисплей к микроконтроллеру AVR Atmega32. Ниже приведены 2 схемы подключения дисплея к микроконтроллеру Atmega32 по шине в 8 бит и 4 бит.
#ifndef F_CPU
#define F_CPU 16000000UL // 16 MHz clock speed
#endif
#define D0 eS_PORTD0
#define D1 eS_PORTD1
#define D2 eS_PORTD2
#define D3 eS_PORTD3
#define D4 eS_PORTD4
#define D5 eS_PORTD5
#define D6 eS_PORTD6
#define D7 eS_PORTD7
#define RS eS_PORTC6
#define EN eS_PORTC7
#include <avr/io.h>
#include <util/delay.h>
#include "lcd.h" //Can be download from the bottom of this article
int main(void)
{
DDRD = 0xFF;
DDRC = 0xFF;
int i;
Lcd8_Init();
while(1)
{
Lcd8_Set_Cursor(1,1);
Lcd8_Write_String("electroSome LCD Hello World");
for(i=0;i<15;i++)
{
_delay_ms(500);
Lcd8_Shift_Left();
}
for(i=0;i<15;i++)
{
_delay_ms(500);
Lcd8_Shift_Right();
}
Lcd8_Clear();
Lcd8_Write_Char('e');
Lcd8_Write_Char('S');
_delay_ms(2000);
}
}
#ifndef F_CPU
#define F_CPU 16000000UL // 16 MHz clock speed
#endif
#define D4 eS_PORTD4
#define D5 eS_PORTD5
#define D6 eS_PORTD6
#define D7 eS_PORTD7
#define RS eS_PORTC6
#define EN eS_PORTC7
#include <avr/io.h>
#include <util/delay.h>
#include "lcd.h" //Can be download from the bottom of this article
int main(void)
{
DDRD = 0xFF;
DDRC = 0xFF;
int i;
Lcd4_Init();
while(1)
{
Lcd4_Set_Cursor(1,1);
Lcd4_Write_String("electroSome LCD Hello World");
for(i=0;i<15;i++)
{
_delay_ms(500);
Lcd4_Shift_Left();
}
for(i=0;i<15;i++)
{
_delay_ms(500);
Lcd4_Shift_Right();
}
Lcd4_Clear();
Lcd4_Set_Cursor(2,1);
Lcd4_Write_Char('e');
Lcd4_Write_Char('S');
_delay_ms(2000);
}
}
Для передачи данных используется шина в 8 бит в первом случае и 4 бита во втором. Для работы с символьным lcd16x2 дисплеем нам понадобится специальная библиотека lcd.h которую необходимо импортировать в проект. В данной библиотеке есть специальные функции которые упрощают работу с дисплеем.
Исходные файлы проектов в среде Atmel Studio и библиотека lcd.h для работы с символьным дисплеем.