Динамическая индикация 9 разрядного индикатора по последовательной шине.
Автор:
Всем привет. Проверить индикатор вообще оказалось просто. При рабочих микросхемах и поданном питании, если докоснуться к линиям данных, на индикаторе бегает всякая ерунда(при условии что линии висят в воздухе). Индикатор с динамической индикацией, то есть для отображения информации последовательно зажигаем каждую цифру на определенное время, например на 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. Вопросы складываем тут.
Эти статьи вам тоже могут пригодиться: |
|
|||||||||||||||
|
||||