- •Семейство микроконтроллеров 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 поддерживают два уровня приоритетов прерываний: высокий (high) и низкий (low). Это позволяет определить порядок обработки прерываний при их одновременном срабатывании.
Приоритет высокого уровня прерываний имеет более высокий приоритет и будет обрабатываться первым, если возникнет конфликт с прерыванием низкого уровня. Прерывания одного уровня обрабатываются в порядке их поступления.
Для настройки приоритетов прерываний в MCS-51 используется специальный регистр — регистр IP (Interrupt Priority Register). Регистр IP состоит из двух бит: IPH (Interrupt Priority High) и IPL (Interrupt Priority Low), которые управляют приоритетами прерываний.
Для установки приоритета прерывания, нужно установить соответствующие биты IPH и IPL в регистре IP. Если бит IPH установлен, то прерывание имеет приоритет высокого уровня, а если бит IPH сброшен, то прерывание имеет приоритет низкого уровня. Если прерывания имеют одинаковый приоритет, то они обрабатываются в порядке поступления.
Пример программного кода для установки приоритетов прерываний:
MOV IP, #0x03 ; Установка приоритета прерывания высокого уровня
В данном примере, приоритет прерывания установлен на высокий уровень (соответствующий бит IPH установлен в 1), а прерывание низкого уровня будет иметь приоритет 0 (соответствующий бит IPH сброшен в 0).
Установка приоритетов прерываний позволяет более гибко управлять порядком обработки прерываний и придать большую важность определенным событиям в системе, которые требуют более быстрой обработки. Однако, следует быть осторожным при использовании приоритетов прерываний, чтобы не пропустить более важные события или создать условия для возникновения бесконечных циклов обработки прерываний.
Последовательный Порт mcs-51. Программирование последовательного порта.
Последовательный порт (Serial Port) в микроконтроллерах MCS-51 является интерфейсом для передачи данных в последовательной форме. Он обычно используется для связи с внешними устройствами, такими как компьютеры, датчики, дисплеи и другие периферийные устройства.
Программирование последовательного порта в MCS-51 включает в себя настройку регистров и обработку прерываний для передачи и приема данных. Вот некоторые шаги, которые обычно выполняются при программировании последовательного порта:
1. Настройка скорости передачи данных:
Необходимо установить скорость передачи данных в битах в секунду (бод) с помощью специального регистра - регистра Baud Rate Generator (BRG). Значение BRG рассчитывается на основе тактовой частоты микроконтроллера и желаемой скорости передачи данных.
2. Конфигурация режима работы последовательного порта:
MCS-51 поддерживает различные режимы работы последовательного порта, такие как режим асинхронной передачи (UART) или режим синхронной передачи. Необходимо выбрать соответствующий режим и настроить регистры управления для этого режима.
3. Настройка формата кадра данных:
Формат кадра данных включает количество бит данных, бит контроля четности (если требуется), биты остановки и другие параметры передачи данных. Необходимо настроить регистры управления для соответствующего формата кадра данных.
4. Передача данных:
Для передачи данных через последовательный порт, нужно записать данные в соответствующий регистр данных. При передаче данных микроконтроллер будет автоматически передавать данные в последовательной форме по указанной скорости и формату кадра.
5. Прием данных:
Для приема данных через последовательный порт, нужно проверять флаги состояния приемника и считывать данные из соответствующего регистра данных. Обычно, микроконтроллер генерирует прерывание при поступлении новых данных, и обработчик прерывания отвечает за прием и обработку данных.
Пример программного кода для настройки и использования последовательного порта (UART) в MCS-51:
MOV TMOD, #0x20 ; Настройка режима работы таймера/счетчика 1 для UART
MOV TH1, #0xFD ; Настройка Baud Rate Generator для скорости 9600 бод
SETB TR1 ; Запуск таймера/счетчика 1
MOV SCON, #0x50 ; Настройка регистра управления последовательным портом (UART)
SETB TI ; Установка флага передачи для отправки данных
В этом примере, настраивается режим работы таймера/счетчика 1 для UART с использованием регистра TMOD. Затем, устанавливается значение TH1 в Baud Rate Generator для достижения скорости 9600 бод. Запускается таймер/счетчик 1 с помощью команды SETB TR1.
Далее, настраивается регистр управления последовательным портом (UART) с использованием регистра SCON. Устанавливается флаг передачи (TI) для отправки данных.
После настройки и использования последовательного порта, данные могут быть переданы или приняты через соответствующие регистры данных (например, SBUF).
Программирование последовательного порта в MCS-51 требует внимательности при настройке параметров передачи данных и обработке прерываний для эффективной и надежной коммуникации с внешними устройствами.
