В начало | Зарегистрироваться | Заказать наши киты почтой
 
 
 
 

Библиотеки для подключения COG-индикаторов TIC-55 и TIC-3321 к микроконтроллерам AVR

📆4 декабря 2011   ✒️Discover   🔎22.777   💬4  
…простите, а вы не подскажите, как пройти в библиотеку?

Небольшая предыстория

Прежде, я уже имел радость работать с индикатором TIC-55 и в одной из своих статей описывал работу с ним. Библиотека была написана на CodeVisionAVR. Но, к сожалению, я, так и не ее довел до ума. Про библиотеки хочется отметить, что редко удается найти что-нибудь готовое, а если найдешь, то сложно приспособить для себя.

Очень сложно разобраться в чужом коде, тем более новичкам, к которым, я отношу и себя. Мне, прежде всего хотелось довести библиотеку до ума, для того что бы через год, самому себе не ломать голову, как оно работает? И для того что бы могли пользоваться другие. Заодно решил попробовать свои силы в AVR Studio 5.0, ну и как следствие, библиотека написана на AVR Studio 5.0

Аппаратная часть


TIC-3321


TIC-55

Оба индикатора изготовлены по технологии COG (chip on glass).
Для управления имеют три линии: DIN – данные, DCLC – тактирование и LOAD – загрузка/вывод данных. Индикатор можно представить как большой сдвиговый регистр, где каждая ячейка регистра это – сегмент индикатора, «1» - сегмент отображается, «0» - сегмент не отображается. Запись в индикатор происходит следующим образом: на вывод «DIN» устанавливается нужный логический уровень для отображения или гашения символа, затем на короткое время, устанавливаем на вывод «DCLK» логический уровень «1». И так пока не заполним весь регистр. По окончании записи на короткое время, на вывод «LOAD» устанавливаем логический уровень «1». Ниже приведена диаграмма работы.


Программная часть

Как вы понимаете, у сдвигового регистра нельзя поменять только один бит. Этот факт накладывает одно несущественное ограничение, приходиться каждый раз, записывать весь регистр. Для этого в библиотеке организован буфер индикатора. Вывод буфера побитно, осуществляет функция tic55-send/tic3321_send. Собственно на этом заканчивается одинаковая часть библиотек, далее, я коротко расскажу про каждую библиотеку в отдельности.

TIC-55

Функции библиотеки:
tic55_init – инициализация порта,
tic55_send – посылка буфера,
tic55_setbuff – функция заполнения буфера,
tic55_putnum – вывод числа,
tic55_putchar – вывод символа,
tic55_putstr – вывод строки,
tic55_clear – очистка индикатора.

Заголовочный файл:
Определители порта вывода
LCD_PORT, LCD_DDR – порт, к которому подключен индикатор.
LOAD_PIN, DATA_PIN, DCLK_PIN – выводы порта, к которым подключен индикатор, назначать можно любые в рамках назначенного порта.
CHAR_INCLUDES – определяет, будет ли подключен дополнительный набор символов, где не нужно можно отключить для экономии памяти, или просто оставить в этом наборе необходимые символы, остальные закомментировать.

Прототипы функций:

void tic55_putnum(unsigned int Num, unsigned char Pos);
- вывод числа типа unsigned int начиная с позиции Pos от 0 до 7 слева на право.

void tic55_clear(void);
- очистка дисплея.

void tic55_putchar(unsigned char Char, unsigned char Pos);
- вывод символа из набора в позицию Pos.

void tic55_putstr(char* Str, unsigned char Pos);
- вывод строки в позицию Pos.

void tic55_init(void);
- инициализация порта индикатора.

Думаю, что данный набор функций, позволит в достаточной мере управлять этим индикатором. Отдельно хочется рассказать про вывод точек и спецсимволов(галочек) под знакоместом, я называю их подчеркиванием. Установка точки или подчеркивания осуществляется через функцию tic55_putchar(‘,’, Pos) и tic55_putchar(‘_’, Pos) соответственно. Вывод производится после вывода числа символа или строки. Гашение выведенной точки или подчеркивания, производится повторным выводом в эту же позицию. После вывода числа, символа или строки, в позиции, куда ранее выводились точки/подчеркивания - погасит выведенные точки/подчеркивания.

TIC-3321

Для себя я решил, что для индикатора в три разряда, нет смысла вывода дополнительных символов, так как в большинстве случаев, применения этого индикатора – вывод числа. Поэтому я убрал из библиотеки таблицу дополнительных символов, а так же функции putchar и putstr. Функция вывода числа в качестве параметра не содержит позиции, число выводится с крайней правой позиции. В качестве параметра вместе с числом в функцию передаются флаги установки точек и двоеточия, знака числа и добавочного
нуля.

Функции библиотеки:
tic55_init – посылка буфера,
tic55_send – посылка буфера,
tic55_setbuff – функция заполнения буфера,
tic55_putnum – вывод числа,
tic55_clear – очистка индикатора.

Заголовочный файл:
Определители порта вывода
LCD_PORT, LCD_DDR – порт, к которому подключен индикатор.
LOAD_PIN, DATA_PIN, DCLK_PIN – выводы порта, к которым подключен индикатор, назначать можно любые в рамках назначенного порта.

Определители дополнительных параметров выводимого числа:
NO_PARAM – передаваемые параметры отсутствуют,
FIRST_DOT – установка первой точки,
SECOND_DOT – установка второй точки,
COLON – установка двоеточия,
ADD_NULL – вывод добавочного нуля,
MINUS – вывод знака «–».

Прототипы функций:

void tic55_putnum(unsigned int Num, unsigned char AddParam);
- вывод числа типа unsigned int, флаги дополнительных параметров

void tic55_clear(void);
- очистка дисплея.

void tic55_init(void);
- инициализация порта индикатора.

Ключевые моменты обеих библиотек прокомментированы.

Небольшой видеоролик с демонстрацией работы



Даташиты

🎁custom_ampire.pdf  203.59 Kb ⇣ 100
🎁ml1001.pdf  843.87 Kb ⇣ 90
🎁tic55.pdf  288.16 Kb ⇣ 101
🎁tic3321.pdf  203.02 Kb ⇣ 86

Файлы проектов в AVR Studio 5.0 и проекты Proteus 7.8 sp2 с моделями индикаторов

🎁arhiv.zip  199.35 Kb ⇣ 127

P.S.

Вот, как-то так… пробуем, ищем баги, предлагаем/улучшаем. Насколько мне удалось создать «удобоваримую» библиотеку, судить вам. Вообще, предлагаю создавать нашу – Датагорскую коллекцию библиотек для работы с различной периферией микроконтроллеров. Например: DS18b20, знакосинтезирующий дисплей на HD44780 и еще много чего…
Если же данная затея в рамках Датагории будет поддержана, то у меня есть в планах создание библиотек для приема RC5 кода и подключения PS/2 клавиатуры, заготовки уже есть.

Файлы проекта для CodeVisionAVR

Уже ближе к моменту размещения статьи на сайте, я подумал, что было бы не плохо заточить библиотеку и под CodeVisionAVR, а то получается что пользователи CodeVisionAVR остаются «за бортом». Вам останется только переопределить имя среды в заголовочном файле. Ну и конечно же, я приложил проект для CodeVisionAVR.
🎁cvavr.zip  165.83 Kb ⇣ 116

В общем, подумано – сделано, пользуйтесь на здоровье!!!

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.




 

Читательское голосование

Нравится

Статью одобрили 11 читателей.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Программа ForMC в помощь программисту микроконтроллеров... Программа называется ForMC, изначально предназначалась для МК AVR. В ней объединены несколько...
Схема на Датагоре. Новая статья Програмирование в AVR Studio 5 с самого начала. Часть 2... Пишем первую программу!Большинство начинают с мигания светодиодов, и мы не исключение. Если...
Схема на Датагоре. Новая статья Грызём микроконтроллеры. Урок 7. Подключение к МК кнопок, клавиатуры, энкодера... Очень давно обещал продолжить цикл статей по работе с микроконтроллерами, но не было физической...
Схема на Датагоре. Новая статья Програмирование в AVR Studio 5 с самого начала. Часть 7... Поговорим о прерываниях. Слово прерывание говорит само за себя, происходит остановка какого — то...
Схема на Датагоре. Новая статья Прибор для измерения выходной мощности усилителя на микроконтроллере Attyny13, Attyny45... В поисках чего бы ещё собрать в плане изучения МК, нашел датагорскую статью «Стрелочный индикатор...
Схема на Датагоре. Новая статья Простой индикатор уровня сигнала на ОУ LM324 (8 СИД на канал)... Не люблю, когда передняя панель усилителя пустая, имеет лишь ручку громкости да тумблер питания....
Схема на Датагоре. Новая статья Цифровой регулятор громкости с опторазвязкой цифровой и аналоговой части... Фото 1. Собранный регулятор Думаю, каждый, кто занимался сборкой усилителя, сталкивался с выбором...
Схема на Датагоре. Новая статья Регулятор мощности и таймер отключения. Две новые прошивки и ПП!... Приветствую уважаемых читателей нашего журнала! По результатам эксплуатации устройства, описанного...
Схема на Датагоре. Новая статья Анатомия микроконтроллеров ATmega - 3. Прерывания.... Итак, наши светодиоды мигают, но мы не можем никак повлиять на программу, давайте добавим в схему...
Схема на Датагоре. Новая статья Миниатюрный вольтметр на семисегментном LED индикаторе и PIC16F684... Привет читателям Датагора! Мне удалось собрать вольтметр минимальных размеров с посегментной...
Схема на Датагоре. Новая статья Термометр + термостат на микроконтроллере PIC16F876 и датчиках DS18B20... История этого термометра началась в далёком 2011 году. Мне понадобилось в подвале частного дома, в...
 

Комментарии, вопросы, ответы, дополнения, отзывы

 

<
Читатель Датагора

Datagor

<
Читатель Датагора

Dust112

<
Читатель Датагора

dvkhorzov1976

<
Читатель Датагора

alx32

Добавить комментарий, вопрос, отзыв 💬

Камрады, будьте дружелюбны, соблюдайте правила!

  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги
 
 
В начало | Зарегистрироваться | Заказать наши киты почтой