Оглавление:

Секундомер с использованием Pic18f4520 в Proteus с 7 сегментами: 6 шагов
Секундомер с использованием Pic18f4520 в Proteus с 7 сегментами: 6 шагов

Видео: Секундомер с использованием Pic18f4520 в Proteus с 7 сегментами: 6 шагов

Видео: Секундомер с использованием Pic18f4520 в Proteus с 7 сегментами: 6 шагов
Видео: Управление семисегментным индикатором 2024, Ноябрь
Anonim
Секундомер с использованием Pic18f4520 в Proteus с 7 сегментами
Секундомер с использованием Pic18f4520 в Proteus с 7 сегментами

Я только начал работать с контроллером pic, один мой друг попросил меня собрать из него секундомер. Так что у меня нет образа оборудования, которым можно поделиться, я написал код и смоделировал его в программе Proteus.

здесь я поделился схемой того же самого.

определены три переменных миллисекунды, секунды, минуты

здесь мы использовали прерывание по таймеру на 10 мс, на каждые 1000 миллисекунд переменная секунд будет увеличиваться, каждые 60 секунд переменная минут будет увеличиваться.

Шаг 1: необходимые вещи

1 контроллер pic18f4520

2 семисегментных дисплея

3 транзистора bc547

4 переключателя для запуска / остановки / сброса

5 резисторов 330Е, 10К, 1К

6 загрузите mikroC для pic

7 скачать Proteus

Шаг 2: логика кода и отображение

Кодовая логика и отображение
Кодовая логика и отображение
Кодовая логика и отображение
Кодовая логика и отображение

Что такое семисегментный дисплей? Семисегментный дисплей (SSD) - один из самых распространенных, дешевых и простых в использовании дисплеев. Это похоже на выше.

здесь мы должны использовать 7-сегментный дисплей с общим катодом - в SSD с общим катодом клемма –ve всех светодиодов обычно подключается к контакту «COM». Сегмент может загореться, когда соответствующему сегменту светодиода присвоена «1», а земля подключена к общему проводу. Внутреннее устройство показано на рисунке 2.

Шаг 3: отображение дисплея с микроконтроллером

Дисплей вождения с микроконтроллером
Дисплей вождения с микроконтроллером

В своей схеме я использовал транзистор NPN BC547.

Для простого использования BJT в качестве переключателя переходы эмиттер-коллектор замыкаются при наличии входного сигнала на клемме базы, в противном случае он остается отключенным. Вход должен быть подан через подходящий резистор.

Шаг 4: Почему мультиплексирование?

Часто нам нужно использовать два, три или более SSD, и это тоже с использованием только одного MCU, но одна проблема, с которой мы сталкиваемся, - это отсутствие контактов ввода-вывода в MCU, так как один SSD занимает 8 контактов, и, следовательно, три SSD. взял бы 24 пина. На рис.18 у нас всего 48 контактов ввода / вывода. Итак, какое решение?

Одна из возможностей состоит в том, что мы используем более крупный MCU с большим количеством контактов ввода / вывода. Но тогда мы по-прежнему ограничены максимум 3 твердотельными накопителями, которые можно использовать. Еще одно гораздо лучшее и рекомендуемое решение этой проблемы - мультиплексирование семи сегментных дисплеев.

В Википедии говорится: «В телекоммуникационных и компьютерных сетях мультиплексирование (также известное как мультиплексирование) - это метод, с помощью которого несколько сигналов аналоговых сообщений или потоков цифровых данных объединяются в один сигнал на общей среде. Цель состоит в том, чтобы поделиться дорогостоящим ресурсом. «Под мультиплексированием семисегментного дисплея мы подразумеваем то, что мы будем использовать только 7 выходных портов для отображения на всех твердотельных накопителях.

Шаг 5: как этого добиться?

Здесь мы будем использовать «Постоянство видения». Теперь вы должны иметь через этот термин уже раньше. Да, это тот же метод, который используется в кинематографии (отображение изображений так быстро, что наш мозг не может различить задержку между двумя последовательными изображениями). Точно так же, когда мы объединяем более одного SSD, мы отображаем только один SSD за раз и переключаемся между ними так быстро, что наш мозг не может их различить.

Допустим, каждый дисплей активен только 5 миллисекунд за раз, то есть он загорается 1 / 0,0045 раза в секунду, что примерно равно 222 раз в секунду. Наши глаза не могут почувствовать изменения так быстро, и поэтому мы видим, что все дисплеи работают одновременно. Что на самом деле происходит в аппаратном обеспечении, так это то, что микроконтроллер выдает «1» на вывод (помните, предоставление «1» на базу BJT закорачивает коллектор и эмиттерный переход?), Который подключен к базе транзистора. соответствующих дисплеев, удерживает порт в состоянии «ВКЛ» в течение 5 миллисекунд, а затем снова выключает его. Эта процедура выполняется в бесконечном цикле, так что мы видим дисплей непрерывно.

Шаг 6: алгоритм мультиплексирования

Алгоритм мультиплексирования
Алгоритм мультиплексирования

Определите два порта в коде, один для порта данных сегмента и порта управления сегментом.

Хитрость здесь в том, что вы отображаете данные по всем 7 сегментам. и активируйте один контрольный пин, на котором вы должны отображать эти данные. изменить данные и штифт управления переключением передач.

здесь, в этом руководстве, мы использовали 6-значное мультиплексирование, просто просмотрите прикрепленный файл c, и вы очистите его.

Рекомендуемые: