- •Кафедра информационных систем и технологий
- •Программирование и отладка
- •Программных модулей для омк Intel 8051 (к1816 ве51)
- •Методические указания к лабораторной работе
- •1. Структурная организация Intel 8051
- •1.1. Арифметико‑логическое устройство
- •1.2. Резидентная память
- •1.3 Внешняя память
- •1.4 Устройство управления и синхронизации
- •2. Программная модель омк
- •3.Система команд 8051
- •4.Периферийные устройства омк
- •4.1.Порты ввода/вывода.
- •4.2. Счетчик/Таймер
- •4.3. Последовательный порт
- •4.4 Система прерываний
- •5. Особые режимы работы
- •6. Особенности архитектуры микроконтроллеров 8x52 и 8xС52
- •7. Тенденции развития mcs-51/151/251
- •8. Проектирование устройств сбора и обработки информации на основе 8051
- •8.1. Разработка алгоритмов функционирования
- •Арифметический правый сдвиг на один разряд записывается в виде
- •Например, сравнение двух слов а и b можно описать в виде
- •8.2. Программирование на ассемблере 8051.
- •Система команд омк Intel 8051
- •Подготовка программ для отладКи в dos - эмуляторе.
- •Полноэкранный отладчик ассемблерных программ для однокристальной микро-эвм кр1816 ве51 (Intel 8051)
- •1. Запуск отладчика.
- •2. Ввод команд.
- •3. Описание команд.
- •3.1. Функциональные клавиши.
- •3.2. Команды отладчика
- •4. Полноэкранное редактирование
- •5. Режим ассемблера
- •5. Работа с точками останова
- •Приложение 3 Задание на проектирование
- •Алгоритм функционирования усои
1. Структурная организация Intel 8051
Архитектура ОМК предполагает логическое и структурное разделение памяти команд и памяти данных. Такое разделение является признаком гарвардской архитектуры. Основным преимуществом гарвардской архитектуры являются раздельные магистрали для обращения к памяти программ и памяти данных, что приводит к повышению быстродействия. Однако в 8051 раздельными являются только внутренние шины адреса команд и данных, а данные и команды передаются по общей шине.
Применение гарвардского принципа в 8051 позволяет иметь различную организацию памяти команд и данных, более эффективно использовать форматы команд, которые различаются при обращении к командам и данным используемыми способами адресации. Последнее обстоятельство приводит к сокращению размера памяти, необходимого для хранения программ.
При работе с внешними устройствами (памятью, периферийными БИС) обращение к памяти программ и данных выполняется по общей магистрали. Однако в процессе обращения к внешним устройствам формируются различные сигналы для управления памятью программ и данных, что упрощает их аппаратную реализацию и увеличивает объем суммарного адресного пространства.
Основу структурной схемы ОМК (рисунок 1) образует внутренняя двунаправленная 8-битная шина данных, которая связывает между собой все основные узлы и устройства: резидентную память, центральный процессор, состоящий из АЛУ, аккумулятора АСС, регистра-расширителя аккумулятора В, слова состояния процессора PSW и устройства управления, порты ввода/вывода.
1.1. Арифметико‑логическое устройство
Восьмиразрядное АЛУ может выполнять арифметические операции сложения, вычитания, умножения и деления; логические операции И, ИЛИ, исключающее ИЛИ, операции над битовыми данными, а также операции циклического сдвига, сброса, инвертирования и т.п. В состав АЛУ входят программно недоступные регистры T1 и T2, предназначенные для временного хранения операндов, схема десятичной коррекции и схема формирования признаков.
Наряду с байтовыми операциями АЛУ может обрабатывать битовые переменные. Отдельные программно-доступные биты могут быть установлены, сброшены, инвертированы, переданы, проверены и использованы в логических операциях.
Аккумулятор АСС служит источником и/или приемником операндов при выполнении арифметических и логических операций.
Регистр-расширитель В используется в операциях умножения и деления.
Регистр PSW содержит признаки результатов выполнения операций и биты (флаги), необходимые для управления ресурсами ОМК, SP-указатель стека.
1.2. Резидентная память
Память программ и память данных, размещенные на кристалле ОМК физически и логически разделены, имеют различные механизмы адресации, работают под управлением различных сигналов и выполняют разные функции (рисунок 2).
Внутренняя (резидентная) память программ имеет емкость 4 Кбайт и предназначена для хранения команд, констант, управляющих слов инициализации, таблиц перекодировки входных и выходных сменных и т.п. Резидентная память программ имеет 16-битную шину адреса, управление которой выполняется счетчиком команд (PC) или регистром-указателем данных (DPTR). Последний выполняет функции базового регистра, при косвенной адресации, или используется в командах оперирующих с таблицами.
Внутренняя (резидентная) память данных (ОЗУ) предназначена для хранения переменных в процессе выполнения прикладной программы и имеет организацию 128x8.
К адресному пространству РПД примыкают адреса регистров специальных функций (РСФ), которые перечислены в табл. 1.
Блок регистров специальных функций
Таблица 1
Символ |
Наименование |
Адрес |
* ACC |
Аккумулятор |
0E0H |
* B |
Регистр-расширитель аккумулятора |
0F0H |
* PSW |
Слово состояния программы |
0D0H |
SP |
Регистр-указатель стека |
81H |
DPTR |
Регистр-указатель данных (DPH) (DPL) |
83H |
82H |
||
* P0 |
Порт 0 |
80H |
* P1 |
Порт 1 |
90H |
* P2 |
Порт 2 |
0A0H |
* P3 |
Порт 3 |
0B0H |
* IP |
Регистр приоритетов |
0B8H |
* IE |
Регистр маски прерываний |
0A8H |
TMOD |
Регистр режима таймера/счетчика |
89H |
* TCON |
Регистр управления/статус таймера |
88H |
TH0 |
Таймер 0 (старший байт) |
8CH |
TL0 |
Таймер 0 (младший байт) |
8AH |
TH1 |
Таймер 1 (старший байт) |
8DH |
TL1 |
Таймер 1 (младший байт) |
8BH |
* SCON |
Регистр управления приемопередатчиком |
98H |
SBUF |
Буфер приемопередатчика |
99H |
PCON |
Регистр управления мощностью |
87H |
Примечание. Регистры, имена которых отмечены знаком (*), допускают адресацию отдельных бит. |
||
Наряду с байтовым адресным пространством внутренняя память данных содержит битовое пространство, которое начинается в битовой зоне (адреса 20h-2Fh), а продолжается в зоне регистров специальных функций (адреса 80h-FFh). Обращение к нему возможно только с использованием битовых команд. Нулевому биту ячейки 20h (20.0) соответствует адрес 0 битового пространства, а старшему биту регистра специальных функций FFh- адрес 255 (FFh).
В режиме микроконтроллера используется только резидентная память программ и данных. Память программ располагается по адресам 0000h..0FFFh, а данных – с 00h по 07Fh. Регистры специальных функций имеют объединенное с внутренним ОЗУ адресное пространство и расположены по адресам 80h..0FFh. Особенности использования регистров специальных функций рассмотрены в разделе 4.
