- •Программируемые цифровые устройства (часть 1) содержание
- •1 Микропроцессор. Основные сведения
- •Основные характеристики мп
- •1.2 Архитектура микропроцессора. Основные понятия
- •1.2.2 Состав типичного микроконтроллера
- •1.3 Структура мп устройства.
- •1.3.1 Мп с микропрограммным управлением (микропрограммируемая архитектура)
- •Структурная схема устройства микропрограммного управления
- •Структура микро эвм с микропрограммным управлением
- •1.4 Запоминающие устройства.
- •1.4.1 Оперативное запоминающее устройство
- •Статическое озу на биполярных и полевых транзисторах
- •1.4.2 Постоянные зу
- •Однократно программируемое пзу
- •1.5 Команды, форматы команд, система команд
- •1.6 Принцип работы микропроцессора.
- •1.6.1 Модель программирования микропроцессора.
- •1.7 Способы адресации
- •1.8 Основы программирования. Ассемблер.
- •1.9 Организация передачи информации в мпс. Интерфейс.
- •2 Архитектура 8- разрядных микроконтроллеров.
- •2.1 Последовательные интерфейсы микропроцессорных систем
- •2.1.1 Последовательный интерфейс rs-232c
- •2.1.2 Шина 1-Wire
- •Формат команды 1-Wire протокола
- •2.1.3 Интерфейс can4
- •Топология сети can.
- •Data frame стандарта can 2.0a.
- •Побитовый арбитраж на шине can.
- •2.2 Организация портов ввода/вывода
- •2.3 Таймеры и процессоры событий
- •2.4 Ввод/вывод аналоговых сигналов
- •Структурная схема типового модуля ацп
- •Цап на основе таймера в режиме шим
- •2.5 Контроллеры последовательного ввода/вывода
- •2.5.1 Модуль последовательного обмена uart
- •Упрощенная структура модуля uart.
- •2.5.2 Последовательный периферийный интерфейс spi
- •2.5.3 Синхронный последовательный интерфейс i2c
- •Временные диаграммы шины i2c
- •Взаимосинхронизация на шине i2c
- •2.6 Минимизация потребления энергии
- •2.7 Повышение надежности работы мк
- •2.7.1 Мониторинг напряжения питания мк
- •Временные диаграммы работы схемы por
- •Переход мк в состояние сброса по сигналам схемы por и модуля пониженного напряжения питания
- •2.7.2 Сторожевой таймер
- •Структурная схема сторожевого таймера
- •Принцип действия сторожевого таймера
- •3 Периферийные устройства
- •3.1 Генератор и схема начального сброса
- •3.2 Кнопки и датчики
- •3.3 Подключение светодиодных индикаторов
- •3.4 Подключение жидкокристаллических индикаторов
- •3.5 Комбинированное использование портов
- •3.6 Подключение реле и электромагнитных исполнительных устройств
- •3.7 Подключение мк к компьютеру через последовательный порт
- •3.8 Подключение интегрального датчика температуры с интерфейсом 1- Wire
- •4 Микроконтроллеры с архитектурой mcs-51
- •4.1 Особенности архитектуры mcs-51
- •4.2 Структура микроконтроллеров mcs-51
- •4.2.1 Внутренняя структура mcs-51
- •Структура микроконтроллера mcs-51
- •4.2.2 Организация памяти и программно доступные ресурсы
- •Организация памяти в микроконтроллерах семейства 8051
- •4.2.3 Система команд и методы адресации
- •4.3 Современные мк с архитектурой mcs-51
- •5 Микроконтроллеры с risc- архитектурой
- •5.2 Однокристальные risc- контроллеры avr
- •5.2.1 Способы адресации в микроконтроллерах avr
- •5.3 Микроконтроллеры семейства msp430
- •5.3.1 Архитектура
- •5.3.2 Система тактирования
- •5.3.3 Встроенная эмуляция
- •5.3.4 Адресное пространство
- •5.4 Сравнение микроконтроллеров различных семейств
- •6 Разработка систем на бис программируемых цифровых устройств
- •6.1 Основы проектирования систем на микроконтроллерах и плис
- •6.2 Технология разработки микропроцессорных контроллеров
- •6.2.1 Основные этапы цикла разработки микропроцессорного контроллера
- •Литература
1.8 Основы программирования. Ассемблер.
В микропроцессорных системах используется программирование на языке ассемблера. Под ассемблером понимается и язык программирования в мнемокодах команд и программа- транслятор, которая переводит мнемокоды в машинные коды. Процесс перевода (трансляции) в машинные коды называется ассемблированием.
Выражение на языке ассемблера имеет вид:
{(метка)} : (мнемокод) {(операнд)} {,} {(операнд)} {; комментарий}
В фигурных скобках приведены элементы выражения, которых в ряде команд может не быть. Метка, мнемокод и операнды отделяются пробелом или табуляцией.
Пример:
-
Метка
Мнемокод
Операнды
Комментарии
MOV
AX, 00
; команда, два операнда
M1:
ADD
AX, BX
; метка, команда, два операнда
DELAY:
MOV
CX, 13
; метка, команда, два операнда
Метка является символическим адресом команды. Метками обозначаются только те команды, к которым надо выполнять переход по вызову подпрограммы. После метки ставится двоеточие. Рекомендуется использовать смысловые метки. Все метки в программе должны быть уникальными, т.е. в программе не может быть нескольких команд с одинаковыми метками. Имя метки должно состоять из одного слова, содержащего только латинские буквы и цифры, а также символ подчеркивания. Метка должна начинаться с буквы или символа подчеркивания. Нельзя в качестве меток использовать зарезервированные ассемблером слова – коды команд, директивы, имена регистров. В командах переходов или вызова подпрограммы обозначения метки используются как операнд – символический адрес перехода, например:
-
Метка
Мнемокод
Операнды
Комментарии
JMP
M1
; переход к команде с меткой М1
M1:
CALL
DELAY
; вызов подпрограммы с меткой
; DELAY
Мнемокод идентифицирует команду ассемблера. Для мнемокодов используют сокращенные или полные английские слова, которые передают значения основной функции команды: ADD – прибавить, SUB (SUBtract) – вычесть, XCHG (eXCHanGe) – поменять.
Операнды отделяются запятыми. Если заданы два операнда, то первый из них является приемником, а второй – источником информации. Команда может содержать различное количество операндов разных типов, например:
-
Метка
Мнемокод
Операнды
Комментарии
INC
CX
; увеличить СХ (один операнд)
ADD
АХ, 12Н
; прибавить 12Н к содержимому АХ
; (два операнда)
Комментарии игнорируются в процессе трансляции и используются для документирования и понимания содержания программы. Комментарий всегда начинается с символа ";" и может содержать любые символы. Комментарий может занимать всю строку или быть расположенным за командой в одной строке, например:
-
Метка
Мнемокод
Операнды
Комментарии
; эта строка является комментарием.
ADD
АХ, ВХ
; команда и комментарий в одной строке.
Т.к. комментарии не транслируются в машинные коды, то их количество не влияет на объем и эффективность выполнения программы.
Программа на языке ассемблера называется начальной программой или начальным программным модулем. Ассемблирование или перевод начальной программы в машинные коды выполняет программа-транслятор.
Командный модуль содержит машинные коды команд с абсолютными адресами и выполняется микропроцессором. Заканчиваться программа должна или командой end или ret2..
Объектный модуль содержит машинные коды команд с относительными адресами. Объектный модуль выполняется МП после замены относительных адресов на абсолютные с помощью программы-компоновщика, например, LINK.EXE, которая генерирует модуль с расширением ехе (ЕХЕ- файл или ЕХЕ- программу); ЕХЕ- файл, в отличие от командного модуля, может превышать объем одного сегмента (64 К). Однако в этом случае обязательно определять сегменты с помощью директив ассемблера. Заканчивается ЕХЕ- файл стандартной процедурой корректного выхода в MS-DOS.
Программа-компоновщик имеет еще одно назначение – она объединяет объектный модуль с библиотечными модулями, либо несколько отдельных объектных модулей в один ЕХЕ- файл. Библиотечными модулями называются объектные файлы, которые содержат наиболее распространенные подпрограммы. Библиотечные модули размещаются в специальном системном файле – библиотеке (LIBRARY).
При ассемблировании программа-транслятор генерирует листинг и файл листинга программы. Листинг – отображения на дисплее или бумаге текстов начального программного модуля, программного модуля (сом или obj) и сообщений, которые указывают на ошибки программирования, связанные с нарушением правил записи выражений (например, нет операнда или неправильный мнемокод команды).