- •Семейство микроконтроллеров 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 и регистре-расширителе в соответственно
Прерывания портов р1 и р2 мк msp430. Регистры флагов прерывания р1ifg, р2ifg.
Микроконтроллер MSP430 имеет два порта ввода/вывода, обозначаемых как P1 и P2. Эти порты могут генерировать прерывания при изменении состояния входов или при активации специальных флагов.
Регистры флагов прерывания P1IFG и P2IFG используются для обработки прерываний от портов P1 и P2 соответственно. Каждый бит в этих регистрах соответствует определенному пину порта и индицирует наличие прерывания для данного пина. Когда состояние пина меняется, соответствующий бит в регистре флагов устанавливается в единицу.
Для использования прерываний портов P1 и P2 в MSP430, необходимо выполнить следующие шаги:
Настройка режима работы портов: Перед использованием прерываний необходимо настроить соответствующие пины портов P1 и P2 на режим прерывания. Это делается путем установки битов в регистрах P1IE (Port 1 Interrupt Enable) и P2IE (Port 2 Interrupt Enable). Установка бита в единицу разрешает прерывания для соответствующего пина.
Настройка типа прерывания: Для каждого пина можно выбрать тип прерывания, который будет генерироваться при изменении состояния. Это может быть прерывание по спаду (от высокого к низкому уровню), прерывание по фронту (от низкого к высокому уровню) или прерывание по изменению (на любое изменение состояния). Настройка типа прерывания выполняется путем установки соответствующих битов в регистрах P1IES (Port 1 Interrupt Edge Select) и P2IES (Port 2 Interrupt Edge Select).
Обработка прерывания: Когда происходит изменение состояния пина, соответствующий бит в регистре флагов P1IFG или P2IFG устанавливается в единицу. Чтение этого регистра позволяет определить, какие именно пины сгенерировали прерывание. Далее, обработчик прерывания выполняет необходимые действия в ответ на прерывание.
Сброс флага прерывания: После обработки прерывания необходимо сбросить соответствующий бит флага прерывания. Это делается путем записи единицы в соответствующий бит регистра флагов P1IFG или P2IFG.
Важно отметить, что при использовании прерываний портов P1 и P2 также требуется настройка приоритета прерываний в системе прерываний MSP430.
Использование прерываний портов позволяет реагировать на изменение состояния входов в реальном времени и выполнять соответствующие действия. Это особенно полезно в приложениях, где требуется мгновенная реакция на внешние события, такие как нажатие кнопок или изменение сигналов сенсоров.
Функционирование сторожевого таймера мк msp430.
Сторожевой таймер (Watchdog Timer) в микроконтроллерах MSP430 представляет собой специальный таймер, который используется для контроля работы микроконтроллера и предотвращения его зависания или зацикливания. Он является важной функцией для обеспечения надежности и стабильности работы устройства.
Функционирование сторожевого таймера в MSP430 включает следующие основные аспекты:
Настройка сторожевого таймера: Перед использованием сторожевого таймера необходимо настроить его параметры. Это включает выбор периода срабатывания таймера и настройку режима работы.
Установка периода срабатывания: Сторожевой таймер обычно имеет заданный период срабатывания, который определяет интервал времени между проверками таймера. Этот период устанавливается путем записи определенного значения в регистры, контролирующие сторожевой таймер.
Сброс таймера: В течение периода срабатывания сторожевого таймера, микроконтроллер должен периодически сбрасывать таймер, чтобы он не достигал предельного значения и не генерировал сброс устройства. Это выполняется путем записи определенного значения в регистры сброса таймера.
Обработка таймаута: Если сторожевой таймер не сбрасывается в течение заданного периода, это означает, что микроконтроллер завис или зациклился. В этом случае таймер генерирует прерывание или сброс устройства, в зависимости от настроек. Обработка таймаута включает принятие соответствующих мер для восстановления нормальной работы устройства или, при необходимости, перезагрузку системы.
Сторожевой таймер MSP430 обеспечивает надежную защиту от зависания или зацикливания микроконтроллера, что позволяет повысить надежность и стабильность работы устройства. Правильная настройка и использование сторожевого таймера в соответствии с требованиями конкретного приложения помогают обеспечить безопасность и надежность работы системы.
