LCD драйвер – UC1601s

Views: 1599


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


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

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

Значок

UC1601s - Описание драйвера (EN) 668.48 KB 2729 downloads

UC1601s - Описание драйвера (EN) ...

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

Значок

UC1601s - Русское описание (свободный перевод) 540.77 KB 3020 downloads

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

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

Библиотека и демонстрационный пример

Значок

UC1601s - Библиотека и демонстрационный пример HITECH v 9.66. 18.50 KB 615 downloads

UC1601s - Библиотека и демонстрационный пример HITECH...

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

UC1601s - Схема подключения индикатора для тестирования 9.94 KB 2451 downloads

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

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

UC1601s - Библиотека и демонстрационный пример HITECH v9.80 18.68 KB 602 downloads

UC1601s - Библиотека и демонстрационный пример HITECH...

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

Компилятор  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.



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


  • Универсальный терморегулятор ch-c3000Универсальный терморегулятор ch-c3000
    Views: 2989 Терморегулятор ch-c3000 предназначен для управления системами регулирования температуры в пределах от – (минус) 55 до + 125 С. Регулятор может использоваться как в системах отопления, так и в …
  • Проблемы классической светомузыкиПроблемы классической светомузыки
    Views: 2066 Светомузыка – что это такое? Определение: Светомузыка  (жаргонное: цветомузыка)  — вид искусства, основанный на способности человека ассоциировать звуковые ощущения со световыми восприятиями. Такое явление в неврологии получило название …
  • Audio-bluetooth modules BK8000L (noname)Audio-bluetooth modules BK8000L (noname)
    Views: 661 Еще один вариант, так сказать недоразумения Audio-bluetooth modules BK8000L (noname). Его отличительной маркировкой служат два отверстия в плате и надпись R2. Отличают его от модулей на чипе BK8000L, …
  • Датчик контроля протечки воды ch-c0020Датчик контроля протечки воды ch-c0020
    Views: 1953 Как здорово летом под теплым дождем с тобою вдвоем оказаться. Как классно по лужам бежать босиком, с тобою играть и смеяться! Но совсем грустно оказаться под таким дождем, который течет с …
  • Стабилизатор тока для светодиодов SN3350Стабилизатор тока для светодиодов SN3350
    Views: 2604 SN3350 ближайший аналог ZXLD1350 Как собрать готовый вариант, читайте во второй части – http://catcatcat.d-lan.dp.ua/stabilizator-toka-na-sn3350-chast-2/ 40V  драйвер светодиодов с внутренним ключом  SN3350 – импульсный понижающий преобразователь, разработанный для того, чтобы эффективно управлять одним или …
  • Самый простой индикатор уровня звукового сигналаСамый простой индикатор уровня звукового сигнала
    Views: 6354 Демонстрационный проект создания индикаторов уровня с использованием WS2812B. Изучив этот проект вы сможете  самостоятельно изготавливать и конструировать свои индикаторы уровня звукового сигнала. Дополнительно читайте статью Бегущие огни на …
  • My libraries for Altium DesignerMy libraries for Altium Designer
    Views: 4024 Attention, this version of the database is outdated today. See updates in articles https://catcatcat.d-lan.dp.ua/altium-designer-my-setup-system-and-project-structure  and https://catcatcat.d-lan.dp.ua/altium-designer-my-setup-system-and-project-structure-v23-2/    My libraries for Altium designer  (Updated V – 29/05/2022) (c) 2021 …
  • NeoPixel LED и PIC18NeoPixel LED и PIC18
    Views: 1668   Еще раз об управлении светодиодами на драйвере WS2812 и ему подобных. Как известно эти светики управляются по однопроводной шине. Основная особенность, что программно можно описать передачу данных, …
  • Простой цифровой регулятор мощностиПростой цифровой регулятор мощности
    Views: 6882 Простой регулятор мощности с цифровой индикацией. Этот проект создан как обучающий, для ознакомления с основами построения сетевых регуляторов мощности. Устройства подобного типа можно использовать для управления освещением, скоростью …
  • Стабилизатор тока на SN3350, часть 2Стабилизатор тока на SN3350, часть 2
    Views: 1127 Если вам необходимо разработать устройство с применением мощных светодиодов, то никак не обойтись без применения стабилизатора тока. На настоящий момент стабилизаторы тока являются самым эффективным механизмом, для питания светодиода в течение всего …



Поделись этим!

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.

Продолжайте читать

НазадДалее