
- •Основные понятия и определения микропроцессорной техники: микропроцессор, микропроцессорная система, микроконтроллер. Принципы построения микропроцессорных систем.
- •Архитектура микропроцессора: архитектура со сложной системой команд (cisc-процессоры), архитектура с упрощенной системой команд (risc-процессоры). Принстонская и гарвардская архитектуры.
- •3. Структура микропроцессорной системы и основные режимы ее работы – выполнение основной программы, обслуживание прерываний, прямой доступ к памяти.
- •4. Модуль процессора микропроцессорной системы. Состав модуля – операционный блок, блок управления, интерфейсный блок. Выполняемые функции.
- •5. Модуль памяти мпс. Выполняемые функции. Основные характеристики. Типы микросхем, применяемых для построения постоянной и оперативной памяти микропроцессорных систем.
- •6. Реализация обмена данными между внешними устройствами и микропроцессорной системой (мпс). Модуль ввода/вывода мпс, выполняемые функции, функциональная схема устройства ввода/вывода.
- •7. Понятие о системе команд микропроцессоров. Основные группы команд. Способы адресации операндов в микропроцессорах.
- •Форматы команд
- •Способы адресации операндов и команд
- •Адресация операндов
- •Адресация команд
- •Группы команд микропроцессора
- •8. Классификация и структура микроконтроллеров (мк). Процессорное ядро мк, его основные характеристики.
- •9. Типы памяти микроконтроллеров: память программ, память данных, регистры, внешняя память.
- •Память программ
- •Память данных
- •Регистры мк
- •Внешняя память
- •10. Порты ввода/вывода: назначение, основные типы. Таймеры микроконтроллеров: назначение, внутренняя структура.
- •Таймеры микроконтроллеров
- •12. Интерфейсы микропроцессорных систем, классификация и принципы построения
- •14. Последовательные асинхронные интерфейсы: rs-232, rs-422, rs-485, ирпс (интерфейс радиальный последовательный). Назначение, форматы передачи данных, основные технические характеристики.
- •15. Последовательные синхронные интерфейсы: spi (Synhronous Peripheral Interface), i2c (Inter Integrated Circuit). Назначение, форматы передачи данных, основные технические характеристики.
- •Интерфейсная шина i2c
- •16. Однокристальные микроконтроллеры семейства mcs-51: состав и общая характеристика. Структурная организация: регистры, память данных и программ.
- •17. Однокристальные микроконтроллеры семейства mcs-51: порты ввода/вывода, таймеры/счетчики, последовательный порт, система прерываний. Назначение, основные особенности.
- •18. Работа микроконтроллеров семейства mcs-51 в автономном режиме, способы подключения внешней памяти программ и данных.
- •21. Микроконтроллеры подсемейства pic18: общая характеристика, особенности архитектуры и системы команд.
- •Организация памяти
- •Система прерывания
- •Порты ввода/вывода
- •Генератор тактовых импульсов
- •Система команд pic18
- •Основные этапы разработки микроконтроллерных систем
- •Разработка и автономная отладка аппаратных средств мкс
- •Разработка и отладка программного обеспечения
- •23. Язык Ассемблер для микроконтроллеров семейства mcs-51: назначение, структура полей предложений на языке Ассемблер, директивы Ассемблера.
- •Поля предложения на языке Ассемблер
- •Примеры
- •Директивы Ассемблера
- •Метка Операция Операнды Комментарий
- •Метка Операция Операнды Комментарий
- •Опрос двоичного датчика
- •Ожидание события
- •Формирование временной задержки
- •Формирование управляющих сигналов из мк
- •Защита от дребезга контактов
- •25. Методы ввода информации с клавиатуры для микроконтроллеров семейства mcs-51: виды клавиатур, схема подключения контактов клавиатур к микроконтроллеру, методы опроса клавиатуры.
- •Описание микроконтроллерного устройства
- •Создание исходного файла базовой программы
- •Включение и выключение светодиода. Чтобы подать логическую единицу на вывод rb0 (для включения светодиода) необходимо в нулевой бит регистра portb записать 1:
- •Опрос переключателя. Ниже приведен текст программы, которая по нажатию клавиши sa1 включает светодиод vd1, а при ее отпускании светодиод гаснет.
- •Представление информации в языке Си
- •Операции и выражения в Си
- •Операторы управления вычислительным процессом
- •Функции
17. Однокристальные микроконтроллеры семейства mcs-51: порты ввода/вывода, таймеры/счетчики, последовательный порт, система прерываний. Назначение, основные особенности.
Порты P0, P1, P2, P3 являются двунаправленными параллельными портами ввода/вывода и предназначены для обеспечения обмена информацией МК с внешними устройствами, образуя 32 линии ввода/вывода. Линии портов могут также выполнять ряд дополнительных (альтернативных) функций.
Через порт P0 (в мультиплексном режиме) выводится младший байт адреса, а также выдается и принимается в МК байт данных при работе с внешней памятью программ и данных.
Через порт P2 выводится старший байт адреса при работе с внешней памятью программ и данных.
Каждая линия порта P3 имеет индивидуальную альтернативную функцию:
P3.0 – вход приемника последовательного порта RxD;
P3.1 – выход передатчика последовательного порта TxD;
P3.2 – вход запроса внешнего прерывания INT0;
P3.3 – вход запроса внешнего прерывания INT1;
P3.4 – вход счетчика внешних событий T0;
P3.5 – вход счетчика внешних событий T1;
P3.6 – строб записи во внешнюю память данных ;
P3.7 – строб чтения из
внешней памяти данных
.
При использовании по своему основному назначению каждая линия любого порта может быть задействована для ввода или вывода информации независимо от направления передачи других линий этого же порта. Каждый порт отображается в карте памяти МК регистром специальных функций с тем же именем: P0, P1, P2, P3. Следует отметить, что обращаться к регистрам данных портов P0-P3 следует с использованием только прямой адресации. Косвенная адресация для портов невозможна. Все регистры портов допускают прямую побитовую адресацию. Отдельные линии портов могут быть установлены и сброшены командами операций с битами.
Примеры команд работы с портами:
MOV A,P1 ; Считать состояние линий порта P1 и переслать данные в аккумулятор
MOV P2,#55H ; Вывести в порт P2 код 55H
ORL P3,#0FH ; Вывести на линии 0-3 порта P3 «единицы»
Порты ввода/вывода МК 8051 не имеют специальных регистров направления передачи данных. Для перевода линии порта в режим ввода следует записать в ее триггер-защелку «1». Примеры команд настройки портов на ввод:
MOV P0,#0FFH ; Настроить все линии порта P0 на ввод
SETB P1.0 ; Настроить 0-ю линию порта P1 на ввод
ORL P2,#00001111B ; Настроить линии разрядов 0-3 порта P2 на ввод
Микроконтроллер 8051 имеет два 16-разрядных таймера/счетчика, которые именуют Т/С0 и Т/С1. Каждый из них может работать как в режиме таймера, так и в режиме счетчика внешних событий (см. п.10). При работе в режиме таймера на вход двоичного счетчика поступает импульсная последовательность с частотой fСЧ = fCLK/12, т.е. его содержимое инкрементируется в каждом машинном цикле. При работе в качестве счетчика на вход двоичного счетчика поступают импульсы со входов T0/P3.5 для Т/С0 и T1/P3.6 для Т/С1. Содержимое Т/С инкрементируется под воздействием перехода из «1» в «0» внешнего входного сигнала. Так как на распознавание перехода требуется два машинных цикла, то максимальная частота внешней последовательности импульсов равна fCLK/24 при длительности единичного значения импульса не менее одного машинного цикла. На значение минимальной частоты ограничений нет.
16-разрядные двоичные счетчики Т/С0 и Т/С1 состоят из двух пар 8-разрядных регистров, соответственно TH0, TL0 и TH1, TL1. Причем регистры TH0, TH1 – старшие, а регистры TL0, TL1 - младшие. Каждый из них является регистром специальных функций и имеет свой адрес в памяти.
Каждый таймер/счетчик может работать в одном из четырех режимов, обозначаемых цифрами 0, 1, 2 и 3. Для управления режимами работы T/C и для организации взаимодействия таймеров с системой прерывания используются два регистра специальных функций TMOD – регистр режима и TCON – регистр управления.
Последовательный порт ввода/вывода обеспечивает синхронный или асинхронный режимы передачи данных и служит для взаимодействия МК с различными внешними устройствами по последовательному интерфейсу. Последовательный порт МК 8051 представляет собой модуль UART (или по-другому, УАПП – универсальный асинхронный приемо-передатчик).
Два регистра специальных функций используются для работы с последовательным портом МК 8051: SCON – регистр управления портом; SBUF – регистр данных порта.
Последовательный порт использует два вывода порта P3, которые выполняют альтернативную функцию: вывод P3.0 является входом последовательных данных RxD (входом приемника), вывод P3.1 – выходом последовательных данных TxD (выходом передатчика).
Порт может работать в четырех режимах, выбор которых осуществляется через регистр SCON.
Режим 0. Это синхронный режим работы последовательного порта, в котором он выполняет функции 8-разрядного сдвигового регистра. В этом режиме информация и передается и принимается через вход приемника RxD. Принимаются или передаются 8 бит данных. Через выход передатчика TxD выдаются импульсы синхронизации, которые сопровождают каждый принимаемый или передаваемый бит.
Режим 1. Это асинхронный режим работы порта, в котором передаются через TxD или принимаются из RxD 10 бит информации: старт-бит, 8 бит данных и стоп-бит. Скорость приемо-передачи в этом режиме – величина переменная и задается таймером Т/С1.
Режим 2. Это также асинхронный режим работы порта, в котором через TxD передаются или из RxD принимаются 11 бит информации: старт-бит, 8 бит данных, программируемый 9-й бит (D8) и стоп-бит.
Режим 3. Совпадает с режимом 2 во всех деталях, за исключением частоты приемо-передачи, которая задается таймером Т/С1.
Механизм прерываний в микроконтроллерах семейства MCS-51 позволяет автоматически реагировать на внешние и на внутренние события (переполнение таймеров/счетчиков, завершение последовательного обмена). Упрощенная схема прерываний показана на рис. 17.1.
Рис. 17.1. Структура системы прерываний МК 8051
Каждое из внешних прерываний
и
может быть вызвано либо низким уровнем
(логический 0) или переходом из «1» в
«0» сигналов на выводах микроконтроллера
P3.2, P3.3, что
определяется состоянием битов IT0
и IT1 в регистре TCON.
При поступлении запросов внешнего
прерывания
,
устанавливаются
флаги IE0, IE1
в регистре TCON, которые
инициируют вызов соответствующей
подпрограммы обслуживания прерывания.
Сброс этих флагов выполняется аппаратно
(автоматически внутренними средствами
МК) только в том случае, если прерывание
было вызвано переходом из «1» в «0»
сигнала на входах
,
.
Если же прерывание было вызвано низким
уровнем (логическим 0) входного сигнала,
то сброс флагов IE0, IE1
выполняет соответствующая
подпрограмма обслуживания прерывания
путем воздействия на источник прерывания
с целью снятия им запроса.
Прерывания от таймеров/счетчиков T/C0 и T/C1 вызываются установкой флагов TF0 и TF1 регистра TCON, которые устанавливаются при переполнении соответствующих регистров таймеров/счетчиков. Сброс флагов TF0 и TF1 производится аппаратурой микроконтроллера, т.е. автоматически, при переходе к подпрограмме обслуживания прерывания.
Прерывание от последовательного порта вызывается установкой флага прерывания приемника RI или флага прерывания передатчика TI в регистре SCON. В отличие от всех остальных флагов, RI и TI сбрасываются только программным путем обычно в пределах подпрограммы обработки прерывания, где определяется, какому из флагов RI или TI соответствует прерывание.
Каждый из перечисленных источников прерываний может быть индивидуально разрешен или запрещен установкой или сбросом соответствующего бита в регистре разрешения прерываний IE. Регистр IE содержит также бит EA, сброс которого в 0 запрещает сразу все прерывания. Необходимым условием прерывания является его разрешение в регистре IE.
Структура приоритетов прерываний является двухступенчатой. Каждому источнику прерывания может быть индивидуально присвоен один из двух уровней приоритета высокий или низкий. Выполняется это установкой (высокий уровень приоритета) или сбросом (низкий уровень приоритета) соответствующего бита в регистре приоритетов прерываний IP.
Флаги прерываний опрашиваются в каждом машинном цикле. Анализ флагов выполняется в течение следующего машинного цикла. И только после выполнения последнего цикла текущей команды производится аппаратный вызов соответствующей подпрограммы обслуживания, эквивалентной команде LCALL.
Аппаратно-реализуемая команда LCALL загружает содержимое счетчика команд PC в стек (это будет адрес возврата), после чего записывает в PC адрес соответствующей подпрограммы обработки прерывания
Источник прерывания |
Адрес подпрограммы (вектор прерывания) |
IE0 |
0003H |
TF0 |
000BH |
IE1 |
0013H |
TF1 |
001BH |
RI или TI |
0023H |
Подпрограмма обслуживания прерывания продолжается до выполнения команды возврата из прерывания RETI. Команда RETI восстанавливает состояние логики прерывания и загружает в счетчик команд PC из вершины стека сохраненный адрес возврата в основную программу.