Символьный 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 для работы с символьным дисплеем.