Графическая библиотека для драйвера SSD1306.

Демонстрация работы

 


В работе с драйвером используется параллельный интерфейс 8080 (на 6800 не удалось получить стабильное чтение данных с индикатора).

Схема подключения

Catcatcat_electronics_CNK109630_8080


Функции библиотеки

 SSD1306_8080_01 SSD1306_8080_02 SSD1306_8080_03


void OLEDint (void); // инициализация порта

void OLEDwrite_data (char datain);// запись данных
char OLEDread_data (void);// чтение данных
void OLEDwrite_comm (char datain);// запись команды
char OLEDread_comm (void);// чтение статуса

void ENAB_VCC (char enable_disable); // выключение/включение внешнего DC/DC преобразователя/off / on the external DC / DC converter
// для работы с индикатором

void OLED_clear (char tip); // очистка всего дисплея
// регулировка контрастности
void OLED_contrast (char Y);
// поворот дисплея на 180 грд
void OLED_rotation (char R);


// установка курсора/positioning of the cursor

void OLED_curcor (char X,char Y);
// вывод строк/output character strings
void OLED_String(const char *str,char inv,char width,char height,char X,char Y);// , char cстрока, ширина, высота, центрирование (22 символа в строке)
void OLED_Stringp(const char *str,char inv,char width,char height);
// вывод символа//the output symbol
void OLED_symbol (unsigned char cod,unsigned char tip,unsigned char inv,unsigned char shi,unsigned char vis);

// бегущая строка/ / Ticker
//при вызове функции в окно бегущей строки выводиться 1 следующий символ.
//в цикле вывода информации должна быть одна строка OLED_ticker
//строка выезжает в окно, провегает окно, и начинается заново
//[строка] – max 255 символов
//[dlinok] ширина окна вывода в символах, один символ 6 точек
//[столбец начала] начало окна вывода по х в точках 0-127
//[строка 0-7] высота по Y (кратная 8 точкам) только по строкам дисплея
void OLED_ticker (const char *str,char start,char ends,char Y); //с ПЗУ
void OLED_tickerB (char dlinok,char start,char Y);// с озу

// декларация массива данные хранящиеся в озу/Declaration of array data stored in RAM
char ca[];


// рисование точки

//[тип]0-белая тоска,1-черная
//[координата по X] 0-127
//[координата по Y] 0-63
void point(unsigned char tip, unsigned char X, unsigned char Y);
// рисование линии алгоритм Брезенхема
// tip тип линии 0-стирание 1-сплошная, 2-255 рисунок
// x0 y0 x1 y1 – координаты линии
void line(unsigned char tip, unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1);
// рисование прямоугольника (есть ограничение на задание координат – задание координаты верхний левый угол + ширина и высота)
//1-[тип углов]0-прямые, 1-скругленные
//2-[тип линии]0-черная 1- белая, от 2 и более варианты прорисовки
//3-[толщина бордюра] 0- нет (заливка все равно будет делать 1 пиксель отступа), 1,2,3 толщина
//4-[тип заливки]0-нет заливки,1-белая,2-черная, 3 и более варианты
//5-[x0][y0] – координата нижнего левого угла
//6-[ширина] – ширина прямоугольника
//7-[высота] – высота прямоугольника
void rectangle(unsigned char ugl, unsigned char tip, unsigned char bor, unsigned char tipzal, unsigned char x0, unsigned char y0, unsigned char sh, unsigned char vs);

// полоса загрузки индикатор линейный (есть ограничение на задание координат – задание координата нижнего левый угол + ширина и высота)
//[тип углов]0-прямые, 1-скругленные
//[тип линии]0-белая 1- сплошная, от 2 и более варианты
//[тип заливки]0-белая,1-черная, 2 и более варианты
//[x0][y0] – координата нижнего левого угла
//[ширина] – ширина прямоугольника
//[высота] – высота прямоугольника
//[vol] – уровень 0-100%
void strip(unsigned char ugl, unsigned char tip, unsigned char tipzal, unsigned char x0, unsigned char y0, unsigned char sh, unsigned char vs, unsigned char vol);


Дополнительная функция (в примере) – ввод изображения.

Xn – Yn установка верхнего левого угла картинки
Xr – Yr – размер картинки в пикселях ширина, высота

void imag(char Xn, char Yn, char Xr, char Yr);


