Тема 3. Структура базового МК

Базовый МК семейства Intel 8051 включает следующие основные устройства:

· ЦПУ (АЛУ, А, регистры и т.п.);

· Резидентная память программ , мин. - 4Кбайт;

· Резидентная память данных ( ОЗУ) , мин. - объемом 128 байт;

· Четыре двунаправленных побитно настраиваемых восьмиразрядных орта ввода-вывода;

· Два 16-разрядных таймера-счетчика;

· Контроллер обработки 5 прерываний (запросы на прерывание от внешних устройств (не показаны);

· Интерфейс для последовательного обмена информацией с другими микроконтроллерами или персональными компьютерами.

 

Тема 4. Организация и функционирование базового ЦПУ

Блок обработки данных:

· АЛУ –арифметико-логическое устройство;

· R0 – R7 – регистры общего назначения;

· В – специальный регистр в MCS 51 – используется для команд MUL (умножение) и DIV (деление).

· MUL AB, где А – аккумулятор, В – специальный регистр;

· DIV AB, А – делимое, В – делитель, в А – частное, в В – остаток.

· В R0-R7 – можно хранить данные , константы (РОН, GP – general purpose);

· R0 и R1 – можно использовать как регистры адреса памяти данных;

 

· PC – Program Counter – программный счетчик. После питания или Reset PC = 0 – старт любой программы с нулевого адреса.

.

Модификации логических и арифметических операций над байтами

(с точки зрения расположения исходных данных, * - любая операция)

1) - одно данное всегда в аккумуляторе, другое в регистре и результат записывается всегда в аккумулятор. Режим адресации регистровый (РА). ADD A, R2; (A+R2 → R2)

2) ; М – данные в памяти данных. Можно использовать две адресации:

ADD A, adr – прямой адрес памяти;

ADD A, @ R0;косвенная регистровая адресация

Предварительно в R0 надо загрузить адрес памяти. @ - признак косвенной регистровой адресации.

3) - режим непосредственной адресации.

Пример ADD A, #32H

32Н – данное;

# - означает, что это данное, константа. Если пропустим #, то А будет сложено с данными из 32 ячейки.

· PSW – Program State Word ( F - регистр флажков)

 

§ CY –флажок переноса (carry) из старшего разряда (0 – перенос отсутствует, 1 – перенос есть)

§ AC –флажок переноса из третьего бита (старший бит младшей тетрады) - используется для десятичной коррекции младшей тетрады, при выполнении арифметической операции над двоично-кодированными десятичными данными (BCO – Binary Code Decimal). (0 – переноса нет; 1 – перенос есть). Выполняет коррекцию

§ СДК – схема десятичной коррекции.

§ F0 – нулевой флажок пользователя, не формируется автоматически. Можем сами использовать как надо. Устанавливаем в 0 или 1 сами.

§ S1, S0 – используется для выборки регистровых банков;

S1S0 Банк Рг

0 0 B0 (0-7)

0 1 B1 (8-16)

1 0 B2 (16-23)

1 1 B3 (24-31)

§ OV – overflow – формируется при арифметической операции при переполнение результата.

§ 1-й бит не используется.

§ P – parity (паритет) четность(0) или нечетность(1) результата.

Можно адресовать регистр флажков на уровне байта или отдельных битов (PSW.3)