- •Семейство микроконтроллеров 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 и регистре-расширителе в соответственно
Обработка прерываний мк msp430. Векторы прерываний.
В микроконтроллере MSP430 обработка прерываний осуществляется с помощью векторов прерываний. Векторы прерываний представляют собой адреса обработчиков прерываний, которые содержатся в таблице векторов прерываний (Interrupt Vector Table, IVT). Когда возникает прерывание, процессор автоматически переходит к адресу обработчика прерывания из соответствующего вектора прерывания.
Структура IVT в MSP430 может быть различной в зависимости от конкретной модели микроконтроллера и его конфигурации, но обычно она представляет собой линейный массив адресов обработчиков прерываний. Каждое прерывание имеет свой уникальный номер или индекс, который соответствует определенному адресу в IVT. Например, прерывание от таймера может иметь индекс 0, а прерывание от внешнего сигнала - индекс 1 и так далее.
При настройке обработки прерываний в MSP430 программисту необходимо заполнить IVT соответствующими адресами обработчиков прерываний. Это может быть сделано путем прямого задания адресов вручную или с использованием специальных директив компилятора или среды разработки. Обработчики прерываний - это функции или подпрограммы, которые содержат код для обработки конкретного прерывания. Когда происходит прерывание, процессор автоматически вызывает соответствующий обработчик прерывания, передавая управление ему.
Векторы прерываний в MSP430 обычно располагаются в особой области памяти, которая называется "пространством векторов прерываний". Размер этого пространства зависит от количества поддерживаемых прерываний и их индексов. Обычно каждый вектор прерывания занимает несколько байтов памяти, и адреса обработчиков прерываний должны быть выровнены по определенной границе, чтобы обеспечить корректный доступ и исполнение кода обработчиков.
Важно правильно настроить векторы прерываний и обработчики прерываний в MSP430, чтобы гарантировать корректную и своевременную обработку событий, требующих прерывания обычного потока выполнения программы. Обработчики прерываний должны быть эффективными и быстрыми, чтобы минимизировать задержки и обеспечить отзывчивость системы на внешние события.
Для конкретных векторов прерываний в микроконтроллере MSP430 необходимо учитывать его конкретную модель и конфигурацию. Однако, в общем случае, некоторые распространенные векторы прерываний в MSP430 включают:
RESET Vector: Этот вектор используется для обработки сброса микроконтроллера и инициализации системы.
NMI (Non-Maskable Interrupt) Vector: Вектор немаскируемого прерывания, которое имеет самый высокий приоритет и не может быть отключено программно.
INT0, INT1, INT2 и т.д.: Векторы прерываний, связанные с внешними прерываниями или внешними сигналами, например, от внешних устройств или периферийных модулей.
Timer Interrupt Vectors: Векторы прерываний, связанные с таймерами. MSP430 может иметь несколько таймеров, каждый из которых может иметь свой собственный вектор прерывания.
UART (Universal Asynchronous Receiver/Transmitter) Interrupt Vector: Вектор прерывания, связанный с последовательным портом (UART), используемым для коммуникации с внешними устройствами посредством асинхронной передачи данных.
ADC (Analog-to-Digital Converter) Interrupt Vector: Вектор прерывания, связанный с преобразователем аналогового сигнала в цифровой (ADC), используемым для измерения аналоговых величин.
Это только некоторые из возможных векторов прерываний, которые могут быть использованы в MSP430. Реальный список векторов прерываний и их назначение зависит от конкретной модели микроконтроллера и настроек системы. Поэтому всегда рекомендуется обратиться к документации и руководству по конкретной модели MSP430 для получения точной информации о векторах прерываний.
16-разрядный RISC CPU МК MSP430x1xx.
Микроконтроллеры MSP430x1xx являются 16-разрядными RISC (Reduced Instruction Set Computer) процессорами, которые разработаны компанией Texas Instruments. Они предлагают широкий набор периферийных функций и низкое энергопотребление, что делает их идеальным выбором для различных приложений, включая мобильные устройства, умные сети, медицинское оборудование и промышленную автоматизацию.
Основные характеристики 16-разрядного RISC CPU MSP430x1xx включают:
Архитектура:
RISC-архитектура с набором инструкций, оптимизированным для высокой производительности и эффективности.
16-разрядная ширина данных и инструкций, что позволяет обрабатывать данные и инструкции за один тактовый цикл.
Фиксированная длина инструкций (16 бит), что облегчает декодирование и исполнение инструкций.
Регистры:
16-битный регистр программного счетчика (PC), хранящий адрес текущей выполняемой инструкции.
Регистр статуса (SR), содержащий флаги состояния, такие как флаг переноса, флаг нуля и флаг переполнения.
Регистры общего назначения (R0-R15) для хранения данных и промежуточных результатов вычислений.
Память:
Инструкционная память (программная память) для хранения программного кода и константных данных.
Оперативная память (RAM) для хранения переменных и временных данных во время выполнения программы.
Арифметическо-логическая единица (ALU):
ALU поддерживает базовые арифметические операции, такие как сложение, вычитание, умножение и деление.
Он также обеспечивает логические операции, включая И, ИЛИ, исключающее ИЛИ и сдвиги.
Периферийные модули:
MSP430x1xx имеет различные периферийные модули, включая аналогово-цифровой преобразователь (ADC), последовательный интерфейс (UART/I2C/SPI), таймеры/счетчики, порты ввода-вывода (GPIO) и другие модули.
Низкое энергопотребление:
MSP430x1xx известен своим низким энергопотреблением, что делает его подходящим для батарейного питания и энергоэффективных приложений.
Он обладает различными режимами сна и возможностью управления энергопотреблением периферийных модулей.
MSP430x1xx представляет собой мощный и гибкий микроконтроллер с 16-разрядным RISC CPU, который обладает низким энергопотреблением, широким набором периферийных модулей и отличной производительностью. Это делает его популярным выбором для различных приложений, требующих низкого энергопотребления и высокой надежности.
