Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shamr_voprosy.docx
Скачиваний:
6
Добавлен:
26.06.2024
Размер:
161.73 Кб
Скачать
  1. Приоритеты прерываний 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).

Установка приоритетов прерываний позволяет более гибко управлять порядком обработки прерываний и придать большую важность определенным событиям в системе, которые требуют более быстрой обработки. Однако, следует быть осторожным при использовании приоритетов прерываний, чтобы не пропустить более важные события или создать условия для возникновения бесконечных циклов обработки прерываний.

  1. Последовательный Порт 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 требует внимательности при настройке параметров передачи данных и обработке прерываний для эффективной и надежной коммуникации с внешними устройствами.