- •Введение
- •Архитектура микроконтроллера.
- •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.1 Структурная организация микроконтроллера i8051.
Микроконтроллеры семейства 8051 имеют следующие аппаратные особенности:
внутреннее озу объемом 128 байт;
четыре двунаправленных побитно настраиваемых вомьсмиразрядных портах ввода-вывода;
два 16-разрядных таймера-счетчика;
встроенный тактовый генератор;
адресация 64 Кбайт памяти данных и 64 Кбайт памяти программ;
две линии запросов на прерывание от внешних устройств;
интерфейс для последовательного обмена информацией с другими микроконтроллерами или персональными компьютерами.
Микроконтроллер выполнен на основе высокоуровневой n-МОП технологии. Через четыре программируемых параллельных порта ввода/вывода и один последовательный порт микроконтроллер взаимодействует с внешними устройствами. Основу структурной схемы образует внутренняя двунаправленная 8-битная шина, которая связывает между собой основные узлы и устройства микроконтроллера: резидентную память программ и резидентную память данных, арифметическо-логическое устройство, блок регистров специальных функций, устройство управления и порты ввода/вывода.
Назначение выводов микроконтроллера 8051.
Рисунок 1.1 Назначение выводов 8051.
Обозначения на этом рисунке:
Uss — потенциал общего провода ("земли");
Ucc — основное напряжение литания +5 В;
X1,X2 — выводы для подключения кварцевого резонатора;
RST — вход общего сброса микроконтроллера;
PSEN — разрешение внешней памяти программ; выдается только при обращении к внешнему ПЗУ;
ALE — строб адреса внешней памяти;
ЕА — отключение внутренней программной память; уровень 0 на этом входе заставляет микроконтроллер выполнять программу только внешнее ПЗУ; игнорируя внутреннее(если последнее имеется);
P1 — восьми битный квази двунаправленный порт ввода/вывода: каждый разряд порта может быть запрограммирован как на ввод, так и на вывод информации, независимо от состояния других разрядов;
P2 — восьми битный квази двунаправленный порт, аналогичный Р1; кроме того, выводы этого порта используются для выдачи адресной информации при обращении к внешней памяти программ или данных (если используется 16-битовая адресация последней). Выводы порта используются при программировании 8751 для ввода в микроконтроллер старших разрядов адреса:
РЗ — восьми битный квази двунаправленный порт, аналогичный. Р1; кроме того, выводы этого порта могут выполнять ряд альтернативных функций, которые используются при работе таймеров, порта последовательного ввода-вывода, контроллера прерываний, и внешней памяти программ и данных;
P0 — восьми битный двунаправленный порт ввода-вывода информации: при работе с внешними ОЗУ и ПЗУ по линиям порта в режиме временного мультиплексирования выдается адрес внешней памяти, после чего осуществляется передача или прием данных.
1.2 Память
Память микроконтроллера предназначена для хранения инструкций программы и данных. В микроконтроллерах с Гарвардской архитектурой она разделена на отдельные блоки: память программ и память данных.
Память программ
Программа микроконтроллера представляет собой последовательность команд (инструкций). Каждая инструкция имеет свой уникальный двоичный код. Коды инструкций и хранятся в памяти программ.
Память программ состоит из множества ячеек определенной разрядности, каждая из которых имеет свой номер (адрес). Количество ячеек (объем памяти) может быть различно. Обычно ячейки памяти программ нумеруются в шестнадцатеричной системе счисления, начиная с нуля: $0, $1, $2, … Знаком $ в дальнейшем будем обозначать числа в шестнадцатеричной системе счисления.
Память программ, по существующей классификации, всегда является какой либо разновидностью постоянной памяти (ROM – Read Only Memory). Постоянная память энергонезависима, она способна хранить записанную в ней информацию при отсутствии питающего напряжения. Основным режимом такой памяти является считывание данных, но способы записи программы (способы программирования) памяти могут быть самые разные. В зависимости от способа программирования память типа ROM делится на несколько групп: maskROM, OTPROM, EPROM, EEPROM и flash memory.
