|
|
  |
Динамическая индикация |
|
|
|
Nov 23 2010, 17:58
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 19-11-10
Пользователь №: 61 024

|
Пытаюсь реализовать вывод 4 семисегментных индикатора. Использую сдвиговый регистр 74HC164 и транзисторные ключи. Номиналы резисторов на базах 1 кОм. Моделирую в протеусе, не работает. Проблема в транзисторном ключе, он открыт независимо от того, есть ли ток на базе. Семисегментный индикатор с общим катодом. Микроконтроллер ATtiny2313. Файл проекта прилагается. Схема:
Прикрепленные файлы
7seg.zip ( 16.88 килобайт )
Кол-во скачиваний: 41
|
|
|
|
|
Nov 23 2010, 19:43
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 19-11-10
Пользователь №: 61 024

|
Добавил тестовую прошивку. Пишем в регистр единичку и циклично сдвигаем ее. Должны гореть все сегменты старшей цифры. Но горят все цифры.
Прикрепленные файлы
7seg.zip ( 29.76 килобайт )
Кол-во скачиваний: 50
|
|
|
|
|
Nov 24 2010, 16:34
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 19-11-10
Пользователь №: 61 024

|
Цитата(Marian @ Nov 24 2010, 17:04)  Для отладки, 1,2,3,4 выводы индикатора подтяните через резисторы 1 ком к +5В Дальше сами все поймете Спасибо, теперь работает.
|
|
|
|
|
Dec 17 2010, 09:45
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 19-11-10
Пользователь №: 61 024

|
Собрал схему с учетом поправки. Однако в реальности девайс работает некорректно. Переключения между разрядами работают, все в порядке. Глюк в работе регистра сдвига. Дело в том, что при подаче разных значений на линию данных в результате получаю мусор.
Опишу работу устройства.
Если последовательно подать на линию данных, например, 8 единиц, то результат корректный. Сегменты индикатора загораются в правильной последовательности.
Если же производить изменение уровня на линии данных, то есть, к примеру, подать 3 единицы и 4 нуля, то сначала зажигаются 3 ожидаемых сегмента, а потом начинается непонятное мне действие. Отключаются ранее включенные сегменты, причем не все. Загораются следующие сегменты, правда тоже не все. Но уровень на ножках A и B регистра низкий! При последующих включениях устройства такая последовательность действий повторяется точно в таком же порядке.
В чем может быть дело? Дело в регистре или я что-то неправильно делаю?
|
|
|
|
|
Dec 17 2010, 10:59
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 19-11-10
Пользователь №: 61 024

|
Все, теперь понятно. Я неправильно понимал работу регистра.
|
|
|
|
|
Dec 17 2010, 11:32
|

Частый гость
 
Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618

|
Цитата(ClipArt @ Nov 24 2010, 22:34)  Спасибо, теперь работает. В реальной схеме этих резисторов можете не ставить. Это особенности протеуса.
|
|
|
|
|
Dec 18 2010, 02:08
|
Вечный студент
   
Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262

|
Цитата(MrYuran @ Dec 17 2010, 16:20)  Если тактовая частота на входе С будет достаточно большой, вы не заметите этих морганий и увидите только конечную комбинацию. Очень даже заметим, особенно в темноте (это будет выглядеть как тусклое свечение сегментов, которые не должны гореть) Цитата(MrYuran @ Dec 17 2010, 16:20)  А вообще лучше на время "проталкивания" отключать выходы, для этого 1 на входы разрешения (1 и 2, которые по "и") нужно подавать единицу, только когда уже всё устаканится 1 и 2 это не входы разрешения, а входы данных, у 164-го нет входа разрешения. На время проталкивания нужно закрывать все транзисторы
Сообщение отредактировал Diusha - Dec 18 2010, 02:48
|
|
|
|
|
Dec 18 2010, 07:46
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 19-11-10
Пользователь №: 61 024

|
Цитата На время проталкивания нужно закрывать все транзисторы Видимо это решит проблему тусклого свечения выключенных сегментов? Надо попробовать, спасибо за хорошую мысль.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|