
- •Введение
- •Архитектура микроконтроллера.
- •1.1 Структурная организация микроконтроллера i8051.
- •Назначение выводов микроконтроллера 8051.
- •1.2 Память
- •Память программ
- •Масочная память
- •Однократно программируемая память
- •Репрограммируемая память
- •Память с электрическим стиранием
- •Флэш-память
- •Память программ микроконтроллера 8051 (пзу).
- •Память данных
- •Статическая память
- •Память с электрическим стиранием
- •Память данных микроконтроллера 8051 (озу).
- •Специализированные ячейки флэш-памяти
- •Работа с внешней памятью микроконтроллера 8051.
- •1.3 Процессорное ядро
- •Регистр инструкций
- •Программный счетчик
- •Арифметико-логическое устройство
- •Арифметико-логическое устройство микроконтроллера 8051.
- •Регистры общего назначения
- •Регистр состояния
- •Регистр флагов (psw) микроконтроллера 8051.
- •Регистры ввода/вывода, специальные регистры.
- •1.4 Тактовый генератор
- •1.5 Система сброса
- •Источники сброса
- •1.6 Система прерываний
- •Алгоритм обработки прерываний
- •Система прерываний микроконтроллера 8051.
- •Регистр масок прерывания (ie).
- •Регистр приоритетов прерываний (ip).
- •Выполнение подпрограммы прерывания.
- •Вектора прерываний
- •1.7 Порты ввода/вывода организация ввода/вывода
- •Алгоритмы обмена данными
- •Асинхронный обмен
- •Симплексный обмен
- •Устройство портов.
- •Особенности электрических характеристик портов.
- •1.8 Таймеры-счетчики.
- •Таймеры-счетчики микроконтроллеров семейства 8051.
- •1.9 Последовательный порт микроконтроллера 8051.
- •Регистр управления/статуса приемопередатчика scon.
- •Функциональное назначение бит регистра управления/статуса приемопередатчика scon.
- •Скорость приема/передачи информации через последовательный порт.
- •Регистр управления мощностью pcon.
- •1.10 Режимы работы микроконтроллера 8051 с пониженным энергопотреблением.
- •Режим хх.
- •Режим внп.
- •1.11 Устройства ввода/вывода дискретных сигналов
- •1.12 Устройства ввода/вывода аналоговых сигналов
- •Интегрирующий преобразователь
- •Сигма-дельта преобразователь
- •1.13 Устройства обмена данными с другими микроконтроллерами
- •2. Программирование микроконтроллера
- •2.1 Система команд Мнемонические обозначения
- •Типы команд
- •Типы операндов
- •Группы команд.
- •Oбозначения, используемые при описании команд.
- •Команды пересылки данных микроконтроллера 8051.
- •Команды арифметических операций 8051.
- •Команды логических операций микроконтроллера 8051.
- •Команды операций над битами микроконтроллера 8051.
- •Команды передачи управления микроконтроллера 8051.
- •2.2 Язык ассемблера
- •Операнды
- •Операторы
- •Директивы ассемблера.
- •Командная строка
- •2.3 Особенности программирования микроконтроллеров общие особенности.
- •Типы инструментальных средств разработки и отладки программ для микроконтроллеров.
- •Внутрисхемные эмуляторы.
- •Классификация внутрисхемных эмуляторов.
- •Функциональные возможности внутрисхемных эмуляторов.
- •Достоинства и недостатки внутрисхемных эмуляторов.
- •Программные симуляторы.
- •Платы развития.
- •Отладочные мониторы.
- •Эмуляторы пзу.
- •Типичные функциональные модули средств разработки и отладки.
- •Отладчик.
- •Узел эмуляции микроконтроллера.
- •Эмуляционная память.
- •Подсистема точек останова.
- •Процессор точек останова.
- •Трассировщик.
- •Профилировщик.
- •Интегрированная среда разработки.
1.3 Процессорное ядро
Каждый производитель микроконтроллеров для серии выпускаемых изделий разрабатывает и патентует свое оригинальное ядро (MCU – Microprocessor Core Unit). Однако в большинстве из них присутствуют одни и те же элементы:
регистр инструкций,
программный счетчик,
арифметическо-логическое устройство,
регистры общего назначения,
регистр состояния,
регистры ввода/вывода,
стек.
Регистр инструкций
Регистр инструкций (IR – Instruction Register) – регистр, предназначенный для хранения считанной из памяти программ инструкции. Считанная из памяти программ инструкция декодируется дешифратором команд и исполняется микропрограммным автоматом ядра. Разрядность регистра инструкций определяется разрядностью памяти программ.
Программный счетчик
Программный счетчик (PC – Program Counter) - регистр, предназначенный для хранения адреса ячейки памяти программ, в которой находится выполняемая в данный момент инструкция. Разрядность программного счетчика определяется количеством ячеек в памяти программы. При выполнении команды содержимое программного счетчика изменяется. В простейшем случае оно увеличивается на единицу. Но некоторые команды сами способны записывать данные в программный счетчик. В этом случае новое содержимое программного счетчика и определяется данными, заложенными в выполняемой инструкции.
Арифметико-логическое устройство
Арифметико-логическое устройство (ALU – Arithmetic Logic Unit) – логическая схема, непосредственно осуществляющая преобразование одной или двух переменных в соответствии с инструкцией, занесенной в регистр команд. Стандартное ALU способно выполнять простейшие арифметические и логические операции над оной или двумя переменными.
Типовые функции ALU:
сложение (addition),
вычитание (subtract),
инкремент (increment);
декремент (decrement),
Типовые логические операции:
инверсия (NOT),
логическое сложение (OR),
логическое умножение (AND),
исключающее ИЛИ (exclusive OR).
Некоторые производители интегрируют на кристалл также встроенный умножитель двух переменных.
Арифметико-логическое устройство микроконтроллера 8051.
8-битное арифметико-логическое устройство (ALU) может выполнять арифметические операции сложения, вычитания, умножения и деления; логические операции И, ИЛИ, исключающее ИЛИ, а также операции циклического сдвига, сброса, инвертирования и т.п. К входам подключены программно-недоступные регистры T1 и T2, предназначенные для временного хранения операндов, схема десятичной коррекции (DCU) и схема формирования признаков результата операции (PSW).
Рисунок 1.2 Структурная схема микроконтроллера 8051
Простейшая операция сложения используется в ALU для инкрементирования содержимого регистров, продвижения регистра-указателя данных (RAR) и автоматического вычисления следующего адреса резидентной памяти программ. Простейшая операция вычитания используется в ALU для декрементирования регистров и сравнения переменных.
Простейшие операции автоматически образуют “тандемы” для выполнения таких операций, как, например, инкрементирование 16-битных регистровых пар. В ALU реализуется механизм каскадного выполнения простейших операций для реализации сложных команд. Так, например, при выполнении одной из команд условной передачи управления по результату сравнения в ALU трижды инкрементируется счётчик команд (PC), дважды производится чтение из RDM, выполняется арифметическое сравнение двух переменных, формируется 16-битный адрес перехода и принимается решение о том, делать или не делать переход по программе. Все перечисленные операции выполняются всего лишь за 2 мкс.
Важной особенностью ALU является его способность оперировать не только байтами, но и битами. Отдельные программно-доступные биты могут быть установлены, сброшены, инвертированы, переданы, проверены и использованы в логических операциях. Эта способность достаточно важна, поскольку для управления объектами часто применяются алгоритмы, содержащие операции над входными и выходными булевыми переменными, реализация которых средствами обычных микропроцессоров сопряжена с определенными трудностями.
Таким образом, ALU может оперировать четырьмя типами информационных объектов:
булевыми объектами (1 бит),
цифровыми объектами (4 бита),
байтными объектами (8 бит),
адресными объектами (16 бит).
В ALU выполняется 51 различная операция пересылки или преобразования этих данных. Так как используется 11 режимов адресации (7 для данных и 4 для адресов), то путем комбинирования операции и режима адресации базовое число команд 111 расширяется до 255 из 256 возможных при однобайтном коде операции.