Внутренняя схема порта построена таким образом, чтобы максимально упростить подключение внешних устройств к микроконтроллеру. Например, умощняющий внешний транзистор может быть подключен непосредственно базой к выводу микроконтроллера без дополнительного токоограничивающего резистора, как показано на рис. 6.3. Это становится возможным благодаря внутреннему генератору тока.
Значение сигнала непосредственно с внешнего вывода порта считывается по сигналу «чтение вывода». Однако при выполнении операций с отдельными битами требуется считывать содержимое внутреннего регистра-защелки порта. Если база биполярного транзистора непосредственно подключена к выводу порта, то считывание значения логической 1 с вывода порта становится невозможным. Дело в том, что напряжение на
Чтение внешних выводов порта РЗ осуществляется командами:
MOV А, РЗ ;Скопировать состояние выводов порта РЗ в аккумулятор
JB P3.4, Metka ;Если на выводе 4 порта РЗ логическая 1, то перейти на метку Metka
Чтение регистра-защелки осуществляется командами чтение-чтение-модификация-запись. Например:
CPL Р3. 1 ;Проинвертировать сигнал на выводе 1 порта РЗ
ORL Р2, #56h ;Установить единичный сигнал на выводах 1, 2, 4 и 6 порта Р2
ANL Р3, #03h ;Установить нулевой сигнал на выводах 0 и 1 порта РЗ
SETB Р3. 1 ;Установить высокий потенциал на выводе 1 порта РЗ
Порты микросхемы служат для управления внешними устройствами, подключенными к микроконтроллеру. Схема подключения простейших внешних устройств приведена на рис. 6.3. Он иллюстрирует особенности подключения светодиодных индикаторов к параллельным портам микроконтроллера MCS-51.
Присутствие в схеме порта выходного мощного транзистора позволяет подключать к выводам порта светодиодные индикаторы непосредственно, без усилителя мощности. Однако при этом необходимо следить за максимальной допустимой мощностью, рассеиваемой на микросхеме и отдельных выводах порта. Эквивалентная схема, на которой показан путь протекания выходного тока порта, приведена на рис. 6.4. Как видно из приведенной схемы именно выходной ток порта
Рис. 6.4.
Для умощнения выводов порта можно применить транзисторный ключ, показанный также на рис. 6.3. Эта же схема используется при низковольтном питании микроконтроллера. Напряжения 3,3 В недостаточно для получения стабильного и большого тока через светодиод. Обратите внимание, что база транзистора подключена непосредственно к выводу порта. Это стало возможным только благодаря использованию в схеме порта генератора тока в верхнем плече выходного каскада.
Если выходного тока порта достаточно для открывания транзисторного ключа, то резистор R2 не используется. Этот резистор подключают для увеличения тока базы транзисторного ключа. На максимальное значение этого тока накладываются те же ограничения, что и для непосредственного подключения светодиодного индикатора к выводам порта. Резистор R3 рассчитывается исходя из допустимого тока через светодиод VD2. При возможности выбора напряжения питания для светодиодов лучше выбрать более высокое напряжение. Это позволит обеспечить более равномерное свечение светодиодов, т. к. разброс параметров светодиодов будет оказывать меньшее влияние на разброс значений токов, протекающих через них.
Микроконтроллеры предназначены для управления внешними устройствами. Однако изменять напряжения на выводах параллельного порта микроконтроллера можно только при помощи программы, записанной в память программ. Какие напряжения необходимо подавать на выходы микросхемы, зависит от схемы подключения индикатора. В приведенной на рис. 6.3 схеме для зажигания светодиода VD1 в разряд 6 порта Р0 необходимо записать логический 0. Для зажигания светодиода VD2 необходимо в разряд 7 порта Р2 записать логическую единицу, а для его гашения — логический ноль.
Чтобы изменять потенциалы на выводах микросхемы, можно воспользоваться следующими командами с байтовой адресацией:
1. MOV (пересылка), например: