Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры v3.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
3.6 Mб
Скачать

13. Таймер/счётчик 2. Режимы работы.

Начиная с i8052. 16-разрядный.

Режимы:

- захвата событий;

- автозагрузки;

- использование как генератора для последовательного ввода/вывода;

- генератора тактовых сигналов.

Режим захвата событий.

Режим м.б. таймера или счетчика (от внешнего тактового генератора). У порта Р1 некоторые биты переопределены (раньше у порта Р3).

TF2 м.б. обработан по прерыванию.

- детектор событий, определяет перепад от 1 к 0.

RCAP2H и L – регистры захвата старшего и младшего байтов.

При захвате события текущее значение регистров ТН, ТL перепишется в регистр захвата. Во время дальнейшего счета содержимое RCAP2 надо быстро переписать в память. При поступлении нового события содержимое регистров TH, TL перепишется в регистр захвата.

EXEN2 – разрешает режим работы захвата.

EXF2 – обработчик прерывания по самому событию.

Нужны доп. регистры спец. функций: T2CON, T2COM, TH2, TL2, RCAP2H, RCAP2L.

Перезапускаемый режим.

1 . Традиционный - накапливающий тайм/счетч: RCAP2 используется для записи начального значения, с которого начинается счет.

2. Вычитающий: работает верхний вентиль, загружается 0FFh, вычитается до значения из RCAP2.

Как генератор послед. ввода/вывода.

1. Скорость: V = fт/(32*(65536-K)) K=(RCAP2H, RCAP2L)

V = fт/12/(32*(256-K)), Для V=1200 K=13 - для таймера 1. Работает быстрее

14. Организация прерываний в омэвм51.

5 уровней прерываний: 3 внутр (2 таймера T0,T1;UART), 2 внешних (INT0, INT1)

Для настройки прерываний исп. регистр:

Регистр управления:

При переполнении биты TF равны 1. Их можно опросить программным способом. Чтобы разрешать или запрещать прерывания нужен регистр IE.

Разряды IE1(0) регистра TCON служат для запоминания прерываний от внешних сигналов.

Биты IT1(0) – в них указывается управление внешними прерываниями. Если IТ=1, то обработка идет по спадающему фронту, если 0, то по уровню.

Р егистр разрешения прерываний (побитно доступен) IE

Назначение разрядов IE:

7. EA- Запретить все прерывания (ставим 0);

4. ES- разрешения прерываний от UART;

  1. ET1- разрешения прерываний по переполнению таймера 1;

  1. EX1 – разрешения прерываний для внешнего прерывания INT1;

  1. ET0- разрешения прерываний по переполнению таймера 0;

0. EX0 – разрешения прерываний для внешнего прерывания INT0.

Регистр приоритетов прерываний IP:

Е сли все нули, то приоритет выставляется по стрелке. 1 - наивысший приоритет. При включении IE и IP выставляются в 0.

0ой бит IP – внеш. 0, 1ый – Т0, 2ой – внеш. 1, 3ий – Т1, 4ый – UART.

Обработка внутренних прерываний

При переполнения таймера возникает сигнал переполнения TF1,TF0. Если переполнения от таймеров разрешены, наступает обработка. При этом 1-ая команда обработчика от таймеров сбрасывает биты TF.

Ф ормат регистра SCON (используется для обработки прерываний от последовательного ввода/вывода)

Для UART исп. биты RI,TI (от RECEIVE , TRANSMIT). Поднимаются при приеме/передача байта. Сброс осуществляет программист.

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

За каждым прерыванием закрепляется вектор.

Внешний 0 (INT0) – 0003h , Внутренний 0 (T0) – 000Bh

Внешний 1 (INT1) – 0013h, Внутренний 1 (T1) – 001Bh

Внутренний (UART) – 0023h

На обработчик отводим 8 байт – явно мало, поэтому надо перейти на свой обработчик. Для перехода на обработчик используется jmp, call.

JMP:

Org 0003h

jmp prog1

Prog1:

Reti

CALL:

Org 0003h

call prog1

Reti

Prog1:

Ret

После того, как пришел сигнал прерывания, пройдет время до завершения текущей команды + время на переход к обработчику. Наличие прерывания определяется в конце МЦ - S5P2, потом в след цикле прерывание.

Миним время – через 38 тактов = 2+24+12 выполним 1-ую команду обраб-ка. Худш результат 2+12+24+48=86, если команда более длинная (MUL,DIV)

Пример программы для обработки бита TF по прерыванию.

MOV TMOD, #01h

MOV TH0, #high(65536-50000)

MOV TL0, #low(65536-50000)

MOV IE, #10000010B

SETB TR0 ;запуск таймера

JMP $

по адресу 000Вh Call clock

Reti

Clock: Mov TH0,#

Mov TL0, # …. RET

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]