- •Семейство микроконтроллеров mcs-51.
- •Отличительные особенности контроллеров семейства mcs-51.
- •Структурная организация микроконтроллеров семейства mcs-51.
- •Распределение памяти данных mcs-51.
- •Распределение памяти программ mcs-51.
- •Флаги mcs-51. Слово состояния процессора mcs-51.
- •Команды, модифицирующие флаги.
- •Арифметические команды:
- •Логические команды:
- •Сдвиговые команды:
- •Команды сравнения:
- •Система команд mcs-51. Типы команд.
- •Методы адресации mcs-51.
- •Команды пересылки обмена и загрузки mcs-51.
- •Арифметические команды mcs-51.
- •Команда сложения (add):
- •Команда вычитания (subb):
- •Логические команды mcs-51.
- •1. Команда логического и (anl):
- •2. Команда логического или (orl):
- •3. Команда логического исключающего или (xrl):
- •4. Команда логического не (cpl):
- •Команды, оперирующие с битами, в системе команд mcs-51.
- •Команды условных переходов mcs-51.
- •1. Команда перехода, если равно (jz, je):
- •2. Команда перехода, если не равно (jnz, jne):
- •3. Команда перехода, если больше (jnc, jnb, ja, jae):
- •4. Команда перехода, если меньше или равно (jb, jbc, jbe):
- •Команды безусловных переходов mcs-51.
- •Команды инкремента и декремента.
- •Таймеры/Счетчики mcs-51. Программирование таймеров/счетчиков.
- •Режимы работы 0 и 1 таймеров/счетчиков mcs-51.
- •1. Режим работы 0 (Mode 0):
- •2. Режим работы 1 (Mode 1):
- •Режимы работы 2 и 3 таймеров/счетчиков mcs-51.
- •1. Режим работы 2 (Mode 2):
- •2. Режим работы 3 (Mode 3):
- •Режимы прерываний mcs-51. Программирование режимов прерываний.
- •1. Прерывания по уровню (Level-Triggered Interrupts):
- •2. Прерывания по фронту (Edge-Triggered Interrupts):
- •3. Программные прерывания (Software Interrupts):
- •4. Внешние прерывания (External Interrupts):
- •Приоритеты прерываний mcs-51.
- •Последовательный Порт mcs-51. Программирование последовательного порта.
- •Режимы работы последовательного порта mcs-51.
- •1. Асинхронный режим (uart):
- •2. Синхронный режим:
- •3. Режим мастера spi:
- •Состав и назначение регистров специальных функций mcs-51.
- •Система команд mcs-51.
- •Универсальный асинхронный приемник-передатчик (уапп) и режимы его работы.
- •1. Асинхронный режим (uart):
- •2. Синхронный режим:
- •3. Многопроцессорный режим:
- •Таймер-счетчики mcs-51 и режимы их работы.
- •1. Режим 0 (13-битный таймер):
- •2. Режим 1 (16-битный таймер):
- •3. Режим 2 (8-битный таймер с автоперезагрузкой):
- •Организация прерываний в микроконтроллере mcs-51.
- •1. Источники прерываний:
- •Способы адресации mcs-51.
- •Система команд микроконтроллеров mcs-51.
- •Организация пошагового режима работы при отладке микроконтроллеров mcs-51.
- •6. Наблюдение за состоянием и переменными:
- •7. Анализ и исправление ошибок:
- •Таймер-счетчики микроконтроллеров mcs-51 и режимы их работы.
- •5. Другие режимы:
- •3. Обработка прерываний таймера 0 (опционально):
- •4. Главный цикл программы:
- •1. Настройка таймера 1 в режиме захвата/сравнения:
- •2. Включение прерываний для захвата значения:
- •3. Настройка обработчика прерывания:
- •4. Главный цикл программы:
- •Организация прерываний в микроконтроллере mcs-51.
- •1. Настройка регистров:
- •2. Написание обработчиков прерываний:
- •3. Настройка векторов прерываний:
- •4. Включение прерываний:
- •Режимы работы микроконтроллера mcs-51.
- •Обзор 8-разрядных микроконтроллеров mcs-51.
- •Структурная организация и назначение выводов микроконтроллера mcs-51.
- •Семейство микроконтроллеров msp430.
- •Мк msp430x1xx. Система тактирования.
- •Архитектура мк msp430. Адресное пространство.
- •Немаскируемые и маскированные прерывания мк msp430.
- •Обработка прерываний мк msp430. Векторы прерываний.
- •Регистры цп мк msp430.
- •Режимы адресации мк msp430.
- •Система команд мк msp430. Командные циклы и длина команд.
- •Принципы построения устройств с низким энергопотреблением. Подключение неиспользуемых выводов.
- •Цифровые входы / выходы мк msp430. Функционирование цифровых входов / выходов.
- •Прерывания портов р1 и р2 мк msp430. Регистры флагов прерывания р1ifg, р2ifg.
- •Функционирование сторожевого таймера мк msp430.
- •Сторожевой таймер мк msp430 в режиме интервального таймера.
- •Блоки захвата / сравнения Таймера а мк msp430.
- •Таймер в мк msp430. Отличия от таймера а. Работа таймера в.
- •Инициализация usart. Асинхронные коммуникационные форматы.
- •Задачи mcs-51 на языке Ассемблера
- •Вариант 4. Составить программу вычитания четырехбайтовых беззнаковых чисел. Первое число находится в рпд по адресу 30÷33h, второе – по адресу 38÷3Bh. Результат поместить на место первого операнда.
- •Вариант 8. В рпд, начиная с адреса 30h находится массив из 20 элементов. Подсчитать количество элементов массива, попавших в интервал от 50 до 100. Результат запомнить в регистре r5.
- •Вариант 9. В рпд, начиная с адреса 30н, находится массив из 16 чисел. Найти максимальный элемент массива и поместить в r2 его значение, а в r3 его адрес.
- •Вариант 10. В регистре r5 находится двоично-десятичный операнд. Перевести операнд в шестнадцатеричное значение и поместить в r5
- •Вариант 14. В рпд с адреса 20h находится массив из 16 чисел. Элементами массива являются числа 32, 64, 96 и 128. Подсчитать и сохранить в регистрах r4 ÷ r7 количество повторений каждого элемента.
- •Вариант 18. В впд, начиная с адреса 100h, находится массив из 10 элементов. Получить в регистре r3 число элементов, равных 55h. Счет прервать, если число элементов превысит 3.
- •Вариант 20. В впд с адреса 300h находится массив из 15 чисел. Элементами массива являются числа 10, 20, 30 и 180. Подсчитать и сохранить в регистрах r4 - r7 количество повторений каждого элемента.
- •Вариант 21. В порты микроконтроллера р0-р3 поступают двоично-десятичные данные. Перевести данные в шестнадцатеричный формат и разместить в рпд последовательно с адреса 30h.
- •Вариант 22. Выдать последовательно в порты р1 и р2 микроконтроллера содержимое младших байт счетчиков в двоично-десятичном формате (в р1 – сотни, в р2 – десятки и единицы).
- •Вариант 23. В порты р0÷р3 поступают шестнадцатеричные данные. Занести в рпд, начиная с адреса 40h количество единиц, поступивших в каждый порт.
- •Вариант 24. Для каждого из регистров r0, r3 и регистра-расширителя в последовательно выдать в порты информацию о содержимом регистров:
- •Вариант 25. В каждый из портов р0÷р2 поступают данные от двух четырехразрядных датчиков. Выдать в порт р3 сумму шести датчиков, подключенных к портам р0÷р2.
- •Вариант 26. Записать в регистры r3, r7 и регистр-расширитель в произведение их старшей и младшей тетрады соответственно.
- •Вариант 27. Выдать в порты р0÷р2 количество единиц, содержащихся в регистрах r0, r7 и регистре-расширителе в соответственно
Распределение памяти данных mcs-51.
Микроконтроллеры семейства MCS-51 имеют ограниченное пространство памяти данных, которое используется для хранения переменных, временных данных, стека и других данных, используемых в программе. Распределение памяти данных в MCS-51 следующее:
Регистры общего назначения (R0-R7): Первые 8 байт памяти данных (адреса 0x00-0x07) зарезервированы для 8 регистров общего назначения R0-R7. Эти регистры используются для хранения промежуточных результатов вычислений и операций с данными.
Банки регистров (R0-R7): Память данных в MCS-51 разделена на несколько банков регистров, и каждый банк содержит 8 регистров общего назначения. Используется основной банк (банк 0), который доступен по умолчанию, и дополнительные банки (банки 1-3), которые могут быть выбраны с помощью битов RB0 и RB1 в регистре контроля банков (PSBANK).
Битовые переменные и битовые поля: Отдельные биты в регистрах общего назначения могут быть использованы для хранения битовых переменных или битовых полей. Это позволяет оптимизировать использование памяти и упростить доступ к отдельным битам.
Остальная память данных: После регистров общего назначения и битовых переменных следует оставшаяся память данных, которая может быть использована для хранения переменных и массивов. Размер доступной памяти зависит от конкретной модели микроконтроллера MCS-51 и может варьироваться от нескольких байт до нескольких килобайт.
Стек: Последние байты памяти данных (обычно начиная с адреса 0x7F) зарезервированы для стека. Стек используется для сохранения адресов возврата, локальных переменных и временных данных во время выполнения подпрограмм и прерываний.
Важно отметить, что микроконтроллеры MCS-51 обладают ограниченным объемом памяти данных. Поэтому необходимо тщательно управлять использованием памяти и оптимизировать хранение данных, особенно при разработке более сложных программ.
Распределение памяти программ mcs-51.
Микроконтроллеры семейства MCS-51 имеют специально организованную память программ, в которой хранится исполняемый код программы. Распределение памяти программ в MCS-51 выглядит следующим образом:
Область кода: Первая часть памяти программ (обычно начиная с адреса 0x0000) зарезервирована для хранения исполняемого кода программы. Эта область содержит инструкции процессора, которые определяют последовательность операций, которые должен выполнить микроконтроллер.
Область прерываний: За областью кода обычно следует область прерываний. Здесь размещаются прерывания, которые позволяют микроконтроллеру реагировать на определенные события или запросы от внешних устройств. Область прерываний может занимать несколько байт или более в зависимости от числа и типов прерываний, используемых в программе.
Область констант: За областью прерываний находится область, где можно хранить константы или постоянные данные, используемые в программе. Эта область может быть полезна для хранения значений, которые не изменяются во время выполнения программы, например, таблицы с данными или предопределенные значения.
Область данных: Последняя часть памяти программ (обычно адреса после области констант) зарезервирована для хранения данных, используемых программой во время выполнения. Это может быть переменные, массивы или другие данные, которые могут изменяться или обновляться в процессе работы программы.
Важно отметить, что размер памяти программы в микроконтроллерах MCS-51 может варьироваться в зависимости от конкретной модели. Некоторые модели могут иметь ограниченную память программы, ограничивая размер программы, которую можно загрузить, в то время как другие модели могут иметь более обширное пространство памяти программы, позволяя размещать более сложные и большие программы.
При разработке программы для микроконтроллера MCS-51 необходимо тщательно управлять памятью программы и оптимизировать использование памяти, особенно при работе с ограниченным пространством памяти. Это может включать использование сжатия кода, оптимизацию алгоритмов и использование оптимальных структур данных для экономии места в памяти программы.
