Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Динамическая индикация
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
ClipArt
Пытаюсь реализовать вывод 4 семисегментных индикатора. Использую сдвиговый регистр 74HC164 и транзисторные ключи. Номиналы резисторов на базах 1 кОм.

Моделирую в протеусе, не работает. Проблема в транзисторном ключе, он открыт независимо от того, есть ли ток на базе.

Семисегментный индикатор с общим катодом.

Микроконтроллер ATtiny2313. Файл проекта прилагается.

Схема:
Glupen'
ну так в зипе только DSN, а прошивки нет... sad.gif
И ток не "НА БАЗЕ", а "втекает в базу".
ClipArt
Добавил тестовую прошивку. Пишем в регистр единичку и циклично сдвигаем ее. Должны гореть все сегменты старшей цифры. Но горят все цифры.
Marian
Для отладки, 1,2,3,4 выводы индикатора подтяните через резисторы 1 ком к +5В
Дальше сами все поймете
ClipArt
Цитата(Marian @ Nov 24 2010, 17:04) *
Для отладки, 1,2,3,4 выводы индикатора подтяните через резисторы 1 ком к +5В
Дальше сами все поймете


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

Опишу работу устройства.

Если последовательно подать на линию данных, например, 8 единиц, то результат корректный. Сегменты индикатора загораются в правильной последовательности.

Если же производить изменение уровня на линии данных, то есть, к примеру, подать 3 единицы и 4 нуля, то сначала зажигаются 3 ожидаемых сегмента, а потом начинается непонятное мне действие. Отключаются ранее включенные сегменты, причем не все. Загораются следующие сегменты, правда тоже не все. Но уровень на ножках A и B регистра низкий! При последующих включениях устройства такая последовательность действий повторяется точно в таком же порядке.

В чем может быть дело? Дело в регистре или я что-то неправильно делаю?
MrYuran
Ваша комбинация нулей и единиц продвигается от начала регистра к концу.
Если тактовая частота на входе С будет достаточно большой, вы не заметите этих морганий и увидите только конечную комбинацию.
А вообще лучше на время "проталкивания" отключать выходы, для этого 1 на входы разрешения (1 и 2, которые по "и") нужно подавать единицу, только когда уже всё устаканится
ClipArt
Все, теперь понятно. Я неправильно понимал работу регистра.
Marian
Цитата(ClipArt @ Nov 24 2010, 22:34) *
Спасибо, теперь работает.

В реальной схеме этих резисторов можете не ставить. Это особенности протеуса.
Diusha
Цитата(MrYuran @ Dec 17 2010, 16:20) *
Если тактовая частота на входе С будет достаточно большой, вы не заметите этих морганий и увидите только конечную комбинацию.

Очень даже заметим, особенно в темноте (это будет выглядеть как тусклое свечение сегментов, которые не должны гореть)

Цитата(MrYuran @ Dec 17 2010, 16:20) *
А вообще лучше на время "проталкивания" отключать выходы, для этого 1 на входы разрешения (1 и 2, которые по "и") нужно подавать единицу, только когда уже всё устаканится

1 и 2 это не входы разрешения, а входы данных, у 164-го нет входа разрешения.
На время проталкивания нужно закрывать все транзисторы
ClipArt
Цитата
На время проталкивания нужно закрывать все транзисторы


Видимо это решит проблему тусклого свечения выключенных сегментов? Надо попробовать, спасибо за хорошую мысль.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.