Примеры с сайта AVR+ Electronics - AVR и регистр сдвига 74HC164.
Зміст статті
AVR и регистр сдвига 74HC164.
Сегодня поговорим о регистрах сдвига (shift registr) на примере 74HC164. Бывают ситуации, когда у МК не хватает свободных портов, особенно если в устройстве используется светодиодная индикация, тогда и можно использовать регистр сдвига. Да, они широко используются и в бытовой аппаратуре для работы с дисплеем. Немного теории… Из управляющих входов у нас есть: DATA, RESET, CLK ,а на выходе мы получаем 8-выходов. Немного о назначение входов. О пине RESET – сброс установленных значений на выходе, обычно не используется, так как занимает лишний пин у МК. Он должен всегда быть поднятым, для этого подрубаем его к Vcc, а сбрасывать значение будем посылкой 8бит лог.1 О пине CLK – этим пином продвигаем значение по регистру. DATA – собственно сами данные о значение следующего выхода. Плавно подходим к заполнению регистра. Для заполнения регистра выполняем такую последовательность:
1. выдаём первый старший бит из пачки на линию DATA
2. опускаем в лог. 0 линию CLC
3. поднимаем в лог.1 линию CLC
4. повторяем все пункты с 1, пока не выдадим все биты.
Для сброса, просто запускаем новые 8бит данных. Для наглядности можно собрать это всё в Proteus и потыкать кнопочками. Думаю теории хватит, перейдём к практике. Для наглядного примера я собрал такой девайс на Тини13, который выводит числа от 0 до 99 на 2х разрядном 7-ми сегментном LED дисплее. Так как Тини13 сам зажечь дисплей не сможет, поставил я ему в помощь 74HC164.
Вот схема:
На программе останавливаться не буду, так как в исходниках всё предельно ясно. Исходники на Си. Скачать можно тут ain.zip (исходный код, прошивка, proteus).
Вот собственно и всё, надеюсь кому-то пригодиться.
|