Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по АТ89С51 изд.вариант 2010-54.doc
Скачиваний:
86
Добавлен:
19.11.2019
Размер:
865.22 Кб
Скачать
    1. Периферийные устройства микроконтроллера

В группу периферийных устройств микроконтроллеров типа Х51 входят следующие периферийные устройства:

  1. параллельный порт ввода-вывода P0;

  2. параллельный порт ввода-вывода P1;

  3. параллельный порт ввода-вывода P2;

  4. параллельный порт ввода-вывода P3;

  5. таймер-счётчик T/C0;

  6. таймер-счётчик T/C1;

  7. последовательный порт (SP);

  8. контроллер прерываний (IC).

      1. Параллельные порты ввода-вывода

Параллельные порты ввода-вывода предназначены для приема, выдачи байтов данных. Отдельные разряды портов могут быть использованы независимо друг от друга для приема и выдачи битов.

Порты P0 и P2 могут использоваться для подключения внешней памяти (см. п. 1.2.1).

Параллельный порт ввода-вывода Р3, кроме функций по приему и выдаче байтов и битов, выполняет альтернативные функции.

Выводы порта Р3.0 и Р3.1 при работе последовательного порта являются входом приемника (RXD) и выходом передатчика (TXD) соответственно.

Выводы порта Р3.2 и Р3.3 используются для приема сигналов запросов прерывания от внешних источников (INT0 и INT1 соответственно).

Выводы порта Р3.4 и Р3.5 используются для приема внешних сигналов Т0 и Т1, поступающих в таймеры-счетчики Т/СО и Т/С1 соответственно при работе в режиме счета внешних событий.

Выводы Р3.6 и Р3.7 при подключении к микроконтроллеру внешней памяти данных (ERAM) используются для выдачи сигналов записи (WR) и чтения (RD) соответственно (см. п. 1.2.1).

      1. Таймер-счетчик т/с0

Таймер-счетчик Т/С0 ведет счет импульсов, поступающих от внутреннего источника с частотой Fosc/12 (счет времени) или со входа Т0 (Р3.4) (счет внешних событий). Событием является отрицательный перепад сигнала. Счет может вестись по модулю 28, 213 или 216. При переполнении счетчика (счет ведется на увеличение) формируется запрос прерывания, поступающий в контроллер прерываний. Счет продолжается без остановки.

В состав таймера-счетчика Т/С0 входят два восьмиразрядных регистра TL0 и ТН0. Работой таймера-счетчика Т/С0 управляют разряды регистров специальных функций TCON (TCON.7–4) и ТМОD (TMOD.3–0). Схемы распределения разрядов в регистрах TCON и ТМОD представлены на рисунке 1.9.

7

6

5

4

3

2

1

0

TF1

TR1

TF0

TR0

а)

7

6

5

4

3

2

1

0

GATE

С/Т

M1

М0

GATE

С/Т

M1

М0

Т/С1

Т/С0

б)

а) регистр TCON.7 – 4; б) регистр TMOD

Рисунок 1.9 – Схемы распределения разрядов в регистрах TCON и TMOD

Таймер-счетчик Т/С0 может работать в четырех режимах. Выбор режима определяется комбинацией состояний разрядов TMOD.1, TMOD.0=M1, M0.

При M1,М0=0,0 (режим 0) таймер-счетчик ведет счет по модулю 213 (т.е. максимальное число для счета 213). При этом используются оба регистра ТН0 и TL0 (ТН0 старший в паре регистров).

При M1, М0=0,1 (режим 1) счет ведется по модулю 216. При M1,М0=1,0 (режим 2) счет ведется по модулю 28, который хранится в регистре TL0. ТН0 используется в качестве регистра памяти. Код, хранящийся в этом регистре, загружается в регистр TL0 при каждом его переполнении (автоперезагрузка регистра TL0).

В режимах 0, 1, 2 на счетный вход счетчика поступает внутренний сигнал с частотой Fosc/12 (при TMOD.2=С/Т=0) или внешний сигнал, поступающий на вход Р3.4 (при TMOD.2=С/Т=1).

При TMOD.3=GATE=0 счет ведется при единичном состоянии разряда TCON.4=TR0. При TR0=0 счет остановлен.

При TMOD.3=GATE=1 счет ведется при единичном состоянии разряда TCON.4=TR0 и единичном значении сигнала INT0 на входе Р3.2. При нулевом состоянии разряда TR0 или нулевом значении сигнала INT0 счет остановлен.

При переполнении счетчика устанавливается в единичное состояние разряд TCON.5=TF0 и в контроллер прерываний поступает запрос прерывания от таймера-счетчика Т/С0.

Сброс разряда TCON.5=TF0 в нулевое состояние выполняется автоматически при переходе к выполнению соответствующей прерывающей программы.

В режиме 3 (M1,М0=1,1) регистры TL0 и ТН0 работают независимо и каждый ведет счет по модулю 28.

На вход счетчика с регистром TL0 в зависимости от значения разряда TMOD.2=С/Т поступает или внутренний сигнал с частотой Fosc/12 (при С/Т=0), или внешний сигнал с входа Р3.4 (при С/Т=1). На вход счетчика с регистром ТН0 поступает внутренний сигнал с частотой Fosc/12.

Счетчик с регистром TL0 ведет счет при TCON.4=TR0=1 (при TMOD.3=GATE=0) или при ТР0=1 и INT0=1 (при GATE=1), а счетчик с регистром ТН0 – при TCON.6=TR1=1.

При переполнении регистра TL0 устанавливается в единичное состояние разряд TCON.5=TF0 и в контроллер прерываний поступает запрос прерывания TF0. При переполнении регистра ТН0 в единичное состояние устанавливается разряд TCON.7=TF1. Разряды TF0 и TF1 сбрасываются в нулевое состояние при переходе к выполнению соответствующих прерывающих программ.

Запрос прерывания TF1 в таймере-счетчике Т/С0 в режиме 3 не формируется.