Форум закрыт для публикаций и работает только для чтения.
Отзывы о работе магазина и товарах просим оставлять на сайте интернет-магазина https://ekits.ru

Evolution - подключаем сегментный LCD дисплей TIC

Обсуждаем применение модулей Evolution. Делимся кодом. Учимся применять на практике. Читаем и смотрим уроки.
ekits_sales
Администратор
Сообщения: 265
Зарегистрирован: 10 май 2009, 13:11
Контактная информация:

Evolution - подключаем сегментный LCD дисплей TIC

Сообщение ekits_sales » 08 янв 2011, 19:43

Предлагаем вашему вниманию базовую библиотечку для подключения сегментых LCD дисплеев TIC с контроллером ML1001 (Описание контроллера ML1001 (PDF, англ.))
libml1001.zip
Библиотека libml1001
(1.79 КБ) 1268 скачиваний
с примером.
ML1001_atmega16.zip
Проект с примером использования libml1001
(8.32 КБ) 1317 скачиваний
Библиотека написана для дисплея TIC5231
Изображение
Библиотека подключается к проекту строкой +: libml1001.alg

Дисплей подключен к модулю Evolution по следующей схеме:
tic5231.gif
Схема включения TIC5231
tic5231.gif (5.22 КБ) 23271 просмотр
При подключении дисплея к другим выводам модуля Evolution необходимо задать другие значения в секции объявления имен битов для LCD_LOAD, LCD_DIN, LCD_DCLK
Соответственно, в самом проекте необходимо назначить эти биты порта на вывод командой #B00000111 -> DDRA
В начале работы нужно инициализировать библиотеку вызовом LCD_Init, которая заполняет массив используемых символов (в примере только цифры).
Значения выводимые на дисплей задаются в следующих переменных:
LCD_digit0 - первый символ
LCD_digit1 - второй символ
LCD_digit2 - третий символ
LCD_digit3 - четвертый символ
LCD_digit4 - пятый символ
LCD_digit5 - шестой символ (0 или 1)
LCD_dot0 - первая точка (0 или 1)
LCD_dot1 - вторая точка (0 или 1)
LCD_sign - знак минус (0 или 1)
LCD_ext - 40й-сегмент (0 или 1)
Символы задаются порядковым номером в массиве символов, в библиотеке на нулевой позиции символ 0, на первой позиции символ 1 и т.д., на 10й позиции - пустой символ.
Т.е. для отображения на дисплее первую цифру 5 необходимо присвоить LCD_digit0 значение 5
(При необходимости массив символов можно дополнить дополнительными символами. Значение закодировано в двоичном формате, где каждый бит соответствует своему сегменту. Например: цифра 5 кодируется как последовательность сегментов:S7,S6,S5,S4,S3,S2,S1 т.е. в двоичном формате - 1101110 или 110 в десятеричном)
Для отображения данных на дисплее вызывается LCD_Show.
LCD_Show сохраняет значения используемых в работе регистров и возвращает в конце работы в исходное состояние.
В примере цифры перемещаются по дисплею три круга, после чего включаются все сегменты дисплея.
В представленном в примере задан кристалл Atmega16 (проверена также работа с кристаллами Atmega32 и Atmega8535).
Библиотеку можно изменять, расширять и дополнять и использовать в своих проектах.
Ждем ваши комментарии и дополнения.

Alexander
Сообщения: 86
Зарегистрирован: 20 ноя 2010, 15:12
Контактная информация:

Re: Evolution - подключаем сегментный LCD дисплей TIC

Сообщение Alexander » 09 янв 2011, 23:55

Контроллер ML1001 - сдвиговый регистр. Такой же сдвиговый регистр, только с выходами на светодиод - MBI5026. Его можно подключить по приведенной схеме один к одному, распаяв выходы семисегментных индикаторов в том же порядке, что и у TIC (см. даташит) Правда, у него 16 выходов, а не 40, но при необходимости можно соединять их каскадно - вход Din последующего с Dout предыдущего, остальные выводы параллельно. Кстати, так же каскадно можно соединять и дисплеи TIC, чтобы управлять двумя дисплеями от одного микроконтроллера. Удобно делать на MBI5026 елочные гирлянды, подключив к его выходам отдельные светодиоды, но тут уже придется писать программу самостоятельно.
Последний раз редактировалось Alexander 03 мар 2011, 11:56, всего редактировалось 1 раз.

ekits_sales
Администратор
Сообщения: 265
Зарегистрирован: 10 май 2009, 13:11
Контактная информация:

Evolution - подключаем сегментный LCD дисплей TIC3321

Сообщение ekits_sales » 16 янв 2011, 20:05

Выкладываем библиотеку для работы с дисплеем TIC3321:
libTIC3321.zip
Библиотека для работы с дисплеем TIC3321
(1.62 КБ) 1064 скачивания
В библиотеке используемый массив символов отличается от предложенной для дисплея 5231, т.к. сегменты в них расположены по-другому.
В 5231 номера сегментов возрастают справа налево, в 3321 - с лева направо.
Изображение
Пример работы с библиотекой:
TIC3321.ZIP
Пример с дисплеем TIC3321
(7.94 КБ) 1202 скачивания
Подключается дисплей по схеме:
tic3321.gif
Схема подключения дисплея
tic3321.gif (4.81 КБ) 23207 просмотров

WolfTheGrey
Сообщения: 96
Зарегистрирован: 11 июн 2011, 01:35
Контактная информация:

Re: Evolution - подключаем сегментный LCD дисплей TIC

Сообщение WolfTheGrey » 15 июл 2011, 11:45

А напишите пожалуйста библиотеку для работы с дисплеем: TIC8148
то там не только сегменты и точки, но и галочки под каждым сигментом.

Vitalii
Сообщения: 674
Зарегистрирован: 03 фев 2011, 20:11
Откуда: Тюменская область
Контактная информация:

Re: Evolution - подключаем сегментный LCD дисплей TIC

Сообщение Vitalii » 18 июл 2011, 02:34

WolfTheGrey писал(а):А напишите пожалуйста библиотеку для работы с дисплеем: TIC8148
то там не только сегменты и точки, но и галочки под каждым сигментом.
Я как то, раз тоже захотел халявы в полный рост, :D очень уж хотелось девайсик один по быстренькому забубенить. :) Но мне тут же дали понять, что без труда не выловишь и библиотеку из … Хотя и сам полностью разделяю это мнение. ;) Вот цитата из ответа: - "на другого надейся, сам не оплошай" ;)
К сожалению, везде успеть не возможно, и написать библиотеки ко всей периферии которую можно подключить к модулям тоже задача нереальная. Да и такую задачу мы не ставим. Но мы стараемся помочь сделать первые шаги, показать основные принципы работы.
Мы надеемся что радиолюбители энтузиасты подхватят эту волну и продолжат делится своими наработками и помогут друг другу сделать все новые более сложные и интересные разработки. Напишите библиотеку, поделитесь с другими, и будет вам респект и уважуха
;)

Начало уже положено, дерзайте. ;) Это же не с ноля писать. :) Кто знает может и мне Ваша библиотека пригодится. :D

WolfTheGrey
Сообщения: 96
Зарегистрирован: 11 июн 2011, 01:35
Контактная информация:

Re: Evolution - подключаем сегментный LCD дисплей TIC

Сообщение WolfTheGrey » 01 окт 2011, 02:18

Взял за образец код работы дисплея: TIC 5231, и модифицировал его. Ну добавил символы, точки.... Как положено.
Только все равно ерунда какая та мельтешит на экране.
Эх понять бы как посегментно управлять этим дисплеем.
Вложения
ML1001 TIC 8148.zip
(9.82 КБ) 657 скачиваний

