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

 
 
 

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

📆04.12.11 🙋Discover 👀19 557 💬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 🕗 30/11/11 ⚖️ 203,59 Kb ⇣ 84
ml1001.pdf 🕗 30/11/11 ⚖️ 843,87 Kb ⇣ 71
tic55.pdf 🕗 30/11/11 ⚖️ 288,16 Kb ⇣ 84
tic3321.pdf 🕗 30/11/11 ⚖️ 203,02 Kb ⇣ 71

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

arhiv.zip 🕗 30/11/11 ⚖️ 199,35 Kb ⇣ 100

P.S.

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

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

Уже ближе к моменту размещения статьи на сайте, я подумал, что было бы не плохо заточить библиотеку и под CodeVisionAVR, а то получается что пользователи CodeVisionAVR остаются «за бортом». Вам останется только переопределить имя среды в заголовочном файле. Ну и конечно же, я приложил проект для CodeVisionAVR.
cvavr.zip 🕗 30/11/11 ⚖️ 165,83 Kb ⇣ 96

В общем, подумано – сделано, пользуйтесь на здоровье!!!
Иван Гаврилов (Discover)
Вологодская обл. Череповецкий р-н, п.Тоншалово
Профиль Discover
Дата рождения: 13.09.1977.
Работаю в компании "Нординкрафт" , электрик по совместительству в своем ТСЖ.
С паяльником с 12 лет.
Интересы: паяльник, работа, фото, лес.
C 2007г занимаюсь микроконтроллерами AVR.

Напаяно уже много чего, всего и не припомню.
 

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

Нравится

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

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

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

 

 

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

 

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

Общаемся по статье 💬

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

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

 

<

Datagor

Игорь Котов Читатель Датагора
  • Главный редактор
Комментарий # 1 от 04-12-11, 9:20.
Ответить
  • С нами с 26.02.2006
  • 2 220 комментариев
  • 274 публикации
 
Уважаемый Иван, спасибо за отличный почин и полезное предложение!
По вашей идее создан подраздел "Библиотеки кодов" в разделе "Микроконтроллеры".

Если предполагаете регулярно публиковаться - готов создать ваш авторский раздел/журнал.
Пишите в личку.

<

Dust112

Михаил Читатель Датагора
  • Кандидат
Комментарий # 2 от 04-12-11, 17:29.
Ответить
  • С нами с 22.05.2011
  • 14 комментариев
  • 1 публикация
 
Я сталкнуля с индикатором TIC-80, когда делал уличный термометр в корпусе от глюкометра. В нем используется этот же протокол обмена.

<

dvkhorzov1976

Дмитрий Читатель Датагора
  • Гражданин
Комментарий # 3 от 05-12-11, 17:54.
Ответить
  • С нами с 20.03.2009
  • 15 комментариев
  • 0 публикаций
 
Как говорится, сон в руку!Только начал разрабатывать устройство и отверг индикатор TIC-80 из-за того, что не хотелось долго "заморачиваться" с протоколом обмена.Теперь изменю свое мнение. Спасибо, Иван, хороша, полезная статья!

<

alx32

Александр Читатель Датагора
  • Гражданин
Комментарий # 4 от 06-10-13, 10:12.
Ответить
  • С нами с 26.06.2008
  • 35 комментариев
  • 8 публикаций
 
Я как-то заморачивался с индикатором TIC8148, насколько я знаю это аналог TIC55, только побольше, и функцию вывода присобачил на ассемблере. Правда сделал массив данных: 8 байт - коды символов + 1 байт - боложение точки (или точек) + 1 байт - положение галочки (или галочек), положение точек и галочек задавалось побитно.
P.S. Правда это всё на avr-gcc.

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

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


Налетай! Паяльники, станции, жала с доставкой

Офигенная миниатюрная рация на литии BaoFeng UV-5R, 5W, 5-15 км!

Тестер универсальный LCR-TC1 для транзисторов, конденсаторов, ESR, MOSFET и т.д.
  • smilelolhellowinkscepticthumbupbored
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashpartyhandshake
    musicnegativenowordspardonshoksleepunknown
    wackoyawnsainthelmethashsmokingwhew


Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.