Skip to content

DigitalChip/avr-lcd_Nokia-1100

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

preview

Библиотека для микроконтроллеров AVR для подключения экранов от телефонов Nokia

Более подробно о подключении экранов и библиотеке:

Поддерживаемые экраны

Поддерживаеются экраны от телефонов Nokia 1110/1110i/1200/1202/1203/1112/1116/2660/2760/6085. Т.е. экраны, которые управляются контроллером PCF8814.

Варианты и версии библиотеки

На данный момент существует 2 варианта библиотечки - текстовый и графический варианты.

Текстовый вариант библиотеки имеет нумерацию 1.x и содержит только функции вывода на экран текстовой информации. Преимущество данного варианта в том, что он занимает в памяти программ минимум места и не создает никаких буферов в оперативной памяти. Содержит только функции вывода текста на экран. Рекомендуется для микроконтроллеров AVR с минимумом системных ресурсов (программной и оперативной памяти).

Второй вариант библиотеки — графический. Имеет нумерацию 2.x и содержит весь набор функций текстового варианта с добавлением функций для работы с графикой. В отличии от текстового варианта занимает намного больше памяти, как программной, так и оперативной. В оперативной памяти создается видеобуфер, содержащий копию того, что выведено на экран, так как дисплеи от Nokia позволяют только записывать данные в контроллер дисплея (хотя сам контроллер позволяет как записывать, так и читать данные). Буфер занимает в памяти 864 байта, плюс еще несколько переменных. Соответственно, применять этот вариант библиотеки можно на микроконтроллерах, которые имеют достаточное количество оперативной памяти.

Краткое описание функций графической библиотеки

void nlcd_Init(void);

Инициализация контроллера PCF8814, очистка экрана, инициализация библиотеки.


void nlcd_Clear(void);

Очистка экрана. Очищает экран (и видеобуфер) и устанавливает текущие координаты в нулевые координаты (левый верхний угол).


void nlcd_SendByte(char mode,unsigned char c);

Отправляет байт в контроллер PCF8814. Если передаются данные, то они также сохраняются в видеобуфере.

Параметры:

  • mode:
    • CMD_LCD_MODE — передается команда контроллеру
    • DATA_LCD_MODE — передаются данные
  • с: передаваемый байт

void nlcd_Putc(unsigned char c);

Выводит знак с кодом C в текущее место


void nlcd_Print(char * message);

Выводит строку символов из оперативной памяти, начиная с текущего знакоместа.


void nlcd_PrintF(unsigned char * message);

Выводит строку символов из программной памяти, начиная с текущего знакоместа.


void nlcd_GotoXY(char x,char y);

Устанавливает текущие координаты. Отсчет идет в знакоместах 5×8.

Параметры:

  • x: 0..15 — координата по оси X
  • y: 0..7 — координата по оси Y

void nlcd_Inverse(unsigned char mode);

Устанавливает режим инверсии для всего экрана.

Параметры:

  • mode:
    • INV_MODE_ON — инверсия включена
    • INV_MODE_OFF — инверсия выключена

void nlcd_Pixel (unsigned char x,unsigned char y, unsigned char pixel_mode);

Выводит пиксель в указанные координаты.

Параметры:

  • x: 0..95 — координата по оси X
  • y: 0..64 — координата по оси Y Отсчет ведется от верхнего левого угла.
  • pixel_mode:
    • PIXEL_ON — пиксель устанавливается
    • PIXEL_OFF — пиксель сбрасывается (стирается)
    • PIXEL_INV — пиксель инвертируется

void nlcd_Line (unsigned char x1,unsigned char y1, unsigned char x2,unsigned char y2, unsigned char pixel_mode);

Рисует линию. Линия рисуется из точки с координатами x1, y1 в точку с координатами x2,y2.

Параметры:

  • x1, x2: 0..95
  • y1,y2: 0..64
  • pixel_mode:
    • PIXEL_ON — пиксель устанавливается
    • PIXEL_OFF — пиксель сбрасывается (стирается)
    • PIXEL_INV — пиксель инвертируется

void nlcd_Circle(unsigned char x, unsigned char y, unsigned char radius, unsigned char fill, unsigned char pixel_mode);

Рисует закрашенную или нет окружность с координатами центра x, y и радиусом radius.

Параметры:

  • x: 0..95
  • y: 0..64
  • fill:
    • FILL_ON — заливка выполняется
    • FILL_OFF — заливка не выполняется
  • pixel_mode:
    • PIXEL_ON — пиксель устанавливается
    • PIXEL_OFF — пиксель сбрасывается (стирается)
    • PIXEL_INV — пиксель инвертируется

void nlcd_Rect (unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, unsigned char fill, unsigned char pixel_mode);

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

Параметры:

  • x1, x2: 0..95
  • y1, y2: 0..64
  • fill:
    • FILL_ON — заливка выполняется
    • FILL_OFF — заливка не выполняется
  • pixel_mode:
    • PIXEL_ON — пиксель устанавливается
    • PIXEL_OFF — пиксель сбрасывается (стирается)
    • PIXEL_INV — пиксель инвертируется