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.



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


  • REFERENCE CLOCK OUTPUT MODULEREFERENCE CLOCK OUTPUT MODULE
    REFERENCE CLOCK OUTPUT MODULE Модуль формирования опорного тактового сигнала Модуль опорного тактового сигнала обеспечивает возможность посылать сигнал синхронизации на тактовый опорный выходной контакт или контакты (CLKR) в зависимости от конфигурации выводов …
  • Проект с использованием MCC часть 04Проект с использованием MCC часть 04
    Теперь простого горения светиков нам не достаточно, заставим их мигать. Для начала используем первобытно простой способ, но достаточно простой. Используем функции delay, напрягаться откуда они берутся не будем, самое главное , …
  • Проект с использованием MCC часть 09Проект с использованием MCC часть 09
      Эта часть будет посвящена созданию практического проекта управления освещение. Тех задание: Два выхода управления ШИМ – светодиодным освещением. Две кнопки управления, каждая кнопка управляет, своим каналом, логика самая простая, нажимаем …
  • Дифференциальный терморегуляторДифференциальный терморегулятор
    Дифференциальный терморегулятор ch-3020 Назначение. Ch-c3020 представляет собой дифференциальный терморегулятор. Основное назначение солнечные системы горячего водоснабжения, а также вентиляционные системы управление притоком свежего воздуха. Контроллер позволяет работать пяти режимах. 1 – …
  • УКВ – радиоприем, часть 1УКВ – радиоприем, часть 1
    Музыкальная тема к статье, слушаем: Первый мой радиоприемник, выглядел так. Использовал исключительно в школе на уроках, держась за одно ухо и преданно смотря на училку и сладко улыбаясь. Проблема была …
  • ch-светомузыка от теории до реализацииch-светомузыка от теории до реализации
    Сразу оговоримся технология или теория ch-светомузыки, это постоянно развивающийся процесс и то что будет сказано сегодня завтра может быть опровергнуто и считаться ошибочным. Назовем само решение проблемы автоматического преобразования или …
  • LCD драйвер – UC1601sLCD драйвер – UC1601s
    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. Метки:UC1601s
  • AD9833 – Programmable Waveform Generator – part twoAD9833 – Programmable Waveform Generator – part two
    Прошло время и появилась тема, что-бы закончить проект AD9833 – Programmable Waveform Generator. Приехали печатные платы. В этот раз я печатные платы заказывал в https://jlcpcb.com/ делал это в первый раз …
  • Проект с использованием MCC часть 12-1Проект с использованием MCC часть 12-1
    В настоящее время без визуализации информации уже не интересно. Поэтому научимся выводить информацию на дисплей. Для это возьмет простенький OLED RET012864E/REX012864J я такой приобретал в фирме “Гамма-Украина”, описание можно почитать здесь …
  • PIC32MZ – Core Timer (библиотека)PIC32MZ – Core Timer (библиотека)
    Переработанные файлы от Microchip, библиотека для работы с Core Timer. Метки:PIC32MZ



Tagged with →  
Share →
Translate »

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

e-mail: catcatcat.electronics@gmail.com