
Views: 709
Символьная библиотека. Вывод на дисплей символов и псевдографики, национальные шрифты. Для компилятора Microchip MPLAB XC8 C Compiler V1.12.
ВНИМАНИЕ Библиотека предназначена для микроконтроллеров которые имеют, регистры портов LAT. Для использования с микроконтроллерами устаревших типов, необходимо добавить задержку в местах управления битами D_C_OLED и EN_OLED на больших тактовых частотах. В библиотеки они закомментированы.
Для подключения библиотеки необходимо будет выполнить конфигурирование интерфейса. Для вывода данных используется один любой пор микроконтроллера.
В библиотеки используются вариант с внутренним DC/DC преобразователем.
// описание управляющих сигналов #define EN_OLED LATC7 // #define R_W_OLED LATC6 // #define D_C_OLED LATC5 // #define RES_OLED LATC4 // #define TRISEN TRISCbits.RC7 // #define TRISR_W TRISCbits.RC6 // #define TRISD_C TRISCbits.RC5 // #define TRISRES TRISCbits.RC4 // // описания 8 битного порта #define OLED_DATA PORTB // определение порта #define OLED_TRIS TRISB //
Для варианта демонстрационного примера использовалось подключение
* интерфейс
* D0-RB0 \
* D1-RB1 |
* D2-RB2 |
* D3-RB3 \ Данные
* D4-RB4 /
* D5-RB5 |
* D6-RB6 |
* D7-RB7 /
* E-RC7 – вывод активации операции переход с 1 на 0
* R/W-RC6 – Чтение/Запись 0 – режим записи 1 – режим чтения
* D/C-RC5 – Данные/Команда, 0 – передача команды, 1 – передача данных
* RES-RC4 – СБРОС индикатора 0- сброс, 1- нормальная работа
Схема подключения к плате ILLISSI-4B-PIC18F25K20.
Функции для работы с SSD1306 в режиме интерфейса 6800
void OLEDint (void); // инициализация порта, инициализация драйвера SSD1306
void OLEDwrite_data (char datain);// запись данных
char OLEDread_data (void);// чтение данных
void OLEDwrite_comm (char datain);// запись команды
char OLEDread_comm (void);// чтение статуса
Функции для работы с индикатором
void OLED_clear(char tip); // очистка всего дисплея
tip-положение по Y 0-2, 0- черный, 1- белый, 2-серый.
пример:
OLED_clear (0); // очистка всего дисплея
Регулировка контрастности
void OLED_contrast(char Y);
Y-положение по Y 0-255.
пример:
OLED_contrast (a);
Установка курсора
void OLED_curcor(char X,char Y);
X – положение по X 0-127,
Y-положение по Y 0-7.
пример:
OLED_curcor (11,4);
Вывод строк (текстовых сообщений)
void OLED_String(const char *str,char inv,char width,char height,char X,char Y);// , char строка, ширина, высота, центрирование (22 символа в строке)
пример:
OLED_String(“информационные”,0,0,0,-1,3);
void OLED_Stringp(const char *str,char inv,char width,char height);
*str – строка должна быть не более 255 символов,
inv – 0 нормальная прорисовка, 1 – инверсное,
width – ширина символа 0 – 7 (0-1 –>0),
height – высота 0 – 7 (0-1 –>0),
X – положение по X 0-127,
Y-положение по Y 0-7.
пример:
OLED_String(“информационные”,0,0,0);
Вывод символа на дисплей в позиции курсора
void OLED_symbol(unsigned char cod,unsigned char tip,unsigned char inv,unsigned char shi,unsigned char vis);
cod – символ
tip – функция 0-делать один пробел между символами 1 – не делать для рисования псевдографики
inv – инверсия
shi – ширина символа
vis – высота символа
пример:
OLED_symbol (‘*’,1,0,0,0);
Бегущие строки
void OLED_ticker (const char *str,char start,char ends,char Y); //с ПЗУ
вывод строк – сообщений сохраненных в ПЗУ
пример:
OLED_ticker (“Единственная известная мне роскошь – это роскошь человеческого общения. Антуан де Сент-Экзюпери.”,20,5,2);
void OLED_tickerB (char dlinok,char start,char Y);// с озу
вывод строк массив которых сохранено в ОЗУ и могут динамически менять свое содержание.
пример:
OLED_tickerB (20,5,0);
Данные выводятся из массива char ca[] = “Бегущая строка данные в расположенные в ОЗУ –> 32.7С их можно оперативно изменять для вывода информации”;
Библиотека + демопример (MPLAB X IDE v1.80, XC8 C Compiler V1.12) [wpdm_file id=186 template=”link-template-calltoaction3.php”]Схема подключения индикатора в pdf [wpdm_file id=187 template=”link-template-calltoaction3.php”]
Это может быть интересно
Проект с использованием MCC часть 07
Views: 1006 Модуль PWM – широтно импульсная модуляция (ШИМ). ПИК контроллеры часто на борту имеют модули ШИМ. На их основе строятся многие узлы управления электро приводами. В нашем варианте мы …NeoPixel LED and PIC24
Views: 649 Популярность однопроводной шины для управления светодиода типа WS2812 не ослабевает, а новые типы светодиодов в корпусах 3,5*3,5мм, 2,0*2,0мм становяться все больше привлекательными. Построение дисплеев для анимации требуют все …Гаджеты для домашней автоматики – Датчик приближения
Views: 1980 Управление светодиодным освещением – Датчик приближения. Данный гаджет предназначен для управления внутренним освещением мебели. Датчик позволяет определить закрытие или открытие дверцы или ящика и при этом включать или …Дифференциальный терморегулятор
Views: 3998 Дифференциальный терморегулятор ch-3020 Назначение. Ch-c3020 представляет собой дифференциальный терморегулятор. Основное назначение солнечные системы горячего водоснабжения, а также вентиляционные системы управление притоком свежего воздуха. Контроллер позволяет работать пяти режимах. …Ссылки на интересные источники
Views: 844 Сбор 3D моделей от André L’Hérault конденсаторы, резисторы, индуктивности dropbox IPC-SM-782 Surface Mount Design and Land Pattern Standard Видео уроки по Altium designer Alexey Sabunin https://www.youtube.com/channel/UCG7N5CqXpyK8nQjr1EmMgng Сергей Булавинов https://www.youtube.com/channel/UCISAMXRnN_Qw9UTjUwZI1Jw Robert Feranec https://www.youtube.com/user/matarofe …USB K-L-line адаптер
Views: 4575 USB K-L-line адаптер предназначен для связи персонального компьютера с диагностической шиной автомобиля – интерфейс ISO-9141. Этот проект предназначен для сборки недорого устройства с использованием специально для этой цели …Интерактивные Led
Views: 464 Тема проекта продолжение следует…. Это может быть интересноTemperature measurement with NTC thermistor.
Views: 359 Проекты в которых присутствовало измерение температуры начинал с цифровых датчиков, т.к. в них все просто и не надо ничего преобразовывать и вычислять. При использовании цифровых датчиков ты получаешь …Универсальный терморегулятор ch-c3000
Views: 2989 Терморегулятор ch-c3000 предназначен для управления системами регулирования температуры в пределах от – (минус) 55 до + 125 С. Регулятор может использоваться как в системах отопления, так и в …LED модуль P10 (1R) V706A
Views: 7745 Это еще одно чудо от китайского брата. Это монохромные матрицы, называются они P10 (1R) V706A, ну типа R-красные, но не верьте паяют светики и зеленые и синие, в общем …