Разделы

В сети

Пользователей: 232
Из них просматривают:
Аналоги: 88. Даташиты: 86. Инструкции: 2. Новости: 12. Остальное: 9. Производители: 3. Профиль пользователя: 2. Расчёты: 1. Форум: 29.
Участников: 2
Гостей: 230

Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.

Подключение кнопки и светодиода к одному порту микроконтроллера

Написал MACTEP 08.03.2012 19:20:00 (Просмотров: 13851)

Во многих случаях число выводов предполагаемого к использованию в разработке микроконтроллера оказывается недостаточным для раздельного подключения к нему всех необходимых внешних цепей. Применение же микроконтроллера с большим числом выводов приводит к удорожанию и увеличению размеров устройства. Но многие порты микроконтроллеров обладают свойством двунаправленности. Воспользовавшись этим, можно объединять на них устройства как ввода (например, кнопки управления), так и индикации (например, светодиоды). Это даст возможность применить микроконтроллер с меньшим числом выводов.



 

порт микроконтроллера

 

Возможная схема такого объединения показана на рисунке. Используемый вывод порта микроконтроллера, работая большую часть времени в режиме "Выход", управляет светодиодами HL1 и HL2. Подключённая к нему же цепь выключателя SA1, независимо от его положения, мало влияет на выходное напряжение на выводе порта и не изменяет состояния светодиодов Чтобы определить положение этого выключателя, микроконтроллер временно переводит вывод порта в режим "Вход" и подключает к нему свой внутренний резистор, соединяющий этот вывод с плюсом питания.

 

Когда выключатель SA1 разомкнут, ток внутреннего резистора создаёт на цепи R2,HL1,HL2 падение напряжения более 3 В, что соответствует высокому логическому уровню. Чтобы увеличить это напряжение (иногда оно оказывается недостаточным), можно заменить один или оба светодиода красного свечения светодиодами зелёного свечения, прямое падение напряжения на которых больше. Выполнив операцию ввода и обнаружив лог 1 в соответствующем разряде регистра используемого порта, микроконтроллер предпримет действия, соответствующие разомкнутому выключателю.
Если выключатель SA1 замкнут, ток внутреннего резистора создаст на резисторе R1 падение напряжения не более 1,5 В. При таком напряжении заметный ток через светодиоды HL1 и HL2 не течёт, и они не влияют на работу узла. При считывании порта в соответствующий разряд его регистра будет занесён лог 0, что послужит признаком замкнутого выключателя SA1. Определив положение выключателя, микроконтроллер возвращает используемый вывод порта в режим "Выход".
Поскольку интервал времени, необходимый для описанных операций, получается очень коротким, возможное мигание светодиодов при их выполнении остаётся совершенно незаметным наблюдающему. Видимое состояние светодиодов всегда определяется только логическим состоянием выходного буфера порта.

   cbi  DDRB,0           ;перевести РВО в режим "вход"
   sbi  PORTB,0          ;подключить внутренний резистор
   ldi  r18,200          ;задержка на переходной процесс
                         ;(75 мкс с кварцем на 8 МГц)
delayPP:
   dec  rl8
   brne delayPP
   sbis PINB,0           ;пропустить при 1 на входе РВО,
   ori  REJIM,0bl0000000 ;иначе установить режим
   cbi  PORTB,0          ;отключить внутренний резистор
   sbi  DDRB,0           ;перевести РВО в режим "выход"

 

 Выше приведён фрагмент программы на языке ассемблера для микроконтроллеров семейства AVR, в котором определяется состояние выключателя, соединённого по рассмотренной схеме с выводом порта РВО микроконтроллера. После переключения вывода в режим "Вход" выдерживается пауза длительностью 75 мкс, необходимая для завершения переходных процессов. Если выключатель замкнут, в старший разряд регистра REJIM будет записана единица.

А. МИХАЙЛОВ, г. Алматы, Казахстан

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.

Разное

Интересно

При замене радиодетали освободить отверстие от припоя можно заострённой спичкой.

Похожие статьи