Организация портов ввода-вывода микроконтроллера 8051. Устройство портов. Альтернативные функции портов.


Базовая архитектура микроконтроллера 8051 содержит четыре параллельных порта ввода/вывода - P0 - P3. Они адресуются как регистры специальных функций и имеют фиксированные адреса в памяти данных микроконтроллера .Разрядность портов - 8 с возможностью побитной адресации разрядов. Направление обмена информацией через порты - все порты двунаправленные, причем имеется возможность в каждом порту часть разрядов использовать для ввода данных, а часть для вывода.

Альтернативные функции.Из-за ограниченного количества выводов корпуса интегральной микросхемы микроконтроллера, большинство выводов используется для выполнения двух функций - в качестве линий портов и для альтернативных функций.

Порты P0 и Р2используются при обращении к внешней памяти. При этом на выходах порта P0 младший байт адреса внешней памяти мультиплексируется с вводимым/выводимым байтом. Выходы порта Р2 содержат старший байт адреса внешней памяти, если адрес 16-разрядный. При использовании восьмиразрядного адреса портом Р2 можно пользоваться для ввода/вывода информации обычным образом. При обращении к внешней памяти в P0 автоматически заносятся единицы во все биты. Информация в разрядах порта Р2 при этом остается неизменной.

Порт P3помимо обычного ввода и вывода информации используется для формирования и приема специальных управляющих и информационных сигналов. Разряды порта (все или частично) при этом могут выполнять альтернативные функции. Альтернативные функции порта Р3 указаны в таблице 2.3.

Таблица 2.3 – Альтернативные функции порта Р3

Вывод порта Альтернативная функция
РЗ.0 RXD - вход последовательного порта
Р3.1 TXD - выход последовательного порта
РЗ.2 INT0 - внешнее прерывание 0
Р3.3 INT1 - внешнее прерывание 1
РЗ.4 Т0 - вход таймера-счетчика 0
РЗ.5 Т1 - вход таймера-счетчика 1
РЗ.6 WR - строб записи во внешнюю память данных
РЗ.7 RD - строб чтения из внешней памяти данных

Альтернативные функции могут быть активированы только в том случае, если в соответствующие биты порта P3 предварительно занесены «1». Неиспользуемые альтернативным образом разряды могут работать как обычно. Каждый из портов содержит регистр-защелку (SFR P0 — SFR P3), выходную цепь и входной буфер.

25 Таймеры-счетчики микроконтроллеров семейства 8051: регистр режима работы, регистр управления-статуса. Режимы работы таймеров-счетчиков.

В базовых моделях семейства 8051 имеются два программируемых 16-битных таймера/счетчика (T/C0 и T/C1), которые могут быть использованы как в качестве таймеров, так и в качестве счетчиков внешних событий. В первом случае содержимое соответствующего таймера/счетчика (далее для краткости Т/С) инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов колебаний кварцевого резонатора, во втором оно инкрементируется под воздействием перехода из «1» в «0» внешнего входного сигнала, подаваемого на соответствующий (T0,T1) вывод микроконтроллера 8051. Для управления режимами работы Т/С и для организации их взаимодействия с системой прерываний используются два регистра специальных функций (TMOD и TCON), описание которых приведено в таблицах 2.4, 2.5.

Так как на распознавание периода требуются два машинных цикла, максимальная частота подсчета входных сигналов равна 1/24 частоты резонатора. На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входной сигнал должен удерживать значение 1, как минимум, в течение одного машинного цикла микроконтроллера.

Четыре различных режима работы реконфигурируют структуру таймера для выполнения разнообразных задач. В этой структуре TLn и ТНn представляют 8 младших и 8 старших разрядов каждого таймера, где n – его номер (например, TL0 – младший 8-разрядный регистр таймера 0).

Источником синхросигналов, переключающих таймер, могут быть тактовые импульсы, частота которых уменьшается при помощи делителя, или внешний сигнал. Выбор источника определяется битом С/Т в регистре TMOD таймера. Биты выбора режима в регистре TMOD определяют режим работы таймера.

Таблица 2.4 - Регистр режима работы таймера/счетчика TMOD

Символ Позиция Имя и назначение
GATE TMOD.7 для Т/С1; TMOD.3 для Т/СО Управление блокировкой. Если бит установлен, то таймер /счет-чик "x" разрешен до тех пор, пока на входе "lNTx" высокий уровень и бит управления "TRx" установлен. Если бит сброшен, то Т/С разрешается, как только бит управления "TRx" устанавливается
С/Т TMOD.6 для T/C1; TMOD.2 для Т/СО Бит выбора режима таймера или счетчика событий. Если бит сброшен, то работает таймер от внутреннего источника сигналов синхронизации. Если; установлен, то работает счетчик от внешних сигналов на входе "Tx"
M1 TMOD.5 для T/C1; TMOD.1 для Т/СО Режим работы
M1 M0  
Таймер ВЕ48. "TLx" работает как 5-битный предделитель
16 битный таймер/счетчик. "THx" и "TLx" включен последовательно
8-битный авто перезагружаемый таймер/счетчик. "THx" хранит значение, которое должно быть перезагружено в "TLx" каждый раз по переполнению
Таймер/счетчик 1 останавливается. Таймер/счетчик 0: TLO работает как 8-битный таймер/счетчик, и его режим определяется управляющими битами таймера 0. TH0 работает только как 8 битный таймер, и его режим определяется управляющими битами таймера 1

 

M0 TMOD.4 для Т/С1 и TMOD.0 для Т/СО

Таблица 2.5 - Регистр управления/статуса таймера TCON

Символ Позиция Имя и назначение
TF1 TCON.7 Флаг переполнения таймера 1. Устанавливается аппаратно при переполнении таймера/счетчика. Сбрасывается при обслуживании прерывания аппаратно
TR1 TCON.6 Бит управления таймера 1. Устанавливается, / сбрасывается программой для пуска/останова
TF0 TCON.5 Флаг переполнения таймера 0. Устанавливается аппаратурно. Сбрасывается при обслуживании прерывания
TR0 TCON.4 Бит управления таймера 0. Устанавливается / сбрасывается программой для пуска/останова таймера/счетчика
IE1 TCON.3 Флаг фронта прерывания 1. Устанавливается аппаратно, когда детектируется срез внешнего сигнала INT1. Сбрасывается при обслуживании прерывания
IT1 TCON.2 Бит управления типом прерывания 1. Устанавливается / сбрасывается программно для спецификации запроса INT1 (срез/низкий уровень)
IE0 TCON.1 Флаг фронта прерывания 0. Устанавливается по срезу сигнала INT0. Сбрасывается при обслуживании прерывания
IT1 TCON .0 Бит управления типом прерывания 0. Устанавливается / сбрасывается программно для спецификации запроса INT0 (срез/низкий уровень)

В режиме 0 таймер конфигурируется как 13-разрядный счетчик, перепол­нение которого фиксируется по возникновению переноса из разряда 4 регистра TLn. В режиме 1 таймер работает как 16-разрядный счетчик.

Режим 2 обычно используется для задания скорости обмена встроенного последовательного порта. Для счета используется только счетчик TLn. Когда содержимое этого счетчика превышает OFFh, то в него загружается значение, которое содержится в регистре ТНп, и счет возобновляется. Последовательный порт может использовать сигнал переполнения, чтобы задать скорость обмена.

В режиме 3 регистры TL0 и ТНО работают как два независимых таймера. Этот режим обеспечивается только в таймером 0, так как для его реализации требуются как внешний так и внутренний синхросигналы, а таймер 1 не может переключаться внешним сигналом. Таймер ТНО переключается внешними сигналами, a TL0 — внутренними тактовыми импульсами. Режим 3 может применяться для реализации тахометра, когда счетчик ТНО определяет количество событий (например, оборотов вала), a TL0 — промежуток времени, в течение которого они произошли.