
- •Введение
- •Архитектура микроконтроллера.
- •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 Особенности программирования микроконтроллеров общие особенности.
- •Типы инструментальных средств разработки и отладки программ для микроконтроллеров.
- •Внутрисхемные эмуляторы.
- •Классификация внутрисхемных эмуляторов.
- •Функциональные возможности внутрисхемных эмуляторов.
- •Достоинства и недостатки внутрисхемных эмуляторов.
- •Программные симуляторы.
- •Платы развития.
- •Отладочные мониторы.
- •Эмуляторы пзу.
- •Типичные функциональные модули средств разработки и отладки.
- •Отладчик.
- •Узел эмуляции микроконтроллера.
- •Эмуляционная память.
- •Подсистема точек останова.
- •Процессор точек останова.
- •Трассировщик.
- •Профилировщик.
- •Интегрированная среда разработки.
2.2 Язык ассемблера
Язык ассемблера (assembler language) - язык программирования микропроцессорных систем, ориентированный на определенную архитектуру системы. Программа, написанная на языке ассемблера, переводится в машинные коды с помощью специального компилятора.
Язык ассемблера использует систему команд процессорного ядра и специальные директивы, указывающие программе ассемблеру, как организовать различные секции программы, где располагать данные, как связать отдельные процедуры и т. д. Из-за множества архитектурных отличий различных систем единого языка ассемблера не существует. Каждый разработчик создает свой язык и свое программное обеспечение для работы с ним. Компилятор транслирует исходные коды с языка ассемблера в объектный код. Полученный объектный может быть непосредственно запрограммирован в микроконтроллеры.
Программа на языке ассемблера состоит из отдельных строк. Любая строка может начинаться с метки, которая является набором символов, заканчивающимся двоеточием. Метки используются для указания места, в которое передаётся управление при переходах, а также для задания имен переменных.
Входная строка может иметь одну из четырех форм:
[метка:] директива [операнды] [Комментарий]
[метка:] инструкция [операнды] [Комментарий]
Комментарий
Пустая строка
Комментарий имеет следующую форму:
; [Текст]
Позиции в квадратных скобках необязательны. Текст после точки с запятой (;) и до конца строки игнорируется компилятором.
Компилятор не требует, чтобы метки, директивы, комментарии или инструкции находились в определенной колонке строки.
Команды микроконтроллера и директивы языка ассемблера оперируют выражениями. Выражением считается набор операндов (operands), связанных между собой операторами (operators) и функциями (functions).
Операнды
Операндами языка ассемблера могут быть:
Определяемые пользователем метки.
Метка – это любая последовательность буквенных или цифровых символов, начинающихся с буквы. Символы, допускающиеся в метках перечислены ниже:
! $ % & : ? [ \ ] ^ _ ` { | } ~ A-Z a-z
Метка не должна совпадать с зарезервированными компилятором именами.
Метка может располагаться перед командой/директивой или входить в директиву.
Если метка располагается перед командой (или перед директивой) микроконтроллера, то после неё ставится символ : (двоеточие). Двоеточие указывает ассемблеру, что метка задает состояние программного счетчика в отмеченном месте программы.
Например,
Lab23: mov R6,R7 ; строка в программе отмечена меткой Lаb23
Если метка входит в директиву то, она рассматривается как один из операндов этой директивы и двоеточием не отмечается.
Определяемые пользователем с помощью директивы set переменные.
Директива set связывает метку и переменную. Эта метка может использоваться далее в программе вместо переменной. Метка, указывающая на переменную в соответствии с директивой set, может быть впоследствии изменена.
Определяемые пользователем с помощью директивы equ константы.
Директива equ связывает метку с константой. Эта метка может использоваться далее в программе. Метка, указывающая на константу в соответствии с директивой set, не может быть впоследствии изменена.
Целые константы
Начинаются с цифры, заканчиваются буквой, определяющей базу системы счисления:
H – шестнадцатиричная,
D – десятичная,
O, Q – восьмеричная,
B – двоичная.
Строковые константы
Это последовательность символов в одинарных (‘) или (“)двойных кавычках. Если не используется директива DB, то принимается во внимание только первых два символа строковой константы, остальные отбрасываются.