Динамическая индикация 9 разрядного индикатора по последоват

Всем привет.
Попался мне вот этот 9 разрядный семисегментный индикатор с последовательной шиной, выполненный на двух микросхемах 74HC595D. Индикатор стоял в телефоне с АОН русь 27, до того как по нем прошлась гроза, да так что, восстановлению телефон не подлежал, индикатору тоже досталось, сгорели все 2 микрухи.
Проверить индикатор вообще оказалось просто. При рабочих микросхемах и поданном питании, если докоснуться к линиям данных, на индикаторе бегает всякая ерунда(при условии что линии висят в воздухе). Индикатор с динамической индикацией, то есть для отображения информации последовательно зажигаем каждую цифру на определенное время, например на 2 милисекунды. Сложностей с ним почти нет, если не учитывать что выходов у 74HC595D восемь, а цифр на индикаторе девять. Девятая цифра подключена к выводу Q7' последовательный выход данных. Какие выводы и для чего они нужны, читайте в DATASHEET на микросхему.
Здесь я просто расскажу как я решил проблему вывода 8 и 9 цифры. Работать с этими микросхемами просто. Для того чтобы загрузить данные, устанавливаем бит данных на выводе DS serial data input, и сдвигаем (загружаем) положительным импульсом SHcp shift register clock input. Для сохранения и вывода данных в регистре подаем положительный импульс на STcp storage register clock input. Неувязка получается при выводе 8 и 9 цифры. Индикатор здесь с общим катодом, чтобы включить, например 4 цифру, нужно загрузить число 0b11110111, при этом на выходе Q7' будет сдвинутое значение из Q6, в данном случае 1, то что нужно. Значение Q6 по положительному импульсу SHcp сдвигается в Q7'. При выводе восьмой цифры ноль сдвигается в Q7 и Q7' (Q7'=1 0b10111111 Q7'=0 0b01111111), в итоге у нас включены 8 и 9 разряд, импульсом STcp сохраняем и выводим это значение, теперь если дать импульс SHcp копейка из Q6 переместится в Q7', 9 разряд потушен! По программе импульсы STcp и SHcp идут синхронно. Для включения 9 разряда нужно загрузить число 0b11111111, вывести его импульсом STcp, затем загружаем в регистр нули до тех пор, пока ноль из Q6 не переместится в Q7'.
Может быть все это можно сделать проще. Вот у меня индикатор заработал и я на этом успокоился. Сейчас он работает в часах. Хочу сказать об одном маленьком минусе. В часах есть возможность регулировки яркости индикатора. Период включения каждой цифры 2 ms. Что бы уменьшить яркость индикатора цифру можно включать например на 1 ms, оставшиеся время она будет потушена. При этом яркость свечения снижается. Если пользоваться таким способом, то из за того что 9 разряд (Q7') самый нагруженный, на низкой яркости индикатора яркость девятой цифры чуть меньше. Про исходник. Сразу предупреждаю программист я никакой, поэтому просьба не ругать. А вот файлы для PROTEUS.
Вопросы складываем тут.






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.