Views: 1621
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
и подсветка к нему
Напряжение питания индикатора – 3,3 V.
Схема подключения:
Графический индикатор хорош, когда для него есть рабочий инструмент
Для этой цели была написана библиотека с использованием компилятора 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);// линейный индикатор
Система координат графической библиотеки
Система координат принята с нулем в левом верхнем углу.
Все примитивы выводятся с точки привязки – вернего левого угла.
Рисование точек
Для прорисовки использовался пример:
for (a=0;a<400;a++) point (1, rand()%131, rand()%62);
Пример рисования линий
Для рисования использовался алгоритм Брезенхема.
Для прорисовки использовался пример:
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);
Рисование прямоугольников
Для рисования использовался пример:
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);
Индикатор загрузки, линейный индикатор
Для рисования использовался пример:
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);
Прорисовка символов и строк
Можно прорисовывать как отдельный символ (цифру), так и строку. Вывод строк осуществляется непосредственно строками или символьными массивами. Символы могут выводиться как в прямом, так и в инверсном изображении. Поддерживается автоматическая центровка строки на индикаторе.
Бегущая строка представляет собой упрощенный вариант вывода строк. Такая функция употребляет мало ресурсов контроллера. За один вызов она выводит 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);
Файлы для загрузки
Описание драйвера оригинал
UC1601s - Описание драйвера (EN) 668.48 KB 2729 downloads
UC1601s - Описание драйвера (EN) ...Русское описание (свободный перевод)
UC1601s - Русское описание (свободный перевод) 540.77 KB 3017 downloads
UC1601s - Русское описание (свободный перевод) ...Схема подключения индикатора к контроллеру и библиотека с демо-программой на С HITECH v 9.66.
Библиотека и демонстрационный пример
UC1601s - Библиотека и демонстрационный пример HITECH v 9.66. 18.50 KB 611 downloads
UC1601s - Библиотека и демонстрационный пример HITECH...Схема подключения индикатора для тестирования
UC1601s - Схема подключения индикатора для тестирования 9.94 KB 2447 downloads
UC1601s - Схема подключения индикатора для тестирования ...Версия библиотеки для работы с компилятором HI-TECH Software PICC-18 v9.80.
Библиотека и демонстрационный пример HI-TECH Software PICC-18 v9.80
UC1601s - Библиотека и демонстрационный пример HITECH v9.80 18.68 KB 599 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.
Это может быть интересно
- MPLAB X IDE – управление проектамиViews: 962 Среда MPLAB X IDE позволяет оперативно работать с несколькими проектами, например, если у вас в работе несколько проектов: Для того чтобы переключиться достаточно выбрать другой проект: Для выбора …
- DS18B20 – удаленный контроль температурыViews: 3042 Контроль температуры с использованием датчиков температуры DS18B20 и платы ILLISSI-4B-09-primum Проект позволяет подключать к плате ILLISSI-4B-09-primum до 16 датчиков температуры DS18B20, удаленных более 300 метров, и выводить информацию …
- MTouch® Модуль Емкостной Библиотеки для MPLAB®X Code Configurator (MCC)Views: 1210 Введение MTouch ® Модуль Емкостной Библиотеки для MPLAB ® X Code Configurator (MCC) позволяет быстро и легко генерировать решение кода на Cи для емкостной сенсорной кнопки, датчика приближения и слайдера.
- Мониторинг температурыViews: 1389 Настоящий проект создан как обучающий с применением библиотек ds18b20 и LCDHD44780 и компилятора Microchip MPLAB XC8 C Compiler V1.12. Если необходимо иметь информацию по состоянию температуры в помещении или в здании, с количеством до 6 точек (16), то …
- ch-4000 – универсальная печатная платаViews: 1012 На смену устаревшей плате ch-3000, пришла новая ch-4000. Плату уже можно приобрести в магазине Ворон. Схема. Плата позволяет создавать таймеры, часы реального времени, регуляторы температуры, регуляторы влажности, вольтметры, …
- MAX7219/21 и 8х8 LED дисплеиViews: 931 MAX7219, MAX7221 предназначены для вывода информации на 8 разрядов семисегментного индикатора, но на нем легко организовать вывод на светодиодные индикаторы 8х8. продолжение следует…. Это может быть интересно
- Одноканальный емкостной сенсор – AT42QT1012Views: 2336 Описание сенсора [wpdm_file id=242] Незаконченный проект, так-как сенсор не оправдал своего назначения, не рекомендую, просто выброшенные деньги. Особенности. • Количество сенсоров – один, режим переключения ( touch-on/touch-off ), а также программируемая …
- Простой оптический сенсор приближенияОптический сенсор, назначение оптический концевик, для автоматики, бесконтактный выключатель с функцией автоматического отключения...
- Проект с использованием MCC часть 11Views: 863 Можно несколько облагородить программу вынести наши процедуры обработки нажатия кнопок в отдельные функции. Но вы должны понимать, что это хоть и не значительно, но будет тормозить общую скорость …
- Часы-кухонный таймерViews: 4064 Каждая кухня должна иметь кухонный таймер, который позволяет напоминать хозяйке когда проходить определенный промежуток времени. Например, печем пирог, варим яйца… , чтобы не смотреть постоянно на часы, установим таймер и …