Микроконтроллеров семейства МК51

Кроме указанных в таблице резидентной памяти программ и данных (РПП и РПД) микроконтроллер содержит на кристалле:

· 8-разрядный центральный процессор (в АЛУ реализуются сложение, вычитание, умножение и деление);

· четыре программируемых 8-разрядных порта ввода/вы-вода (Р0-Р3);

· два 16-битовых многорежимных таймера/счетчика;

· систему прерываний с пятью векторами и двумя уровнями;

· последовательный интерфейс;

· тактовый генератор;

· битовый процессор.

За счет подключения внешних БИС память программ может быть расширена до 64 Кб, память данных — на 64 Кб.

Многие выводы микросхем допускают многофункциональ­ное использование (на рис. 2.1 показаны альтернативные функ­ции порта Р3).

Выводы BQ1 и BQ2 служат для подключения кварцевого резонатора, вывод RST — для организации сброса МК. Вывод VPP (выбор памяти программ) для блокировки резидентной памяти программ заземляется. При подключении внешней памяти через порт Р0 передаются данные и младший байт адреса (А0-А7), через порт Р2 — старший байт адреса (А8-А15). Для реализации альтернативных функций порта Р3 в соответствующие линии порта необходимо вывести единицы.

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

Устройство формирования временных интервалов предназначено для формирования и выдачи внутренних синхросигналов фаз, тактов и циклов. Количество машинных циклов определяет продолжительность выполнения команд. Практически все команды ОЭВМ выполняются за один или два машинных цикла, кроме команд умножения и деления, продолжительность выполнения которых составляет четыре машинных цикла. Обозначим частоту задающего генератора через Fг. Тогда длительность машинного цикла равна 12/Fг или составляет 12 периодов сигнала задающего генератора. Логика ввода-вывода предназначена для приема и выдачи сигналов, обеспечивающих обмен информации с внешними устройствами через порты ввода-вывода Р0-Р3.

Регистр команд предназначен для записи и хранения 8-ми разрядного кода операции выполняемой команды. Код операции с помощью дешифратора команд и логики управления МК преобразуется в микропрограмму выполнения команды.

Регистр управления потреблением (PCON) позволяет останавливать работу микроконтроллера для уменьшения потребления электроэнергии и уменьшения уровня помех от микроконтроллера.

Арифметико-логическое устройство (ALU) представляет собой параллельное восьмиразрядное устройство, обеспечивающее выполнение арифметических и логических операций. АЛУ состоит из:регистров временного хранения TMP1 и TMP2, ПЗУ констант, сумматора, дополнительного регистра (регистра В), аккумулятора (ACC), регистра состояния программ (PSW).

Регистр B— восьмиразрядный регистр, используемый во время операций умножения и деления. Для других инструкций он может рассматриваться как дополнительный сверхоперативный регистр.

Аккумулятор— восьмиразрядный регистр, предназначенный для приема и хранения результата, полученного при выполнении арифметико-логических операций или операций сдвига.

Счетчик команд (Program Counter) предназначен для формирования текущего 16-разрядного адреса внутренней памяти программ и 8/16-разрядного адреса внешней памяти программ. В состав счетчика команд входят 16-разрядные буфер РС, регистр РС и схема инкремента (увеличения содержимого на 1).

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

Порты P0, P1, P2, P3 являются двунаправленными портами ввода-вывода и предназначены для обеспечения обмена информацией МК с внешними устройствами, образуя 32 линии ввода-вывода.

Регистр состояния программы (PSW) предназначен для хранения информации о состоянии АЛУ при выполнении программы. В него заносится результат в виде признаков (флагов).

 
 

 

 


Слово состояния программы PSW включает в себя четыре флага: С — перенос, АС — вспомогательный перенос, OV — переполнение и Р — паритет.

Флаг OV устанавливается, если результат операции сложения/вычитания не укладывается в семи битах и старший бит результата не может интерпретироваться как знаковый. При выполнении операции деления флаг OV сбрасывается, а в случае деления на нуль — устанавливается. При умножении флаг OV устанавливается, если результат больше 255.

Флаг Р равен 0, если число единиц аккумулятора четное.

Память программпредназначена для хранения программ и представляет собой постоянное запоминающее устройство (ПЗУ).

Регистр указателя данных (DPTR) предназначен для хранения 16-разрядного адреса внешней памяти данных.

Указатель стека (SP) представляет собой восьмиразрядный регистр, предназначенный для организации особой области памяти данных (стека), в которой можно временно сохранить содержимое любой ячейки памяти. Прежде всего стек предназначен для сохранения адреса возврата при вызове подпрограмм.

Стек — специально организованная область ОЗУ, предназначенная для временного хранения данных или адресов. Число, записанное в стек последним, извлекается из него первым. Указатель стека SP хранит адрес последней ячейки стека, в которой записана информация. При вызове подпрограммы в стеке автоматически сохраняется адрес возврата в основную программу. Как правило, в начале каждой подпрограммы сохраняют в стеке содержимое всех задействованных при ее выполнении регистров, а в конце подпрограммы восстанавливают их из стека.

 

Символические обозначения программно доступных битов некоторых регистров приведены в табл. 4.1.

 

Таблица 4.1

 

Регистр Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
P3 RD WR T1 T0 INT1 INT0 TxD RxD
PSW C AC F0 RS1 RS0 OV P
TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IE EA ES ET1 EX1 ET0 EX0
IP PS PT1 PX1 PT0 PX0
SCON SM0 SM1 SM2 REN TB8 RB8 TI RI

 

Сигнал сброса обнуляет содержимое регистров PC, ACC, B, PSW, DPTR, TMOD, TCON, T/C0, T/C1, IE, IP и SCON, в регистре PCON сбрасывается только старший бит, в регистр SP загружается код 07Н, а в порты Р0-Р3 загружаются коды 0FFH (настраивая их на ввод). Сигнал сброса не воздействует на содержимое ячеек РПД.