WolfTheGrey
Сообщения: 96
Зарегистрирован: 11 июн 2011, 01:35
Контактная информация:

Re: Evolution - подключаем сегментный LCD дисплей TIC

Сообщение WolfTheGrey » 02 окт 2011, 03:06

все, разобрался. вот код, который зажигает каждый сегмент:
Вложения
управление TIC 8148.jpg
управление TIC 8148 а.jpg

Alexl81
Сообщения: 997
Зарегистрирован: 10 окт 2010, 11:09
Откуда: Россия, Челябинская область.
Контактная информация:

Re: Evolution - подключаем сегментный LCD дисплей TIC

Сообщение Alexl81 » 17 янв 2012, 17:51

Здравствуйте. Хотел задать вопрос: Для заполнения всего TIC3321 сколь надо импульсов? 24 или как по даташиту написано 40?

dak
Сообщения: 22
Зарегистрирован: 12 сен 2012, 10:06
Откуда: г. Казань
Контактная информация:

Управляем индикатором TIC по одному проводу

Сообщение dak » 01 окт 2012, 17:51

При разработке устройства на ATtiny13 (модуль SEM0016M), как обычно, столкнулся с проблемой нехватки выводов для управления индикатором LCD. Поиск решения вывел на известный способ под названием «Управление семисегментными индикаторами по одному проводу», а на страничке http://we.easyelectronics.ru/part/indik ... tic33.html, в комментариях обнаружилось решение и для индикаторов семейства TIC. В предложенном решении мне не понравилась цепь сигнала LOAD и я её слегка модифицировал. Изменил также RC номиналы в цепи DIN. Мой вариант схемы на рис. 1.
Принцип управления индикатором по «однопроводному» интерфейсу хорошо понятен из осциллограммы на рис.2. Запись сигнала DI в сдвиговый регистр происходит по переднему фронту сигнала DCLK. Защёлкивание регистра и отображение информации происходит по переднему фронту сигнала LOAD. Постоянная времени R1C1 - 20 мкс, R2C2 – 1 мс. Поэтому между битами выдерживается пауза около 40 мкс. Сигнал LOAD генерируется автоматически после прекращения информационного потока (примерно через 500 мкс, когда напряжение на входе достигнет уровня логической единицы).
Несмотря на кажущуюся сложность, программный код (см. вложение), реализующий «однопроводный» интерфейс, оказался более компактным, чем традиционный, дёргающий отдельные сигналы.
Такой «однопроводный» интерфейс можно применить на всех индикаторах с контроллером ML1001. Для некоторых индикаторов, у которых отсутствует внутренний источник частоты регенерации (например, TIC33), придётся задействовать ещё один вывод микроконтроллера для подключения к входу LCLK. Частота регенерации должна лежать в диапазоне от 20 до 150 Гц (форма – меандр) и не обязана быть стабильной, поэтому для её синтезирования возможны всяческие программные извращения с использованием таймера или программных счётчиков.
Вложения
ATtiny13A-TIC5231-1W.gif
Рис. 1 Схема подключения индикатора TIC5231 к микроконтроллеру по одному проводу.
ATtiny13A-TIC5231-1W.gif (8.58 КБ) 17902 просмотра
TIC-1W.gif
Рис. 2 Осциллограммы напряжения на выводах индикатора.
TIC-1W.gif (11.99 КБ) 17902 просмотра
Test-TIC5231_1W.zip
Прошивка (АВ), реализующая "однопроводное" управление индикатором TIC5231
(7.84 КБ) 752 скачивания

Vitalii
Сообщения: 674
Зарегистрирован: 03 фев 2011, 20:11
Откуда: Тюменская область
Контактная информация:

Re: Evolution - подключаем сегментный LCD дисплей TIC

Сообщение Vitalii » 01 окт 2012, 19:42

Отличная работа и оригинальный ход. Спасибо, возьму на вооружение, может когда и пригодится. :)

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя