ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.03.2020
Просмотров: 850
Скачиваний: 4
— один из 4-х возможных режимов работы каждого Т/С;
— работу в качестве таймеров или счетчиков;
— управление Т/С от внешнего вывода.
Назначение разрядов регистра TMOD приведены в таблицах 3 и 4
Таблица 3. Регистр управления режимом работы таемера/счетчика.
|
Таймер 1 |
Таймер 0 |
||||||
|
GATE |
C/T |
M1 |
M0 |
GATE |
C/T |
M1 |
M0 |
|
Обозначение |
Описание |
|
GATE |
Когда TRx (в TCON) установлен и GATE = 1, таймер/счетчик запушен только до тех пор пока на входе МП INTx установлен высокий уровень напряжения (аппаратное управление). Если GATE = 0 таймер/счетчик запушен только до тех пор пока TRx=1 (программное управление). |
|
C/T |
Выбор таймера или счетчика. Сброшен для операций с таймером (вход с системных часов). Установлен для операций со счетчиком (Вход с выхода Tx). |
|
M1 |
Селектор режима |
|
M0 |
Селектор режима |
Таблица 4. Селекция режима
|
M1 |
M0 |
Режим Работы |
|
0 |
0 |
0 13-битный таймер. |
|
0 |
1 |
1 16-битный таймер/счетчик. |
|
1 |
0 |
2 8-битный авто-перегружаемый таймер/счетчик. |
|
1 |
1 |
3 Режим разделенного таймера. Регистр TL0 – содержимое 8-битного таймера/счетчика работающего под управление таймера 0, регистр TH0 – содержимое 8-битного таймера/счетчика работающего под управление таймера 1. |
|
1 |
1 |
3 (Таймер 1) таймер/счетчик 1 остановлен. |
При работе в качестве таймера содержимое регистра Т/С инкрементируется в каждом машинном цикле, т. е. Т/С является счетчиком машинных циклов ОМЭВМ. Поскольку машинный цикл состоит из 12 периодов частоты синхронизации ОМЭВМ то частота счета в данном случае равна fgQ/12.
При работе Т/С в качестве счетчика внешних событий содержимое регистра Т/С инкрементируется в ответ на переход из "1" в "0" сигнала на счетном входе ОМЭВМ. (вывод Т0 для Т/С 0 и вывод Т1 для Т/С 1). Счетные входы аппаратно проверяются в фазе S5P2 каждого машинного цикла. Когда проверки показывают высокий уровень на счетном входе в одном машинном цикле и низкий уровень в другом машинном цикле, регистр Т/С инкрементируется. Новое (инкрементированное) значение заносится в регистр Т/С в фазе S3P1 машинного цикла, непосредственно следующего за тем, в котором был обнаружен переход из "1м в "0" на счетном входе ОМЭВМ. Т. к. для распознавания такого перехода требуется два машинных цикла то максимальная частота счета Т/С в режиме счетчика равна fgQ/24.
Чтобы уровень сигнала на счетном входе был гарантировано зафиксирован, он должен оставаться неизменным в течение как минимум одного машинного цикла.
Регистр управления (TCON) предназначен для приема и хранения кода управляющего слова. Назначение разрядов регистра TCON приведено в таблице 5.
Флаги переполнения TF0 и TF1 устанавливаются аппаратно при переполнении соответствующих Т/С (переход Т/С из состояния "все единицы" в состояние "все нули"). Если при этом прерывание от соответствующего Т/С разрешено, то установка флага TF вызовет прерывание. Флаги TF0 и TF1 сбрасываются аппаратно при передаче управления программе обработки соответствующего прерывания.
Таблица 5. Регистр управления таемером/счетчиком.
|
TF1 |
TR1 |
TF0 |
TR0 |
IE1 |
IT1 |
IE0 |
IT0 |
|
Обозначение |
Адресация |
Описание |
|
TF1 |
TCON.7 |
Флаг переполнения таймера 1. Устанавливается аппаратно при переполнении таймера 1. Очищается аппаратно в случае обработки прерывания от переполнения таймера 1. |
|
TR1 |
TCON.6 |
Включение/отключение таймера 1. |
|
TF0 |
TCON.5 |
Флаг переполнения таймера 0. Устанавливается аппаратно при переполнении таймера 0. Очищается аппаратно в случае обработки прерывания от переполнения таймера 0. |
|
TR0 |
TCON.4 |
Включение/отключение таймера 0. |
|
IE1 |
TCON.3 |
Флаг фронта внешнего прерывания 1. Устанавливается аппаратно по обнаружению фронта внешнего прерывания. Очищается аппаратно в момент начала обработки прерывания. |
|
IT1 |
TCON.2 |
Флаг управления типом прерывания 1. |
|
IE0 |
TCON.1 |
Флаг фронта внешнего прерывания 0. Устанавливается аппаратно по обнаружению фронта внешнего прерывания. Очищается аппаратно в момент начала обработки прерывания. |
|
IT0 |
TCON.0 |
Флаг управления типом прерывания 0. |
Флаги TF0 и TF1 программно доступны и могут быть установлены/сброшены программой. Используя этот механизм, прерывания по TF0 и TF1 могут быть вызваны (установка TF) и отменены (сброс TF) программой.
Флаги IE0 и IE1 устанавливаются аппаратно от внешних прерываний (соответственно входы ОМЭВМ INT0 и INT1) или программно и инициируют вызов программы обработки соответствующего прерывания. Сброс этих флагов выполняется аппаратно при обслуживании прерывания только в том случае, когда прерывание было вызвано по фронту сигнала. Если прерывание было вызвано уровнем сигнала на входе INT0 (INT1), то сброс флага IE должна выполнять программа обслуживания прерывания, воздействуя на источник прерывания для снятия им запроса.
Схема инкремента предназначена:
— для, увеличения на 1 в каждом машинном цикле содержимого регистров Т/С 0, Т/С 1, для которых установлен режим таймера и счет разрешен;
— для увеличения на 1 содержимого регистров Т/С 0, Т/С 1, для которых установлен режим счетчика, счет разрешен и на соответствующем входе ОМЭВМ (Т0 для Т/С 0 и Т1 для Т/С 1) зафиксирован счетный импульс.
Схема фиксации INT0, INT1, Т0, Т1 представляет собой четыре триггера. В каждом машинном цикле в момент S5P2 в них запоминается информация с выводов ОМЭВМ INT0, INT1, Т0, Т1.
Схема управления флагами вырабатывает и снимает флаги переполнения Т/С и флаги запросов внешних прерываний.
Логика управления Т/С синхронизирует работу регистров Т/С 0 и Т/С 1 в соответствии с запрограммированными режимами работы и синхронизирует работу блока Т/С с работой ОМЭВМ.
Режимы работы Т/С
Режим работы каждого Т/С определяется значением битов М0, Ml в регистре TMOD. Т/С 0 и Т/С 1 имеют четыре режима работы. Режимы работы 0, 1, 2 одинаковы для обоих Т/С; Т/С 0 и Т/С 1 в этих режимах полностью независимы друг от друга. Работа Т/С 0 и Т/С 1 в режиме 3 различна. При этом установка режима 3 в Т/С 0 влияет на режимы работы Т/С 1.
Установка битов М0=0, М1=0 определяет режим работы 0. Т/С в режиме 0 представляет собой устройство на основе 13-разрядного.
13-разрядный регистр состоит для Т/С 0 из 8 разрядов регистра ТН0 и 5 младших разрядов регистра TL0, а для Т/С 1 — из 8 разрядов регистра ТН1 и 5 младших разрядов регистра TL1.
В этом режиме функцию делителя на 32 выполняют регистры TL0, TL1. Они являются программно доступными, но надо помнить, что значащими в режиме 0 являются только пять младших разрядов регистров TL0, TL1. Счет начинается при установке бита TR регистра TCON в состояние "1м. При необходимости управления счетом извне бит GATE регистра TMOD устанавливается в состояние "1". Тогда при TR=1 счет будет разрешен, если на входе INT0 (для Т/С 0) или INT1 (для Т/С 1) установление состояние "1м и будет запрещен, если установлено состояние "0м. Установка бита TR0 для Т/С 0 и TR1 для Т/С 1 в состояние "0" выключает Т/С независимо от состояния других битов.
При переполнении Т/С (переход содержимого регистра Т/С из состояния "все единицы" в состояние "все нули") устанавливается флаг TF0 для Т/С 0 или TFI для Т/С 1 в регистре TCON.
Установка битов М0=0, М1=1 определяет режим работы 1. Режим 1 аналогичен режиму 0. Отличие состоит в том, что установка режима 1 превращает Т/С в устройство на основе 16-разрядного регистра. Для Т/С 0 регистр состоит из программно доступных пар TL0,*TH0, для Т/С 1 из программно доступных пар TL1, ТН1.
Установка битов М0==1, М1==0 определяет режим 2. В этом режиме Т/С представляет собой устройство на основе восьмиразрядного регистра TL0 для Т/С 0 и TL1 для Т/С 1. При каждом переполнении TL0 кроме установки в регистре TCON флага TF0 происходит автоматически перезагрузка содержимого из ТН0 в TL0. Соответственно для Т/С 1 при переполнении TL1 в регистре TCON устанавливается флаг TFI и происходит перезагрузка TL1 из ТН1. Регистры ТН0 и ТН1 загружаются программно. Перезагрузка TL0 из ТН0 и TL1 из ТН1 не влияет на содержимое регистров ТН0 и ТН1. Логика работы Т/С 0 в режиме 2 аналогична. Назначение битов управления TR0, TR1, GATE0, GATE1, С/Т 0, С/Т 1 такое же как режиме
Установка битов М0=1, М1=1 определяет режим 3. Т/С 1 в режиме 3 заблокирован и просто сохраняет свой счет (значение кода в регистре Т/С). Эффект такой же, как при установке TR1=0.
Т/С 0 в режиме 3 представляет собой два независимых устройства на основе восьмиразрядных регистров TL0 и ТН0. Устройство на основе регистра TL0 может работать в режиме таймера и в режиме счетчика. За ним сохраняются все биты управления Т/С 0, оно реагирует на воздействия по входам Т0, INT0. При переполнении TL0 устанавливается флаг TF0. Устройство на основе регистра ТН0 может работать только в режиме таймера. Оно использует бит включения TR1, при переполнении ТН0 выставляет флаг TF1. Других битов управления устройство на основе ТН0 в этом режиме не имеет.
Установка Т/С 0 в режим 3 лишает Т/С 1 бита включения TR1. Поэтому Т/С 1в режимах 0, 1, 2 при GATE 1=0 всегда включен и при переполнении в режимах 0 и 1 Т/С 1 обнуляется, а в режиме 2 перезагружается, не устанавливая флаг, если Т/С 0 находится в режиме 3. Управление от входов INT1, Т1, биты управления С/Т1, GATE1 для Т/С 1 не зависят от режима Т/С 0.
Т/С 1 аппаратно связан с блоком синхронизации последовательного интерфейса (ПИ). При работе в режимах 0, 1, 2 при переполнении Т/С 1 всегда вырабатывает импульс тактировки ПИ. Поэтому 3-й режим Т/С 0 удобно применять тогда, когда требуется работа ПИ и двух таймеров или ПИ, таймера и счетчика.
Когда Т/С 0 переведен в режим 3, Т/С 1 можно выключить, переведя его также в режим 3, использовать с последовательным портом для выработки импульсов тактировки или в любых других приложениях, не требующих прерывания.
2.2.4. Блок последовательного интерфейса и прерываний.
Блок последовательного интерфейса и прерываний (ПИП) предназначен для организации ввода-вывода последовательных потоков информации и организации системы прерывания программ.
В состав блока ПИП входят: буфер ПИП, логика управления ПИП, регистр управления, буфер передатчика, буфер приемника, приемник/передатчик последовательного порта, регистр приоритетов прерываний, регистр разрешения прерываний, логика обработки флагов прерываний и схема выработки вектора.
Буфер ПИП обеспечивает побайтовый обмен информацией между внутренней магистралью данных и шиной ПИП.
Логика управления ПИП предназначена для выработки сигналов управления, обеспечивающих четыре режима работы последовательного интерфейса, и организации прерывания программ.
Последовательный интерфейс (последовательный порт) МК51 может работать в следующих четырех режимах:
Режим 0. Информация передается и принимается через вход приемника RxD (вывод Р3.0 ОМЭВМ). Через выход передатчика TxD (вывод Р3.1 ОМЭВМ) выдаются импульсы синхронизации, стробирующие каждый передаваемый или принимаемый бит информации. Формат посылки — 8 бит. Частота приема и передачи — fgQ/12, где fgQ — тактовая частота ОМЭВМ.
Режим 1. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки — 10 бит: старт-бит (ноль), восемь бит данных и стоп-бит (единица). Частота приема и передачи задается Т/С 1.
Режим 2. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки — 11 бит: старт-бит (ноль), восемь бит данных, программируемый девятый бит и стоп-бит (единица). Передаваемый девятый бит данных принимает значение бита ТВ8 из регистра специальные функций SCON. Бит ТВ8 в регистре SCON может быть программно установлен в "0" или в "1", или в него, к примеру, можно поместить значение бита Р из регистра PS1 для повышения достоверности принимаемой информации (контроль по паритету). При приеме девятый бит данных принятой посылки поступает в бит RB8 регистра SCON. Частота приема и передачи в режиме 2 задается программно и может быть равна fgQ/32 или fgQ/64.
Режим 3. Режим 3 полностью идентичен режиму 2 за исключением частоты приема и передачи, которая в режиме 3 задается Т/С 1.
Регистр управления (SCON) предназначен для приема и хранения кода восьмибитового слова, управляющего последовательным интерфейсом. Все разряды регистра SCON программно доступны по записи ("0" и "I") и чтению.
Разряды SM0, SM1 определяют режим работы ПИП, как указано в таблице 6. Остальные биты регистра имеют следующее назначение:
SM2 — разрешение многопроцессорной работы. В режимах 2 и 3 при SM2=1 флаг RI не активизируется, если девятый принятый бит данных равен "0". В режиме 1 при SM2=1 флаг RI не активизируется, если не принят стоп-бит, равный "I". В режиме 0 бит SM2 должен быть установлен в "0",
REN — разрешение приема последовательных данных. Устанавливается и сбрасывается программным обеспечением соответственно для разрешения и запрета приема.
ТВ 8 — девятый бит передаваемых данных в режимах 2 и 3. Устанавливается и сбрасывается программным обеспечением.
RB8 — девятый бит принятых данных в режимах 2 и 3. В режиме 1, если SM2=0, RB8 является принятым стоп-битом. В режиме 0 бит RB8 не используется.
TI — флаг прерывания передатчика. Устанавливается аппаратно в конце времени выдачи 8-го бита в режиме 0 или в начале стоп-бита в. других режимах. Сбрасывается программным обеспечением.
RI — флаг прерывания приемника. Устанавливается аппаратно в конце времени приема 8-го бита в режиме 0 или через половину интервала стоп-бита в режимах 1, 2, 3 при SM2=0. При SM2=1 см. описание для бита SM2.
Буфер передатчика предназначен для приема с шины ПИП параллельной информации и выдачи ее в виде последовательного потока символов на передатчик последовательного порта.
Буфер приемника предназначен для приема данных в виде последовательного потока символов с последовательного порта, преобразования их в параллельный вид, хранения и выдачи в параллельном виде на внутреннюю шину ПИП.
Буфер приемника и буфер передатчика при программном доступе имеют одинаковое имя (SBUF) и адрес (99Н). Если команда использует SBUF как регистр источника, то обращение происходит к буферу приемника. Если команда использует SBUF как регистр назначения, то обращение происходит к буферу передатчика.
Во всех четырех режимах работы последовательного порта передача инициируется любой командой, которая использует SBUF как регистр назначения. Прием в режиме 0 инициируется условием RI=0 и REN=1. В остальных режимах прием инициируется приходом старт-бита, если REN=1.
Таблтца 6. Регистр управления последовательным портом.
|
SM0 |
SM1 |
SM2 |
REN |
TB8 |
RB8 |
TI |
RI |
|
Обозначение |
Адресация |
Описание |
|
SM0 |
SCON.7 |
Режим работы последовательного порта. |
|
SM1 |
SCON.6 |
Режим работы последовательного порта. |
|
SM2 |
SCON.5 |
Флаг переполнения таймера 0. Устанавливается аппаратно при переполнении таймера 0. Очищается аппаратно в случае обработки прерывания от переполнения таймера 0. |
|
REN |
SCON.4 |
Включение/отключение таймера 0. |
|
TB8 |
SCON.3 |
Флаг фронта внешнего прерывания 1. Устанавливается аппаратно по обнаружению фронта внешнего прерывания. Очищается аппаратно в момент начала обработки прерывания. |
|
RB8 |
SCON.2 |
Флаг управления типом прерывания 1. |
|
TI |
SCON.1 |
Флаг фронта внешнего прерывания 0. Устанавливается аппаратно по обнаружению фронта внешнего прерывания. Очищается аппаратно в момент начала обработки прерывания. |
|
RI |
SCON.0 |
Флаг управления типом прерывания 0. |