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

Документация

Рассмотрим подключение самого простого символьного LCD дисплея. В общем случае он будет иметь 7 выводов:

Вывод Назначение
VSS Общий (GND)
VDD Напряжение питания
VEE Контрастность
RS Команды/Данные
RW Чтение/запись
E Импульс
D0-D7 Линии данных 0-7

VEE регулирует контрастность изображения. При замыкании вывода на землю достигается максимальная контрастность. Рекомендуется подключать к минусу через переменный резистор, чтобы можно было регулировать контрастность.

Подключим выводы RS,RW,E,D4,D5,D6,D7 LCD дисплея к выводам 0,1,2,3,4,5,6,7 одного из портов микроконтроллера (в этом примере рассмотрим порт B).

В начале программы задаём порт, к которому подключаем LCD экран (порт с интерфейсом SPI)

#asm
.equ __lcd_port=0x18
#endasm 

 

Вывод строки на экран LCD выполняется следующими командами:

char *_str="I love http://atmega8.ru!";
lcd_init(16); //инициализация экрана на 16 символов
lcd_gotoxy(0, 0); //установка курсора в точку (0,0)
lcd_puts(_str);  //вывод строки

Все эти функции хранятся в специальной библиотеке. В компиляторе CodeVision AVR это библиотека lcd.lib

Для того, чтобы эти функции работы стали доступны, в начале программы необходимо подключить заголовочный файл lcd.h:

#include 'lcd.h'

 

atmega8

Если в вашем компиляторе нет библиотек для управления LCD дисплеем, то можно попробовать использовать библиотеки, входяшие в CodeVision AVR. Они доступны по этой ссылке.

Функция lcd_puts(), выводящая строку на экран LCD принимает в качестве аргумента ссылку на переменную типа "char".

Если необходимо выводить на экран переменные других типов, то их нужно привести к соответствующему типу при помощи функции sprintf(bufer,%формат вывода,var), где bufer - имя указателя на переменную типа char,в которую будет записан результат преобразования переменной var, %формат вывода - формат вывода строки (например %d,%lu),var - преобразуемая переменная.

Функция sprintf становится доступна при подключении заголовочного файла stdio.h

В некоторых компиляторах (например CodeVision AVR), для того чтобы функция sprintf могла работать с переменными типа long int, необходимо провести дополнительные настройки. Для CodeVision AVR: Project->Configure->C compiler->(S)printf Features->Выбрать пункт "long,width,precision"

Если необходимо преобразовать переменную типа int, то можно воспользоваться более простой и быстрой функцией itoa (подключаем файл stdlib.h). Пример: itoa(intVar,convertedCharCar)

Для преобразования переменных типа long int функция itoa не подходит. Вместо неё нужно использовать функцию ltoa.


Если у вас есть какие-то замечания по этому документу или что-то осталось непонятно, то вы можете оставить свой отзыв или вопрос

Комментарии (1)

avatar

САНЕк

  • 30 Май 2011, 17:15

ответить

А где купить дисплей? :))

Анонимная отправка сообщений запрещена! Пожалуйста зарегистрируйтесь