Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






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




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

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

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

Выводы порта Р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.3.2 Таймер-счетчик Т/С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.

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

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

 

               
TF1 TR1 TF0 TR0        
а)
               
GATE С/Т M1 М0 GATE С/Т M1 М0
Т/С1 Т/С0
б)
а) регистр TCON.7 – 4; б) регистр TMOD Рисунок 1.9 – Схемы распределения разрядов в регистрах TCON и TMOD

 

При 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 не формируется.

1.3.3 Таймер-счетчик Т/С1

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

В состав таймера-счетчика Т/С1 входят два восьмиразрядных регистра TL1 и ТН1. Работой таймера-счетчика T/C1 управляют разряды регистра специальных функций TCON (TCON.7,6) и разряды регистра специальных функций TMOD (TMOD.7-4) (см. рисунок 1.9).

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

При M1,М0=0,0 (режим 0) таймер-счетчик ведет счет по модулю 213. Данный режим полностью аналогичен режиму 0 для таймера-счетчика Т/С0.

При М1,М0=0,1 (режим 1) ттаймер-счетчик ведет счет по модулю 216. Данный режим полностью аналогичен режиму 0 для таймера-счетчика Т/С0.

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

При М1,М0=1,1 таймер-счетчик Т/С1 остановлен.

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

При TMOD.7=GATE = 0 счет ведется при единичном состоянии разряда TCON.6 = TR1. При TR1 =0 счет остановлен.

При TMOD.7=GATE=1 счет ведется при единичном состоянии разряда TCON.6=TR1 и единичном значении сигнала INT1 на входе Р3.3. При TR1=0 или INT1=0 счет остановлен.

При переполнении счетчика устанавливается в единичное состояние разряд TCON.7=TF1 и в контроллер прерываний поступает запрос от таймера-счетчика Т/С1. Сброс разряда TCON.7=TF1 в нулевое состояние выполняется автоматически при переходе к выполнению соответствующей прерывающей программы.

Таймер-счетчик Т/С1 используется в качестве генератора синхросигнала при работе последовательного порта (SP). Частота прерываний в таймере-счетчике Т/С1 определяет скорость передачи и приема битов в последовательном порте. При работе в качестве генератора синхросигнала таймер-счетчик Т/С1 должен находиться в режиме 2 (счет по модулю 2 с автоперезагрузкой). Скорость передачи определяется числом, которое записано в регистр ТН1.

При работе таймера-счетчика Т/С0 в режиме 3 разряды регистров TCON.6=TR1 и TCON.7=TF1 используются в таймере-счетчике Т/С0. Таймер-счетчик Т/С1 в этом случае может использоваться в качестве генератора синхросигнала для последовательного порта.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных