Данные ОМК отличаются от 8x51 наличием внутренней памяти программ объемом 8 Кбайт, внутреннего ОЗУ данных размером 256 байт и дополнительным 16-разрядным счетчиком-таймером.
Вывод P1.0 получил альтернативную функцию T2 (счетный вход таймера 2), а вывод P1.1. альтернативную функцию T2EX (вход управления фиксацией/перезагрузкой значения СТ2).
Синхронизация последовательного порта этих микроконтроллеров может выполняться как от CT1, так и СТ2.
Усилен механизм защиты внутренней памяти программ: используется 2 бита секретности и кодировочная таблица размером 32 байта. Таблица перед использованием должна быть запрограммирована. При верификации содержимого внутренней памяти программ выполняется операция «исключающего или» над текущим байтом памяти программы и байтом из таблицы, на который указывают 5 младших разрядов текущего адреса.
Функции защиты:
LB1 | LB2 | Функция |
U | U | Защита только с использованием кодировочной таблицы. |
P | U | Командам MOVC из внешней памяти программ недоступны байты кодов из внутренней памяти. Перепрограммирование внутренней памяти невозможно. |
P | P | Аналогично предыдущему, кроме того запрещена верификация внутренней памяти. |
U | P | Зарезервировано. |
Структура и управление памятью программ отличается от 8051 только расширенным объемом резидентной памяти.
Увеличение размера резидентной памяти данных обеспечивается за счет использования только косвенной адресации при обращении к 128 байтам ОЗУ, расположенных в старших адресах. Обращение к регистрам специальных функций выполняется как в 8051.
Регистры специальных функций дополнены регистром данных TH2(CDh), TL2(CCh), регистром автоперезагрузки RCAP2H(CBh), RCAP2L(CAh) и регистром управления T2CON(C8)h.
Таймер CT2 представляет собой 16-разрядный счетчик-таймер, работающий в трех режимах:
Режим захвата (фиксации). При установлении этого режима, срез импульса, приходящий на вход T2EXT фиксирует текущее значение в RCAP2H, RCAP2L и вызывает внутреннее прерывание по вектору 2Bh;
Режим прямого счета с автоперезагрузкой (перезаписью исходного значения). Режим аналогичный режиму 2 счетчика-таймера ОМК 8051. Исходное значение записывается в RCAP2H, RCAP2L. Перезапись может выполняться по срезу входного сигнала на входе T2EX или по переполнению CT. В последнем случае формируется внутреннее прерывание по вектору 2Bh.
Режим задающего генератора последовательного порта. В этом режиме приемник или передатчик тактируются синхроимпульсами, формируемыми при переполнении 16-разрядного регистра CT2.
Скорость определяется:
Флаг переполнения в этом режиме не устанавливается.
Режимы работы CT2 задаются в регистре управления T2CON:
TF | EXF2 | RCLK | TCLK | EXEN2 | TR2 | C/T2# | CP/RL2# |
RCLK | TCLK | CP/RL2# | TR2 | Режим |
Счетчик/таймер с автоперезагрузкой | ||||
Счетчик/таймер с «захватом» (фиксацией) текущего значения | ||||
x | Задающий генератор последовательного порта. |
TF2 – Флаг переполнения. Устанавливается при переходе из состояния FFFFh в 0000h. Должен очищаться программно. (а по прерыванию автоматически или нет?);
EXFZ – Флаг внешнего события CT2. Устанавливается по переходу из «1» в «0» на входе T2EX, если EXEN2=1. Формирует запрос прерывания;
RCLK – Выбор источника синхросигнала для приемника последовательного порта. При RCLK=1 источником является CT2, при RCLK=0 – CT1;
TCLK – Выбор источника синхросигнала для передатчика. последовательного порта. При ТCLK=1 источником является CT2, при ТCLK=0 – CT1;
EXEN2 – бит разрешения внешнего события СТ2. При EXEN2=1 разрешена установка флага EXF2;
TR2 – бит запуска/останова CT2. При TR2=1 таймер запускается;
С/T2# ‑ выбор типа события. C/T2#=1 – режим счетчика, C/T2#=0 – таймера;
CP/RL2# ‑ выбор режима CT2.
При единичном значении битаCP/RL2 # и EXEN2=1 CT2 переходит в режим захвата по срезу импульса на входе T2EX.
При нулевом значении CP/RL2# и EXEN2=1 по срезу импульса на входе T2EX или по переполнению CT2 переходит в режим автоперезагрузки.
При RCLK=1 или TCLK=1 этот бит игнорируется, а CT2 работает в режиме перезагрузки по переполнению.
CT2 имеет два флага запроса прерывания TF2 и EXF2 по вектору 2Bh. Идентификацию запросов должна выполнять подпрограмма обработки прерываний. В связи с этим в регистре прерываний IE добавляется бит IE.5 (ET2), а в IP – бит IP.5(PT2).
В ОМК 8xС5x, выполненных по КМОП технологии (CHMOS), введен ряд дополнительных функций (улучшен механизм защиты памяти программ, введены 2 режима пониженного потребления, при работе с последовательным портом возможен контроль ошибки кадра и автоматическое распознавание адресов при работе с несколькими контроллерами).