Микроконтроллеры. Система команд МК



В настоящее время микропроцессоры применяются практичес­ки повсеместно – от бытового оборудования до суперкомпьютеров. Чрезвычайное расширение области применения привело к не­из­бежной их специализации, появлению на­ряду с универсальными процессорами микросхем, предназначенных для решения задач определенного класса. Универсальные процессоры содержат устройства выполнения операций с плавающей запятой, управления памятью, кэш–память, устройство, реализующее магистраль процессора. Они обычно не содержат блоков для выполнения спе­ци­альных функций.

В отличие от этих микросхем однокристальные микроконт­роллеры имеют устройства, выполняющие различные периферий­ные функции, при этом на кристалле отсутствуют блоки выпол­нения операций с плавающей запятой и управления памятью. Разнообразие разработанных типов микроконтроллеров определяется системами команд, набором реализуемых на кристалле периферийных функций, производительностью.

Наиболее специализированы процессоры, предназначенные для решения задач цифровой обработки сигналов (DigitalSignal Processor – DSP). Уникальная система команд, особенности архитектуры обеспечивают высокую производительность обработки аналоговых сигналов, пред­ставленных в цифровой форме в реальном времени. В настоящее время появился новый тип DSP - медиа–процессор, предназначенный для обработки аудиосигналов, графики, видеоизображений, а также для решения задач мультимедиа в персональных компьютерах.

Применение микропроцессоров ознаменовало начало новой эры в развитии встроенных систем управления – систем, конструктивно интегрированных в оборудование. Кроме центрального процессора на основе однокристального микропроцессора или микроконтроллера в систему обычно входят дополнительные элементы памяти, периферийные интерфейсные БИС для сопряжения с датчиками и с объектом управления. Все задачи, решаемые системой встроенного управления, делятся на два больших класса: задачи управления событиями в реальном времени и уп­рав­ления потоками данных.

Каждый класс предъявляет специфические требования к микропроцессору или микроконтроллеру. Это находит отражение, прежде всего, в наборе функций, реализуемых на кристалле, и в системе команд.

К первому классу относят задачи, требующие быстрой реакции микропроцессорной системы на изменения внешних условий (на срабатывания датчиков, изменение параметров объекта управления). Для решения этих задач применяют микроконтроллеры с размещенными на кристалле памятью программ, памятью данных, устройствами ввода-вывода. Обычно для реализации алгоритмов требуется память программ небольшой емкости (до 32К байт).

Второй класс составляют задачи, требующие быстрой обработки значительных объемов информации (системы управления летательными аппаратами, подвижным составом, обработки видеоизображений и т.д.). Процессор при этом выполняет большое количество вычислительных операций, в том числе с плавающей запятой. Для решения таких задач применяются высокопроизводительные 32– или 64-разрядные процессоры.

Например, продукция фирмы Intel,ориентированная на встраиваемые системы управления, может быть представлена следующим образом. Для решения задач управления событиями в реальном времени используются однокристальные микроконтроллеры:

8-разрядные – MCSR-51, MCSR-251;

16-разрядные – MCSR-96, MCSR-196, MCSR‑296.

Для решения задач управления потоками данных применяются однокристальные 16- и 32-разрядные микропроцессоры:

CISC–архитектуры – 80C186 и др.;

RISC–архитектуры – i960.

В настоящее время по объему продаж лидируют 8-разрядные микроконтроллеры.

Архитектура однокристальных микроконтроллеров семейства мк-51

Структура микроконтроллера мк-51

К микроконтроллерам семейства МК-51 в настоящее время относятся следующие схемы: К1816ВЕ31, К1816ВЕ51, К1816ВЕ751, К1830ВЕ31, К1830ВЕ51, которые являются функционально завершенными однокристальными микроконтроллерами, содержащими на кристалле все необходимые узлы для работы в автономном режиме и предназначенными для реализации различных цифровых алгоритмов управления. Сравнительные характеристики этих БИС приведены в таблице 1.

Таблица 1

Характеристики некоторых БИС семейства МК-51

Микро­схема Аналог Объем внутрен­ней памя­ти прог­рамм, байт Тип памяти программ Ток потребления, мА
К1816ВЕ31 8031AH - внешняя 150
К1816ВЕ51 8051AH 4K ПЗУ 150
К1816ВЕ751 8751H 4K ППЗУ 220
К1830ВЕ31 80C31BH - внешняя 18
К1830ВЕ51 80C51BH 4K ПЗУ 18

Все приведенные в табл.1 микроконтроллеры имеют объем внутренней памяти данных в 128 бит и максимальную тактовую частоту – 12 МГц.

Дальнейшее описание будет относиться к микросхеме К1816ВЕ51, если другое не оговорено особо.

МК содержит:

8-разрядный центральный процессор, управляющий работой исполнительных устройств и имеющий аппаратную поддержку операций умножения и деления;

внутреннюю (расположенную на кристалле) память программ объемом 4К байт;

внутреннюю память данных объемом 128 байт, используемую для организации регистровых банков, стека и хранения пользовательских данных;

32 двунаправленных интерфейсных линии, индивидуально настраиваемых на ввод или вывод информации и организованных в виде четырех 8-разрядных портов P0 - P3;

два 16-разрядных многорежимных таймера/счетчика TC0 и TC1, используемых для подсчета внешних событий, организации временных задержек и тактирования последовательного порта;

двунаправленный дуплексный асинхронный последовательный приемопередатчик;

двухуровневую приоритетную систему прерываний от трех внутренних и двух внешних источников;

встроенный тактовый генератор.

Основные технические характеристики микроконтроллеров МК‑51:

разрядность АЛУ, бит ……………………….8

число выполняемых команд ………………...111

длина команд, байт …………………………..1,2,3

Организация памяти

Одной из основных особенностей однокристальных микроконтроллеров, отличающих их от других типов микропроцессорных БИС, является наличие физически и логически отделенных друг от друга памяти программ и памяти данных. Память данных, в свою очередь, включает в себя блок регистров общего назначения, область стека, область прямоадресуемых битов (“битовая память”), блок специальных регистров и собственно память данных, организованную в виде традиционного ОЗУ.

Различные модификации МК-51 отличаются объемом и распределением памяти между внешними и внутренними блоками.

Память данных

Память данных, расположенная на кристалле (внутренняя память данных), имеет объем 256 байт. Она может быть расширена до 64К байт за счет подключения блоков внешней памяти данных.

Внутренняя память данных состоит из двух областей: 128 байт опе­ративной памяти (ОЗУ) с адресами 00h-7Fh и области регистров специальных функций, занимающей адреса 80h-FFh. Помимо возможности использования ОЗУ в качестве массива оперативной памяти, отдельные её области име­ют самостоятельное значение. Часть ОЗУ используется в ка­честве регистров общего назначения, часть имеет прямо­адресуемый доступ к отдельным битам, образуя так называ­е­мую битовую память. В ОЗУ располагается также и область стека. Распределение адресного пространства ОЗУ показано на рис.2.

Младшие 32 байта внутреннего ОЗУ данных сгруппированы в 4 банка по 8 регистров общего назначения в каждом (БАНК 0 - БАНК 3). Определение рабочего в данный момент банка, то есть банка регистров, к которому обращается программа при использовании имен R0 - R7, осуществляется установкой битов RS0 и RS1 в регистре слова состояния PSW. Начальное состояние этих разрядов после прохождения сигнала сброса RESET определяет в качестве рабочего БАНК0 (RS0=RS1=0). Наличие нескольких банков регистров сокращает длину команд, а также уменьшает время, необходимое для сохранения и восстановления регистров при работе с подпрограммами и обработчиками прерываний, что характерно для структуры задач, решаемых микроконтроллерами.

ОЗУ данных с адресами 20h - 2Fh образует область ячеек, к которым возможен побитный доступ. Система команд МК-51 содержит значительное количество инструкций, поз­во­­ляющих работать с отдельными битами, используя при этом прямую адресацию. 128 бит, составляющие рас­сматриваемую область внутреннего ОЗУ данных, имеют адреса 00h - 7Fh и предназначены для работы с такими инструкциями. Битовая адресация данного массива ОЗУ показана на рис.3. Таким образом, к ячейке с адресом, например, 21h можно обратиться как к байту, используя её прямой адрес 21h, а можно обратиться к её отдельным битам с помощью команд, работающих с битовой информацией. При этом младший бит этого байта имеет адрес 08h, а старший - 0Fh.

Область регистров специальных функций содержит регистры-защёлки портов, регистры таймеров/счетчиков, регистры управления и т.п. Полный список регистров специальных функций с их адресами приведен в таблице 2. Эти регистры допускают только прямую адресацию. Регистры, адреса которых кратны восьми, то есть заканчиваются на 000b, допускают как байтовую, так и побитовую адресацию. Список регистров с указанием адресов их бит показан на рис.4.

 

Адрес байта

Адрес бита

7 6 5 4 3 2 1 0
2Fh 7F 7E 7D 7C 7B 7A 79 78
2Eh 77 76 75 74 73 72 71 70
2Dh 6F 6E 6D 6C 6B 6A 69 68
2Ch 67 66 65 64 63 62 61 60
2Bh 5F 5E 5D 5C 5B 5A 59 58
2Ah 57 56 55 54 53 52 51 50
29h 4F 4E 4D 4C 4B 4A 49 48
28h 47 46 45 44 43 42 41 40
27h 3F 3E 3D 3C 3B 3A 39 38
26h 37 36 35 34 33 32 31 30
25h 2F 2E 2D 2C 2B 2A 29 28
24h 27 26 25 24 23 22 21 20
23h 1F 1E 1D 1C 1B 1A 19 18
22h 17 16 15 14 13 12 11 10
21h 0F 0E 0D 0C 0B 0A 09 08
20h 07 06 05 04 03 02 01 00

 

Рис.3. Битовая память МК-51  

 

Во внутреннем ОЗУ данных размещается также область сте­ка. Её положение не фиксировано, а определяется значением указателя стека SP. Начальное значение SP после сис­темного сброса - 07h. SP указывает на верхнюю занятую ячейку стека. При обращении к стеку на запись сначала значение SP увеличивается на 1, а затем производится запись во внутреннюю память данных по адресу, хранящемуся в SP. Считывание из стека произодится по ад­ресу, хранящему­ся в SP, после чего значение SP уменьшается на 1.

 

Адрес байта Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0 Обозначение
F0h F7h F6h F5h F4h F3h F2h F1h F0h B
E0h E7h E6h E5h E4h E3h E2h E1h E0h ACC
  CY AC F0 RS1 RS0 OV   P  
D0h D7h D6h D5h D4h D3h D2h D1h D0h PSW
        PS PT1 PX1 PT0 PX0  
B8h       BC BBh BAh B9h B8h IP
  RD WR T1 T0 INT1 INT0 TxD RxD  
B0h B7h B6h B5h B4h B3h B2h B1h B0h P3
  EA     ES ET1 EX1 ET0 EX0  
A8h AFh     ACh ABh AAh A9h A8h IE
A0h A7h A6h A5h A4h A3h A2h A1h A0h P2
  SM0 SM1 SM2 REN TB8 RB8 TI RI  
98h 9Fh 9Eh 9Dh 9Ch 9Bh 9Ah 99h 98h SCON
90h 97h 96h 95h 94h 93h 92h 91h 90h P1
  TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0  
88h 8Fh 8Eh 8Dh 8Ch 8Bh 8Ah 89h 88h TCON
80h 87h 86h 85h 84h 83h 82h 81h 80h P0

Рис.4. Регистры, допускающие побитовый доступ

Таблица 2

Регистры специальных функций

Обозначение Наименование Адрес Состоя­ние после начального сброса
ACC B PSW SP DPTR DPL DPH P0 P1 P2 P3 IP IE TMOD TCON TH0 TL0 TH1 TL1 SCON SBUF PCON Аккумулятор Регистр В Регистр состояния программы Указатель стека Указатель данных, 2 байта младший байт старший байт Порт 0 Порт 1 Порт 2 Порт 3 Регистр приоритетов прерываний Регистр разрешения прерываний Регистр режимов таймера/счетчика Регистр управления таймера/счетчика Таймер/счетчик 0. Старший байт Таймер/счетчик 0. Младший байт Таймер/счетчик 1. Старший байт Таймер/счетчик 1. Младший байт Управление последовательным портом Буфер последовательного порта Управление потреблением E0h F0h D0h 81h 82h 83h 80h 90h A0h B0h B8h A8h 89h 88h 8Ch 8Ah 8Dh 8Bh 98h 99h 87h 00h 00h 00h 07h 0000h 00h 00h FFh FFh FFh FFh xxx00000b 0xx00000b 00h 00h 00h 00h 00h 00h 00h xxxxxxxxb 0xxxxxxxb

Все ячейки внутреннего ОЗУ данных могут адресоваться с использованием прямой и косвенной адресации. Внутреннее ОЗУ, содержащее регистры специальных функций, допускает только прямую адресацию.

К внешней памяти данных можно обращаться только на запись или чтение с помощью специальных команд MOVX. Эти команды осуществляют обмен информацей между внешней памятью данных и аккумулятором микроконтроллера и не влияют на внутреннюю память данных МК. Таким образом, в системе могут одновременно присутствовать внутренняя память данных с адресами 00h - 0Fh и внешняя память данных с адресами 0000h - FFFFh.

Память программ

В зависимости от модификации, различные типы БИС МК-51 имеют разное распределение внутренней и внешней памяти программ (см. табл.1), оставляя неизменным максимально допустимый общий её объем в 64К байт. Память программ адресуется с по­мощью 16-разрядной адресной шины с использованием счетчика команд (PC) или инструкций, которые вырабатывают 16-разрядные адреса. Она имеет байтовую организацию и доступна только по чте­нию.

Обращение к внутренней или внешней памяти программ происходит автоматически с использованием аппаратных средств МК. При этом в зависимости от состояния управляющего входа DEMA микроконтроллера вся память трактуется либо как только внешняя (при DEMA=0), либо как внутренняя, занимающая младшие адреса адресного пространства, и внешняя, занимающая адреса от старшего адреса внутренней памяти до максимально допустимого FFFFh. С точки зрения программиста имеется только один массив памяти программ объемом 64К байт.

Система прерываний

Микроконтроллеры семейства МК-51 обеспечивают поддержку пяти источников прерываний:

двух внешних прерываний, поступающих по входам INT0 и INT1 (линии порта Р3: Р3.2 и Р3.3 соответственно);

двух прерываний от таймеров/счетчиков Т/С0 и Т/С1;

прерывание от последовательного порта.

Запросы на прерывание фиксируются в регистрах специальных функций микроконтроллера: флаги IE0, IE1, TF0, TF1запросов на прерывание от INT0, INT1, T/C0 и T/C1 соответственно содержатся в регистре управления TCON, а флаги RI и TI запросов на преры-ва­ние от последовательного порта - в регистре SCON управления последовательным портом (см. рис.4).

Флаги TF0 и TF1 устанавливаются аппаратно при переполнении соответствующего таймера/счетчика (переход T/Cx из состояния “все единицы” в состоянии “все нули”).

Флаги IE0 и IE1 устанавливаются аппаратно от внешних прерываний IT0 и IT1 соответственно. Внешний запрос может вызвать установку флага либо при низком уровне сигнала на соответствующем входе, либо при переходе этого сигнала с высокого на низкий уровень (с частотой, не превыша­ю­щей половины частоты внешней синхронизации МК). Настройка на тип запроса осуществляется программной установкой бит IT0 и IT1 в регистре TCON (см. рис.4). Установка ITx=0 настраивает систему прерывания на запрос по низкому уровню сигнала, ITx=1 - запрос на прерывание по спаду сигнала.

Флаги TI и RI устанавливаются аппаратно схемой последовательного интерфейса соответственно после окончания передачи или приема байта

Все указанные флаги запросов на прерывания программно доступны для установки и сброса. Программная установка флага запроса на прерывание приводит к такой же реакции микроконтроллера, что и аппаратная установка того же самого флага.

Флаги TF0 и TF1 сбрасываются аппаратно при передаче управления программе обработки соответствующего прерывания.

Сброс флагов IЕ0 и IЕ1 выполняется аппаратно при обслуживании прерывания только в том случае, если прерывание было настроено на восприятие спада сигнала INTx. Если прерывание было настроено на восприятие уровня сигнала запроса, то сброс флага IEx должна выполнять программа обслуживания прерывания, воздействуя на источник прерывания для снятия им запроса.

Флаги TI и RI сбрасываются только программным путем.

Каждый вид прерывания индивидуально разрешается или запрещается установкой или сбросом соответствующих бит регистра разрешения прерывания IE. Этот регистр содержит также и бит общего запрещения всех прерываний. Формат этого регистра приведен на рис.4, а назначение отдельных разрядов - в таблице 3.

Таблица 3

Назначение разрядов регистра IE

Мнемоника бита Позиция в регистре Функция
EA IE.7 Запрет прерывания от всех источников
- IE.6 Не используется
- IE.5 Не используется
ES IE.4 Запрет прерывания от последовательного порта
ET1 IE.3 Запрет прерывания от таймера/счетчика T/C1
EX1 IE.2 Запрет прерывания от внешнего источника INT1
ET0 IE.1 Запрет прерывания от таймера/счетчика T/C0
EX0 IE.0 Запрет прерывания от внешнего источника INT0

Каждому виду прерывания может быть программно присвоен один из двух возможных приоритетов:

0 - низший

1 - высший.

Настройка приоритетов осуществляется установкой или сбросом соответствующего бита регистра приоритетов прерываний IP. Назначение отдельных бит этого регистра приведено в табл. 4.

Таблица 4

Назначение разрядов регистра IP

Мнемоника бита Позиция в регистре Функция
- IP.7 Не используется
- IP.6 Не используется
- IP.5 Не используется
PS IP.4 Приоритет прерывания от последовательного порта
PT1 IP.3 Приоритет прерывания от таймера/счетчика T/C1
PX1 IP.2 Приоритет прерывания от внешнего источника INT1
PT0 IP.1 Приоритет прерывания от таймера/счетчика T/C0
PX0 IP.0 Приоритет прерывания от внешнего источника INT0

При одновременном поступлении запросов прерывания от источников, имеющих различные приоритеты, сначала обрабатывается запрос от более приоритетного источника.

В случае одновременного поступления нескольких запросов на прерывания с одинаковым приоритетом порядок их обработки определяется аппаратными средствами микроконтроллера и не может быть изменен программно. Этот порядок соответствует последовательности опроса флагов запросов прерываний, имеющей следующий вид:

IT0 ® TF0 ® IT1 ® TF1 ® (RI,TI)

Аппаратно-реализуемый вызов обработчика прерываний состоит из следующих операций:

сохранение значения программного счетчика (PC) в стеке;

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

Точки входа в обработчик прерывания для каждого источника прерываний аппаратно зафиксированы. Их значения приведены в таблице 5.

Таблица 5

Адреса точек входа в обработчики прерываний

Источник прерывания Адреса точки входа в обработчик прерывания
Внешнее прерывание (IT0) 03h
Таймер/счетчик (TF0) 0Bh
Внешнее прерывание (IT1) 13h
Таймер/счетчик (TF1) 1Bh
Последовательный порт (RI или TI) 23h

По указанному адресу должна размещаться первая команда обработчика прерывания.

При переходе на подпрограмму обработки прерывания автоматически независимо от состояния регистра IE запрещаются все прерывания, имеющие уровень приоритета, равный уровню приоритета об­служиваемого прерывания, то есть вложенные прерывания с равным уровнем приоритета запрещены. Таким образом, низкоприо­ри­тетное прерывание (имеющее “0” в соответствующем разряде регистра IP) может прерываться высокоприоритетным (имеющим “1” в соответствующем разряде регистра IP), но не низкоприоритетным. Обслуживание высокоприоритетного прерывания не может быть прервано другим источником.

Возврат из обработчика прерываний осуществляется с по­мощью команды RETI, которая восстанавливает из стека значение PC и логику приоритетов прерываний.

Блок таймеров/счетчиков

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

Начальное значение заносится в регистры ТHx и TLx таймера/счетчика программно. В процессе счета содержимое ре­­гистров Т/Синкрементируется.

Назначение разрядов регистра режимов показано в табл.6.

Таблица.6 Назначение разрядов регистра TMOD

Мнемоника бита Позиция в регистре Функция
GATE1 7 Разрешение управления Т/С1 от внешнего входа IT1 0-управление запрещено 1-управление разрешено
C/T1 6 0 - работа Т/С1 в режиме таймера 1 - работа Т/С1 в режиме счетчика внешних событий
M1.1 M0.1 5 4 Номер режима работы Т/С1 ( 00-режим 0, ...,11-режим 3)
GATE0 C/T0 M1.0 M0.0 3 2 1 0 Функкции аналогичны битам 7...5, но для Т/С0

Регистр управления TCON служит для хранения управляющего слова таймеров/счетчиков. Назначение его разрядов приведено в табл.7.

Биты включения TR1 и TR0 устанавливаются и сбрасываются программно. Доступны по чтению. Установка бита в “1” приводит к включению в работу соответствующего таймера/счетчика, а сброс этого бита в “0” останавливает его работу.

Таблица 7 Назначение разрядов регистра TCON

Мнемоника бита Позиция в регистре Функция
TF1 7 Бит переполнения T/C1
TR1 6 Бит включения T/C1
TF0 5 Бит переполнения T/C0
TR0 4 Бит включения T/C0
IE1 3 Флаг запроса внешнего прерывания по входу INT1
IT1 2 Бит вида прерывания по входу INT1
IE0 1 Флаг запроса внешнего прерывания по входу INT0
IT0 0 Бит вида прерывания по входу INT0

Таймеры/счетчики могут функционировать в одном из четырех режимов, определяемых разрядами M1.x и M0.x регистра TMOD. Режимы 0,1,2 полностью идентичны для обоих таймеров/счетчиков. Установка таймера/счетчика 0 в режим 3 влияет на режим работы таймера/счетчика 1.

Режим 0. Таймер/счетчик представляет собой устройство на основе 13-разрядного регистра, состоящего из 8‑разрядного регистра TH и пяти младших разрядов регистра TL. Логика работы таймера/счетчика в режиме 0 показана на рис.7 на примере T/C1. Влияние управляющих сигналов TR1, GATE1, C/T1 и сигнала внешнего уп­равления INT1 на работу таймера/счетчика представлено в табл.8.

При работе таймера/счетчика в режиме таймера его содержимое инкрементируется в каждом машинном цикле, то есть с частотой fBQ/12, где fBQ- частота внешней синхронизации микроконтроллера. При максимальной допустимой частоте внешней синхронизации fBQ = 12 МГц таймер/счетчик увеличивает свое содержимое через 1 мкс.

Таблица 8 Управление работой таймера/счетчика T/C1

TR1 GATE1 INT1 C/T1 Выполняемая функция
0 X X X Останов
1 0 X 0 Счет в режиме таймера
1 0 X 1 Счет в режиме счетчика внешних событий
1 1 1 X Останов
1 1 1 0 Счет в режиме таймера
1 1 1 1 Счет в режиме счетчика внешних событий

При работе таймера/счетчика в режиме счетчика внешних событий его содержимое увеличивается каждый раз при переключении из “1” в “0” сигнала на счетном входе микроконтроллера (вывод T0 (P3.4) для T/C0 и вывод T1 (P3.5) для T/C1). При этом частота изменения сигналов на счетном входе должна быть, как минимум, в 2 раза ниже внешней частоты синхронизации микроконтроллера.

Режим 1. Аналогичен режиму 0, за исключением того, что в этом режиме таймер/счетчик представляет собой устройство на основе не 13-разрядного, а 16-разрядного регистра, состоящего из регистров TH и TL.

Логика работы таймера/счетчика в этом режиме полностью соответствует режиму 0.

Режим 2. Таймер/счетчик представляет собой устройство на основе 8-разрядного регистра TL. При каждом переполнении регистра TL, кроме установки в регистре TCON флага TF, происходит автоматическая перезагрузка содержимого регистра TL из регистра TH.

Логика работы таймера/счетчика в этом режиме также соответствует режиму 0.

Режим 3. В режиме 3 T/C1 заблокирован и просто сохраняет свое состояние.

Таймер/счетчик T/C0 в режиме 3 представляет собой два независимых устройства на основе 8-разрядных регистров TH0 и TL0. Устройство на основе регистра TL0 может работать как в режиме таймера, так и в режиме счетчика внешних событий. За ним сохраняются все биты управления T/C0, оно реагирует на воздействия по входам T0 и INT0. При переполнении TL0устанавливается флаг TF0. Устройство на основе регистра TH0 может работать только в режиме таймера. Оно использует бит включения TR1, при переполнении TH0 устанавливается флаг TF1. Других битов управления устройство на основе TH0 в этом режиме не имеет. Логика работы T/C0 в режиме 3 показана на рис.8.

Установка T/C0 в режим 3 лишает T/C1 бита включения TR1. Поэтому T/C1 в режимах 0,1,2 при GATE1=0 всегда включен и при переполнении в режимах 0 и 1 T/C1 обнуляется, а в режиме 2 перезагружается, не устанавливая флаг, если T/C0 находится в режиме 3. Управление от входов INT1, T1 и использованиебит управления C/T1, GATE1 для T/C1 не зависят от режима T/C0.

T/C1 аппаратно связан с блоком синхронизации последовательного интерфейса (ПИ). При работе в режимах 0,1,2 при переполнении T/C1 всегда вырабатывается импульс тактирования ПИ. Поэтому режим 3 для T/C0 удобно применять тогда, когда требуется работа ПИ и двух таймеров/счетчиков или ПИ, таймера и счетчика.

Когда T/C0 переведен в режим 3, T/C1 можно выключить, переведя его также в режим 3, использовать с последовательным портом для выработки импульсов тактирования или в любых других приложениях, не требующих прерывания.

 


Дата добавления: 2019-11-25; просмотров: 260; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!