Микроконтроллеры

Подключение LCD дисплея к микроконтроллеру AVR

Символьный LCD дисплей 16x2 широко используется радиолюбителями в своих проектах для вывода различного рода информации. Про то как подключить lcd дисплей к Arduino уже было сказано. Теперь давайте попробуем подключить тот же самый дисплей к микроконтроллеру AVR Atmega32. Ниже приведены 2 схемы подключения дисплея к микроконтроллеру Atmega32 по шине в 8 бит и 4 бит. 

Схема подключения LCD 16x2 дисплея к Atmega32 по 8 проводам

 interfacing-lcd-8-bit

Код программы для 8-ми битного режима

#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);
  }
} 

Схема подключения LCD 16x2 дисплея к Atmega32

 interfacing-lcd-4-bit

Код программы для 4-х битного режима

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

Похожий проект подключения микроконтроллера Atmega32 к дисплею

Добавить комментарий


Защитный код
Обновить

Последние комментарии

Последнии темы форума

  • Нет сообщений для показа