Обновление Версия 1,1 добавлено управление по шине CS выбор кристалла  без него было иногда некорректность чтения с индикатора данных, которая важна для настоящей библиотеки.

Схема подключения

Catcatcat_electronics_CNK109630_8080_v1.1


Файлы для загрузки

Библиотека + демопример v1.0(MPLAB X IDE v1.80, XC8 C Compiler V1.12)

Схема подключения индикатора в pdf
Библиотека + демопример v1.1 (MPLAB X IDE v1.80, XC8 C Compiler V1.12)
Схема подключения индикатора в pdf v1.1



Это может быть интересно


  • Trimax – кодирование и декодирование ИК-командTrimax – кодирование и декодирование ИК-команд
    Первое, что надо понять назначение кнопок клавиш пульта, а также, что за кодирование реализовано в ИК- пульте. Для назначения клавиш обратимся к описанию, а для взлома кодирования воспользуемся старым и …
  • DIXELL XWEB500D-EVO + RUT900 или как пробить NAT-серверDIXELL XWEB500D-EVO + RUT900 или как пробить NAT-сервер
    Когда необходимо под какой нибудь контроллер имеющий вэб сервер в инет, то нужен статический IP, что оказалось проблемой при работе с операторами сотовых сетей, конкретно с оператором сети “Киевстар”. Их …
  • Датчик приближения от Румена ЖелеваДатчик приближения от Румена Желева
    Проект на Болгарском языке. Автор Румен Желев. Болгария. Проект,  датчик приближения в котором устранены все недостатки влияния засветки посторонними источниками. Применен совершенно оригинальный принцип контроля ИК излучения. Основната идея на …
  • Индикатор температурыИндикатор температуры
    Проект для начинающих, на демо плате BB-2T3D-01. Простой индикатор температуры. Проект никак не задумывался, просто на витрину магазин Ворон нужна была демонстрационная модель на макетной плате, чего нибудь работающего. Остановились на индикаторе температуре. Нужен был какой нибудь выводной …
  • Проект с использованием MCC часть 12-2Проект с использованием MCC часть 12-2
    Настало время для изучения шины I2C. Изучать будем на примере работы с индикатором RET012864E. Что изменили со старой схемы: В прошлой теме я затупил и не добавил подтягивающие резисторы которые необходимы …
  • I2C MODULE – PIC18F25K42 Device ID Revision = A001I2C MODULE – PIC18F25K42 Device ID Revision = A001
    I2C MODULE Обход ошибок в версии I2C MODULE – PIC18F25K42 Device ID Revision = A001 В Серии K42 применен совершенно новый модуль шины I2C, который позволяет поддерживать все режимы этой …
  • Мультизоновый индикатор-терморегулятор ch-c3010Мультизоновый индикатор-терморегулятор ch-c3010
    Часто возникает необходимость получить информацию по температуре с множества точек контроля. Вам необходимо знать температуру в комнате, в коридоре,  температуру на улице, а в погребе (или на балконе) не только …
  • REFERENCE CLOCK OUTPUT MODULEREFERENCE CLOCK OUTPUT MODULE
    REFERENCE CLOCK OUTPUT MODULE Модуль формирования опорного тактового сигнала Модуль опорного тактового сигнала обеспечивает возможность посылать сигнал синхронизации на тактовый опорный выходной контакт или контакты (CLKR) в зависимости от конфигурации выводов …
  • PIC18F25K42 – v. A001 – выявленные баги.PIC18F25K42 – v. A001 – выявленные баги.
    Модуль I2C Не работает при использовании в стандартной конфигурации MCC. Требует особой нестандартной конфигурации и управления для нормальной работы. Обойти Обход проблемы возможен библиотека см статью. Модуль ADC2 На выводе RA0, …
  • Проект с использованием MCC часть 11Проект с использованием MCC часть 11
    Можно несколько облагородить программу вынести наши процедуры обработки нажатия кнопок в отдельные функции. Но вы должны понимать, что это хоть и не значительно, но будет тормозить общую скорость работы проекта, …



 

В записи нет меток.
Translate »

Copyright © Catcatcat electronics 2013-2019. Все права защищены.
Копирование разрешается только с указанием активной ссылки на правообладателя.

e-mail: catcatcat.electronics@gmail.com