Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт
Шрифт:
Интервал:
Закладка:
key = '8'; /*нажата клавиша "8"*/
break;
case 0xDB:
key = '9'; /*нажата клавиша "9"*/
break;
case 0xBB:
key = 'A'; /*нажата клавиша "A"*/
break;
case 0x7B:
key = 'B'; /*нажата клавиша "B"*/
break;
case 0xE7:
key = 'C'; /*нажата клавиша "C"*/
break;
case 0xD7:
key = 'D'; /*нажата клавиша "D"*/
break;
case 0xB7:
key = 'E'; /*нажата клавиша "E"*/
break;
case 0x77:
key = 'F'; /*нажата клавиша "F"*/
break;
default:
key = 'Z';
} /*конец распознавание кода клавиши*/
return(key);
}
/*----------------------------------------------------------*/
Представленный программный код не является полностью завершенной рабочей программой, поскольку в нем отсутствуют элементы защиты от дребезга контактов, отсутствует текст функции вывода символов на ЖК дисплей. Мы исправим эти недостатки несколько позже, в разделе 5.6.
5.3. Устройства индикации: светодиоды, семисегментные индикаторы, индикаторы логического выхода с тремя состояниями
В этом параграфе мы научимся подключать различные типы светодиодных индикаторов к выходам микроконтроллера. Основываясь на полученных ранее сведениях об электрических характеристиках светодиода видимого спектра излучения, мы рассмотрим, как подключить к МК линейку из восьми светодиодов и семисегментный индикатор. Далее мы обсудим, проблемы сопряжения с семисегментным индикатором больших размеров. Завершим параграф рассмотрением оригинальной схемы индикации состояния типичных для микропроцессорной техники выходных логических буферов с тремя состояниями.
5.3.1. Светодиоды
В процессе наладки любой микропроцессорной системы крайне удобно использовать светодиоды для индикации состояния тех или иных логических выходов. Светодиод имеет два вывода: анод (+) и катод (–). Для того, чтобы светодиод излучал, напряжение между анодом и катодом должно быть положительным. Светодиоды характеризуются двумя основными параметрами: рабочим током и напряжением прямого смещения. Типичные значения рабочих токов светодиодов лежат в диапазоне от 10 до 15 мА, при этом прямое падение напряжения составляет 1,5 В.
а) Подключение светодиода
б) Подключение «линейки» из восьми светодиодов
в) Подключение семисегментного индикатора
Рис. 5.7. Примеры схем подключения светодиодных индикаторов к МК
На рис. 5.7,a показана схема подключения светодиода к выводу МК. В параграфе 5.1.2 мы убедились в невозможности подключения светодиода непосредственно к выводу МК. Выходные буферы МК не способны обеспечить величины тока светодиода, достаточной для свечения с приемлемой для человеческого глаза яркостью. Поэтому в приведенной схеме использован буферный элемент 7404. При выборе буферного элемента следует убедиться, что максимальное значение выходного тока нуля IOL этого элемента не ниже номинального значения прямого тока светодиода 10…15 мА. Так для выбранной модели элемента 7404 максимальное значение выходного тока логического нуля составляет 16 мА.
В схеме рис. 5.7,a логический элемент должен обязательно быть с инверсией на выходе. Тогда если выход МК в состоянии логической 1, выход элемента в 0, по цепи светодиода протекает ток, и светодиод светится. Наоборот, если на выходе МК логический 0, выход логического элемента в 1, и светодиод погашен. Для правильной работы схемы напряжение VCC должно обязательно превышать напряжение прямого смещения светодиода 1,5 В. Для выбранного значения VCC подбирается резистор R, величина которого ограничивает ток светодиода. Выбирая величину VCC отличной от напряжения питания МК, необходимо помнить, что, если в цепи светодиода ток отсутствует, то напряжение VCC прикладывается к выходному буферу логического элемента. Для обычных логических элементов это напряжение не превышает 5,0 В, а для элементов с повышенным коллекторным напряжением — 15 В.
Пример. Определите величину сопротивления резистора R на рис. 5.7,а. Предположите, что прямой ток светодиода должен быть равным 15 мА.
Решение. Падение напряжения на резисторе R в цепи рис. 5.7,а составляет:
VR = VCC – VD – VOL = 5,0 – 1,5 – 0,4 = 3,1 В
Тогда величина сопротивления резистора определяется неравенством:
R ≥ VR / ID = 3,1 В/15 мА = 206 Ом.
Выбираем ближайший к расчетному значению номинал резистора 220 Ом.
Очень часто разработчик желает индицировать состояние всех линий какого-либо порта. Для этой цели удобно использовать так называемые линейки светодиодов, которые подобно DIP переключателям сгруппированы по 8 и смонтированы в корпусе, который размещается на посадочное место для DIP. Схема подключения такой линейки светодиодов показана на рис. 5.7,б. С точки зрения конструктивного исполнения для такой схемы целесообразно использовать резисторную сборку, что и отражено на рис. 5.7,б.
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 сигнала выбора кристалла . Все остальные ИС памяти в этот момент времени находятся в неактивном состоянии, буферы их линий данных пребывают в «Z» состоянии с высоким выходным сопротивлением. Таким образом, эти ИС в данный момент времени как бы отсоединены от линий магистрали данных и не мешают обмену данными МК с единственной активизированной ИС памяти. В другой момент времени положение дел изменится. В активное состояние будет переведена другая схема памяти, в то время как выходные буферы первой ИС будут переведены в «Z» состояние, и эта ИС как бы выключится из работы. Но при этом не следует забывать, что все неактивизированные ИС памяти находятся под питанием и надежно хранят ранее записанную в них информацию.