Avr динамическая индикация схема

avr динамическая индикация схема
Конечно же, там должен быть ноль. Но для МК – это логическая единица, что станет ясно из схемы ниже. Функция управления индикацией Блок-схема показана на рис. 5. Данная функция вызывается процедурой Flashing Reset, функцией “setrtc” и процедурой сервисных функций и предназначена для сканирования клавиатуры и динамического управления индикатором. Соответственно здесь у нас кольцо рвётся, так как подключать вход контроллера MISO с цифрового выхода верхней микросхемы мы не будем за ненадобностью такого мониторинга. То есть, первым делом мы будем посылать байт для катодов, а затем без задержки — байт для анодов. После этого инкрементируется номер текущего столбца матрицы, который будет использован в функции при следующем обращении. Выбор такой элементной базы обусловлен широкой доступностью и желанием минимизировать размеры печатной платы.


Кроме того, матричную схему легко модифицировать для считывания состояния кнопок. После ознакомления с AVR ассемблером я переполз на Си. После знакомства с архитектурой и основными принципами, решил собрать что-то полезное и интересное. Задержка была всего в пару микросекунд, но МК работает быстро и это оказалось существенным :)UPD2: Прошивка для светофора (исходник на ASM и скомпилированный код) лежит здесь. Процедура использует счетчик дребезга “bounce”, который инкрементируется каждые 5 мс в фоновой процедуре для исключения влияния эффекта дребезга контактов. Для защиты входа МК применен транзистор со стабилитроном в цепи базы (см. схему на Рисунке 5). Далее коснемся непосредственно алгоритма работы индикатора.

Ради научного интереса попробовал связку AVR Studio + eXtreme Burner в Windows. Замечания В схеме можно использовать микросхемы в любых корпусах и транзисторы любых подходящих типов. Смена активной цифры производиться по прерыванию от переполнения таймера 0. А функция convert_data(int x) раскладывает число х по разрядам, и записывает соответствующие коды в массив data, данные из которого выводятся непосредственно на индикатор, при срабатывание прерывания. Блок-схема показана на рисунке 3. Инкрементирование секунд производится в процедуре обслуживания запроса на прерывание, а в основном цикле значение секунд сравнивается с 60. Если текущее значение равно 60, то инкрементируется значение минут, а счетчик секунд сбрасывается в ноль. После беглого просмотра даташитов, я остановился на ATmega16 в корпусе TQFP, который нашелся у меня в коробке.Все, что нам нужно — подключить семисегментник в режиме динамической индикации, две кнопки для установки часов и минут и организовать часы.Чуть не забыл! Тема микроконтроллеров меня заинтересовала очень давно, году этак в 2001. Но тогда достать программатор по месту жительства оказалось проблематично, а о покупке через Интернет и речи не было.

Похожие записи: