Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
5.3.2. Семисегментные индикаторы
Многие микропроцессорные устройства требуют вывода информации в символах десятичной или шестнадцатеричной системы счисления. Наиболее подходящим индикатором для этого является светодиодный семисегментный индикатор. Внешний вид семисегментного индикатора показан на рис. 5.7,в. Каждый сегмент индикатора — это светодиод, вмонтированный в пластмассовый корпус с поверхностью рассеивания света в виде того или иного сегмента. Сегменты именуются стандартным способом, латинскими буквами от a до g. Комбинация светящихся сегментов образует цифру, или букву. Например, чтобы высветить цифру 1, необходимо зажечь сегменты b и c, цифру 2 — сегменты a, b, d, e, g, букву F — сегменты a, e, f, g. Подключение семисегментного индикатора к выходам порта МК показано на рис. 5.7,в. В схеме для усиления по току использованы не отдельные логические элементы, а специальная буферная ИС 74ALS244. Ток в цепи светодиодов каждого сегмента ограничивают резисторы сопротивлением 100
5.3.3. Индикаторы для логического выхода с тремя состояниями
В этом параграфе мы рассмотрим схему отображения для восьми линий порта с тремя состояниями. Сначала напомним читателю, как работают выходные логические буферы с тремя состояниями.
Выходной логический буфер с тремя состояниями может формировать на выходе напряжение высокого уровня, которое соответствует логической 1, напряжение низкого уровня, которое соответствует логическому 0, и может находиться в так называемом третьем состоянии или иначе «Z» состоянии, которое характеризуется очень высоким выходным сопротивлением (рис. 5.8.). Это сопротивление столь велико, что можно считать, что внутренние цепи логического элемента отсоединены от соответствующего вывода корпуса этого элемента. Это свойство буферов с тремя состояниями позволяет подсоединять к одному электрическому проводнику печатной платы сразу несколько выводов ИС.
Вход разрешения работы | Вход | Выход |
---|---|---|
L | L | Z |
L | H | Z |
H | L | L |
H | H | H |
Рис. 5.8. Логические элементы с тремя состояниями на выходе
Такое решение используется при подключении к магистралям микропроцессорной системы различных ИС внешней памяти. В каждый момент времени МК ведет обмен только с одной ИС памяти. Он активизирует работу этой ИС установкой в 0 сигнала выбора кристалла
Рис. 5.9. Функциональная схема 8 индикаторов для выходов с тремя состояниями
Вернемся к рассмотрению схемы индикации. Она представлена на рис. 5.9. Индикатор каждого разряда состоит из двух светодиодов: зеленого и красного. Если на выходе порта PORTx[i] формируется высокий логический уровень сигнала, то благодаря усилителю с большим коэффициентом усиления, который выполнен на операционном усилителе LM324, открывается транзистор 2N2907. Для зеленого светодиода создается прямое смещение напряжения и путь для протекания тока. В результате, зеленый светодиод светится и информирует пользователя о наличии высокого логического уровня на соответствующем выходе. Если на выходе порта PORTx[i] формируется низкий логический уровень сигнала, то открывается транзистор 2N2222, и светится красный светодиод. Если же выход порта PORTx[i] установлен в третье состояние, то пути для протекания токов светодиодов нет, они оба погашены.
5.4. Программное обслуживание дискретных входов и выходов
Для написания программного кода предположим, что входы порта PORTA подключены к блоку DIP переключателей, а выходы порта PORTB — к 8-разрядному светодиодному индикатору по схеме рис. 5.9. Необходимо считать байт данных с порта PORTA и вывести этот байт данных на порт PORTB.
5.5. Подавление механического дребезга контактов переключателей
Ранее, в параграфе 5.2, Вы познакомились с различными типами механических переключателей. Переключатели обладают двумя устойчивыми состояниями, в которых замыкаются или размыкаются электрические контакты. Включенный по схеме рис. 5.4,а переключатель обеспечивает высокий логический уровень сигнала на входе МК, если пара его контактов разомкнута. В нажатом состоянии контакты замыкаются, и на входе МК формируется напряжение низкого логического уровня.
Идеальный переключатель изменяет состояние контактов с разомкнутого на замкнутое и наоборот моментально, так, что на входе МК переключение между двумя уровнями логических сигналов происходит за время, которое стремится к нулю.
Однако реальные переключатели ведут себя иначе. Так при нажатии клавиши рис. 5.4,а контакты многократно замыкаются и размыкаются, пока не окажутся в установившемся замкнутом состоянии. Это явление называется механическим дребезгом переключателя. Микроконтроллеры работают на частотах в несколько МГц, что остаточно для того, чтобы зафиксировать многократное изменение состояния переключателя во время дребезга. Однако реакция программы управления на каждое переключение во время дребезга было бы ошибкой. Поэтому следует применять специальные методы подавления эффекта механического дребезга. Различают аппаратные и программные способы подавления дребезга контактов. Мы рассмотрим несколько вариантов для каждого из этих способов.
5.5.1. Аппаратная защита от механического дребезга контактов
На рис. 5.10 представлена схема, которая осуществляет защиту от дребезга механических переключателей [Horowitz и Hill, 1989]. Основным элементом этой схемы является триггер Шмитта (74HC14).
Триггер Шмита отличается от других логических элементов, во-первых, тем, что на его входы можно подавать аналоговые сигналы. И если для обычного логического элемента время изменения входного сигнала из состояния 0 в состояние 1 должно составлять всего несколько наносекунд, то для триггера Шмитта это время может быть любым, в том числе несколько десятков или сотен миллисекунд, которые потребуются нам для устранения дребезга контактов. Во-вторых, передаточная характеристика триггера Шмитта обладает гистерезисом: уровень входного напряжения, при котором выход триггера переключается из 0 в 1, превышает уровень напряжения переключения из 1 в 0 примерно на 0,5…0,8 В. Эффект гистерезиса позволяет подавить звон входного сигнала. Незначительные по амплитуде высокочастотные колебания, наложенные на монотонно изменяющуюся постоянную составляющую входного сигнала, не будут приводить к многократному изменению выходного сигнала, поскольку абсолютная величина входного сигнала окажется внутри петли гистерезиса.
Рассмотрим работу схемы подавления дребезга контактов переключателя. При разомкнутых контактах напряжение конденсатора равно VCC, на выходе триггера Шмита формируется низкий логический уровень, поскольку все триггеры Шмитта в интегральном исполнении инвертируют входной сигнал. Если клавишу только что нажали, то конденсатор начинает разряжаться через резистор и замкнутые контакты переключателя. Время его разряда определяется постоянной времени RC. Для приведенных на рис. 5.10,a номиналов постоянная времени равна 47 мс. Напряжение на конденсаторе будет убывать немонотонно, поскольку на интервале дребезга контакты то замкнутся, то разомкнутся. В соответствии с их положением конденсатор то разряжается, то заряжается. Но большая постоянная времени цепей разряда и заряда не позволяет напряжению на конденсаторе измениться во время дребезга столь сильно, чтобы произошло переключение триггера Шмитта. И лишь когда дребезг закончится и произойдет длительное замыкание контактов переключателя, конденсатор разрядится до нуля, и на выходе триггера Шмитта установится высокий логический уровень. При размыкании контактов переключателя процесс будет происходить в обратном порядке. Эффект подавления дребезга в рассмотренной схеме будет наблюдаться только тогда, когда постоянная времени цепей разряда и заряда конденсатора будет сравнима с длительностью самого эффекта механического дребезга. Для маломощных переключателей его длительность измеряется единицами и десятками мс, поэтому в нашем примере номиналы резисторов и конденсатора выбраны правильно.
Если Вы желаете иметь на выходе цепи подавления дребезга инверсную логику, то следует использовать дополнительный инвертор (рис. 5.10,б). Тогда при разомкнутом переключателе на выходе инвертора будет низкий логический уровень, а при замкнутом — высокий.
5.5.2. Программная защита от механического дребезга контактов
Существует несколько методов программной защиты от эффекта дребезга механических контактов. Мы кратко остановимся на двух наиболее часто используемых: