Организация портов ввода-вывода микроконтроллера 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 для Т/СО | Режим работы
| |||||||||||||||
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 — промежуток времени, в течение которого они произошли.