Микроконтроллеров семейства МК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 (настраивая их на ввод). Сигнал сброса не воздействует на содержимое ячеек РПД.