Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASSEMBLER / MK8051.doc
Скачиваний:
243
Добавлен:
16.04.2015
Размер:
1.8 Mб
Скачать

А. Для всех команд, кроме movx; в. Для команды movx

2.10. Параллельные порты

2.10.1. Параллельные порты предназначены для ввода/вывода цифровых данных в параллельном коде. Микроконтроллеры подсемейства 80C51 имеют 4 параллельных порта, альтернативные функции которых приведены в табл. 2.5.

Все четыре порта являются двунаправленными. Отдельные разряды портов может быть использован независимо для ввода и вывода информации.

Каждый портов состоит из регистра-защелки (регистры P0P3), выходного драйвера (управляющего каскада) и входного буфера. Для того, чтобы какая-либо линия порта могла быть использована для ввода данных, в соответствующий разряд регистра-защелки этого порта должна быть записана 1.

2.10.2. Порты Р0 и Р2 используются микроконтроллером при обращении к внешней памяти. Порт Р0 служит для вывода младшего байта адреса, а также для ввода/вывода байта данных в режиме временного мультиплексирования. Порт Р2 служит для вывода старшего байта адреса, если длина адреса равна 16 бит (при выполнении команды MOVXA,@DPTR). В том случае, когда при обращении к внешней памяти данных формируется 8-битный адрес (при выполнении командыMOVXA,@Ri), порт Р2 используется по своему прямому назначению–через него выводится содержимое регистра-защелки Р2.

2.10.3. Порт Р3 является многофункциональным. Каждый разряд этого порта выполняет какую-либо альтернативную функцию (см. табл. 2.6). Разрешение альтернативных функций осуществляется путем записи 1 в соответствующие разряды регистра-защелки порта.

2.10.4. По сигналу RSTв регистры-защелки всех портов записывается числоFFH, разрешая тем самым все альтернативные функции и устанавливая для всех портов режим ввода данных.

2.11. Таймеры/счетчики

2.11.1. В структуре всех микроконтроллеров семейства MCS-51 есть два программируемых 16-битных таймера/счетчика (Т/С0 и Т/С1), каждый из которых может работать или в режиме таймера или в режиме счетчика внешних событий.

Таблица 2.6

Альтернативные функции портов p0, p2 и p3 мк 80с51

Обозначение

Разряд

Наименование и назначение

A0/D0

P0.0

Разряд 0 шины адреса/данных.

A1/D1

P0.1

Разряд 1 шины адреса/данных

A2/D2

P0.2

Разряд 2 шины адреса/данных

A3/D3

P0.3

Разряд 3 шины адреса/данных

A4/D4

P0.4

Разряд 4 шины адреса/данных.

A5/D5

P0.5

Разряд 5 шины адреса/данных.

A6/D6

P0.6

Разряд 6 шины адреса/данных.

A7/D7

P0.7

Разряд 7 шины адреса/данных.

A8

P2.0

Разряд 8 шины адреса

A9

P2.1

Разряд 9 шины адреса

A10

P2.2

Разряд 10 шины адреса

A11

P2.3

Разряд 11 шины адреса

A12

P2.4

Разряд 12 шины адреса

A13

P2.5

Разряд 13 шины адреса

A14

P2.6

Разряд 14 шины адреса

A15

P2.7

Разряд 15 шины адреса

RXD

P3.0

Вход приемника последовательного порта в режиме UART. Ввод/вывод данных в синхронном режиме

TXD

P3.1

Выход передатчика последовательного порта в режиме UART. Выход синхронизации в синхронном режиме

INT0’

P3.2

Вход запроса прерывания 0. Активным является сигнал низкого уровня (логический 0) или перепад 1  0

INT1’

P3.3

Вход запроса прерывания 1. Активным является сигнал низкого уровня (логический 0) или перепад 1  0

T0

P3.4

Вход таймера/счетчика 0

T1

P3.5

Вход таймера/счетчика 1

WR’

P3.6

Выход “ЗАПИСЬ”. Активный сигнал низкого уровня формируется при обращении к внешней памяти данных

RD’

P3.7

Выход “ЧТЕНИЕ”. Активный сигнал низкого уровня формируется при обращении к внешней памяти данных

В режиме таймера (т.е. счетчика времени) содержимое счетчика инкрементируется в каждом машинном цикле. В режиме счета внешних событий содержимое счетчика инкрементируется под воздействием перехода из 1 в 0 внешнего логического сигнала, поступающего на соответствующий вход микроконтроллера.

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

2.11.3. Для управления работой таймеров/счетчиков и организации взаимодействия таймеров/счетчиков с системой прерываний используются два регистра специальных функций –регистр управления режимомTMOD(Timer/Counter Mode Control Register)и регистр управленияTCON(Timer/Counter Control Register), форматы которых приведены в табл. 2.7 и табл. 2.8, соответственно.

2.11.4. Выбор функционального назначения таймера/счетчика (“таймер” или “счетчик внешних событий”) осуществляется программированием бита C/T’ регистраTMOD(см. табл. 2.7).

2.11.5. Каждый таймер/счетчик (в дальнейшем таймер) имеет четыре режима работы, индивидуально программируемых с помощью битов M0 иM1 регистраTMOD(см. табл. 2.7). Выбранный режим определяет не только алгоритм работы таймера, но также и его внутреннюю структуру (рис. 2.11). Режимы 0, 1 и 2 одинаковы для обоих таймеров. В режиме 3 таймеры работают по-разному. Ниже рассмотрены все режимы работы таймеров на примере таймера 0.

2.11.6. В режиме 0таймер 0 представляет собой программно управляемый 13-разрядный двоичный счетчик импульсов, состоящий из 8-разрядного счетчикаTH0, вход которого подключен к выходу 5-разрядного делителя частотыTL0 (рис. 2.11, А). При переполнении счетчика (когда счетчик переходит из состояния “все единицы” в состояние “все нули”) таймер устанавливает флагTF0 (см. табл. 2.8).

Таблица 2.7

Соседние файлы в папке ASSEMBLER