http://svetomuzyka.narod.ru/project/UC1601s.html
Читайте обновление на http://catcatcat.d-lan.dp.ua/?page_id=178

В данный момент можно приобрести в ООО “Гамма” несколько типов индикаторов на драйвере UC1601s. RDX0048-GC, RDX0077-GS, RDX0154-GC и RDX0120-GC выполнены по технологии COG.

Внешний вид индикатора RDX0154-GC

lcd1b и подсветка к нему lcd2

Напряжение питания индикатора – 3,3 V.


 


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

lcd3


Графический индикатор хорош, когда для него есть рабочий инструмент 

Для этой цели была написана библиотека с использованием компилятора HI-TECH C v9.66. Она имеет знакогенератор полностью совместимый с кодировкой Windows. Теперь можно «просто» набирать текст не заботясь о совместимости кодировок. Библиотека состоит из 21 фунции, которые включают в себя и функции работы с шиной I2C.

// для работы с I2C

void I2C_Open (void); // настройка MSSP модуля

void i2c_idle (void); // проверка на готовность I2C устройства к работе

void i2c_stop (void); // формирование стоп

char i2c_start (char adres, char C_D, char R_W); // адрес устройства и управление младшими битами

char i2c_restart (char adres, char C_D, char R_W);

char i2c_write (char data); //запись байта

char i2c_read_ack (void); //чтение с подтвеждением

char i2c_read_noack (void); //чтение без подтеждения

// для работы с индикатором

void int_LCD (void); // инициализация

void clear_LCD (void); // очиска всего дисплея

void curcorG_LCD (char X,char Y); // установка курсора

// вывод строк

void String_LCD(const char *str,char inv,char width,char height,char X,char Y); // , char строка, ширина, высота, центрирование (22 символа в строке)

void Stringp_LCD(const char *str,char inv,char width,char height);

// вывод символа или числа

void symbol_LCD (int cod,char tip,char inv,char shi,char vis);

// бегущая строка

void ticker_LCD (const char *str,char start,char ends,char Y); //с ПЗУ

void tickerB_LCD (char dlinok,char start,char Y); // с озу

// графические примитивы для работы с индикатором 

void point (int tip, int X, int Y); // точка

void line(int tip, int x0, int y0, int x1, int y1); // линия

void rectangle (int ugl, int tip,int zal,int tipzal, int x0, int y0, int x1, int y1);//прямоугольник

void strip (int ugl,int tip,int tipzal, int x0, int y0, int sh, int vs, char vol);// линейный индикатор


Система координат графической библиотеки

Система координат принята с нулем в левом верхнем углу.

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

lcd4


Рисование точек

Для прорисовки использовался пример:

for (a=0;a<400;a++) point (1, rand()%131, rand()%62);

lcd5


Пример рисования линий

Для рисования использовался алгоритм Брезенхема.

Для прорисовки использовался пример:

for (a=0;a<10;a++) line (1, rand()%131, rand()%50, rand()%131, rand()%50);

line( 2, 0, 51, 131, 51);

line( 7, 0, 54, 131, 54);

line( 4, 0, 57, 131, 57);

line( 6, 0, 60, 131, 60);

lcd6


Рисование прямоугольников

Для рисования использовался пример:

rectangle( 1,1,2,0, 0, 3, 131, 60);

//1-тип угла,2-тип бордюра,3-толщина бордюра,4-тип заливки,5/6-координаты вернего левого угла, ширина и высота.

rectangle( 0,0,0,3, 55, 10, 25, 25);

rectangle( 0,0,0,4, 70, 20, 25, 25);

rectangle( 0,0,0,7, 85, 30, 25, 25);

rectangle( 0,1,1,1, 10, 10, 25, 11);

rectangle( 0,1,1,2, 15, 15, 25, 11);

rectangle( 0,1,1,3, 20, 20, 25, 11);

rectangle( 0,1,1,4, 25, 25, 25, 11);

rectangle( 1,1,1,1, 55, 30, 25, 11);

rectangle( 1,1,1,2, 50, 35, 25, 11);

rectangle( 1,1,1,3, 45, 40, 25, 11);

rectangle( 1,1,1,4, 40, 45, 25, 11);

rectangle( 0,2,1,1, 100, 10, 25, 11);

rectangle( 0,1,1,1, 100, 24, 25, 11);

rectangle( 1,1,3,1, 100, 38, 25, 20);

rectangle( 1,6,1,0, 5, 40, 26, 15);

rectangle( 0,1,1,0, 53, 22, 30, 30);

lcd7


Индикатор загрузки, линейный индикатор

Для рисования использовался пример:

strip (0,1,3,10,11,110,10,70);

String_LCD (” Индикатор – 70%”,0,0,0,-1,1);

String_LCD (“Значение 0-100%”,0,0,0,-1,25);

String_LCD (“Размеры и положение”,0,0,0,-1,33);

String_LCD (“произвольные”,0,0,0,-1,41);

lcd8


Прорисовка символов и строк

 Можно прорисовывать как отдельный символ (цифру), так и строку. Вывод строк осуществляется непосредственно строками или символьными массивами. Символы могут выводиться как в прямом, так и в инверсном изображении. Поддерживается автоматическая центровка строки на индикаторе.

Бегущая строка представляет собой упрощенный вариант вывода строк. Такая функция употребляет мало ресурсов контроллера. За один вызов она выводит 1 символ в окно. Определено 2 функции для вывода строк: из ПЗУ программ и из ОЗУ для индикации динамических данных.

Пример прорисовки:

String_LCD (“Привет мир!”,1,0,0,-1,1);

String_LCD (“АБВГабвгABCDabcd012”,0,0,0,-1,10);

String_LCD (“!@#$%^&*()+-*/”,0,0,0,-1,18);

String_LCD (“2шир “,0,1,0,10,26);

Stringp_LCD (“3шир”,0,2,0);

String_LCD (“4шир”,0,4,0,15,34);

String_LCD (“45.6”,0,2,1,-1,45);

lcd9


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

Описание драйвера оригинал


Русское описание (свободный перевод)

Схема подключения индикатора к контроллеру и библиотека с демо-программой на С HITECH v 9.66.
Библиотека и демонстрационный пример

Схема подключения индикатора для тестирования

Версия библиотеки для работы с компилятором HI-TECH Software PICC-18 v9.80.
Библиотека и демонстрационный пример HI-TECH Software PICC-18 v9.80

Причина обновления

Компилятор  HI-TECH Software PICC-18 v9.80 некорректно компилирует выражение типа unsigned long (циклический сдвиг “по кругу”, для 32 битных чисел)
mask=(mask << 1)|(mask >> 31); где mask – тип  unsigned long (32 бита).
Обойти это можно разбив это выражение на три части:
mask1=(mask << 1);
mask2=(mask >> 31);
mask=mask1 | mask2;
Последняя версия корректно работает и на компиляторе версии 9.66.



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


  • WiFi ESP8266 ESP-202 (ESP-12F)WiFi ESP8266 ESP-202 (ESP-12F)
    Первое знакомство, сначала надо его купить… http://voron.ua/catalog/024404 Схема для подключения и тестирования По схеме ставим две кнопки, сброс и кнопку BT2, для перевода в режим обновления прошивки. Если надо сделать аппаратный сброс …
  • VU Meter Tower ARTVU Meter Tower ART
    Стерео индикатор уровня аудио сигнала. Компактность и удобство проектирования устройств на светодиодах WS2812B, а также легкость реализации алгоритма родило идею созданию своей конструкции. В этом проекте я предоставлю все материалы …
  • LED модуль P10 (1R) V706ALED модуль P10 (1R) V706A
    Это еще одно чудо от китайского брата. Это монохромные матрицы, называются они P10 (1R) V706A, ну типа  R-красные, но не верьте паяют светики и зеленые и синие, в общем любые какие …
  • Емкостной сенсорЕмкостной сенсор
    Изучаем изготовление емкостных сенсоров на PIC-микроконтроллере. Конструкция емкостных сенсоров имеет вид: Емкостные сенсоры строятся по схеме высокочастотного генератора, сам принцип основан на измерение частоты этого генератора. Частота зависит от емкости …
  • Индикатор температурыИндикатор температуры
    Проект для начинающих, на демо плате BB-2T3D-01. Простой индикатор температуры. Проект никак не задумывался, просто на витрину магазин Ворон нужна была демонстрационная модель на макетной плате, чего нибудь работающего. Остановились на индикаторе температуре. Нужен был какой нибудь выводной …
  • Проект с использованием MCC часть 16Проект с использованием MCC часть 16
    Продолжим изучение EUSART. На этом этапе отработает передачи данных с ПК и получения эха. Для этого в основной цикл программы добавим код [crayon-5da4a39cf240b957884165/] Суть его проста постоянно в главном цикле …
  • Гаджеты для домашней автоматики – Емкостной сенсорГаджеты для домашней автоматики – Емкостной сенсор
    Управление светодиодным освещением – Сенсор емкостной. Данный гаджет предназначен для управления освещением где необходимо включением освещение сенсорным прикосновением. Датчик позволяет управлять светодиодной нагрузкой в виде модулей или светодиодных лент освещения. Питание …
  • Moving average – скользящее среднееMoving average – скользящее среднее
    Скользящая средняя, скользящее среднее (англ. moving average, MA) — общее название для семейства функций, значения которых в каждой точке определения равны среднему значению исходной функции за предыдущий период. Скользящие средние обычно используются с данными временных рядов для сглаживания краткосрочных колебаний …
  • Trimax – кодирование и декодирование ИК-командTrimax – кодирование и декодирование ИК-команд
    Первое, что надо понять назначение кнопок клавиш пульта, а также, что за кодирование реализовано в ИК- пульте. Для назначения клавиш обратимся к описанию, а для взлома кодирования воспользуемся старым и …
  • Обновление ESP8266 c ESPFlashDownloadTool_v3.6.3Обновление ESP8266 c ESPFlashDownloadTool_v3.6.3
    Технология обновления следующая: Загружаем программу со страницы espressif.com. Разархивируем. Где находятся файлы, для прошивки? Заходим в каталоги Подключаем по схеме в статье WiFi ESP8266 (замыкаем BT2, перемычка). Запускаем программу, откроется два …



Tagged with →  
Share →
Translate »

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

e-mail: catcatcat.electronics@gmail.com