
- •Основные понятия и определения микропроцессорной техники: микропроцессор, микропроцессорная система, микроконтроллер. Принципы построения микропроцессорных систем.
- •Архитектура микропроцессора: архитектура со сложной системой команд (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, а при ее отпускании светодиод гаснет.
- •Представление информации в языке Си
- •Операции и выражения в Си
- •Операторы управления вычислительным процессом
- •Функции
Формирование временной задержки
В MCS-51 для формирования временной задержки могут быть использованы 2 способа
программный
аппаратурный с применением внутренних таймеров/счетчиков.
Программный способ формирования по принципу реализации удобно разделить на временные задержки малой и большой длительности.
Временная задержка малой длительности. Процедура реализации временной задержки использует метод программных циклов. При этом в некоторый рабочий регистр банка РОН загружается число, которое затем в каждом проходе цикла уменьшается на 1. Так продолжается до тех пор, пока содержимое рабочего регистра не станет равным нулю, что интерпретируется программой как момент выхода из цикла. Время задержки при этом определяется числом, загруженным в рабочий регистр и временем выполнения команд, образующих программный цикл. Программа имеет символическое имя DELAY (задержка) и в случае вызова ее основной управляющей программой по команде CALL DELAY должна завершаться командой возврата RET.
Предположим, что в управляющей программе необходимо реализовать временную задержку длительностью 100 мкс. Фрагмент программы, реализующей временную задержку, требуется оформить в виде подпрограммы, так как предполагается, что основная управляющая программа будет производить к ней многократные обращения для формирования выходных импульсных сигналов, длительность которых кратна 100 мкс
DELAY: MOV R1, # X ; Загрузить в регистр R1 число X
COUNT: DJNZ R1, COUNT ; Декремент R1 и цикл, если (R1) 0
RET
Для получения требуемой временной задержки необходимо определить число X, загружаемое в рабочий регистр. Определение числа X выполняется на основе расчета времени выполнения команд, образующих данную подпрограмму. При этом необходимо учитывать, что команды MOV и RET выполняются однократно, а число повторений команды DJNZ равно числу X. Кроме того, обращение к подпрограмме временной задержки осуществляется по команде CALL DELAY, время исполнения которой также необходимо учитывать при подсчете временной задержки. В описании команд MCS-51 указывается, за сколько машинных циклов (МЦ) исполняется каждая команда. На основании этих данных определяется суммарное число машинных циклов в подпрограмме CALL – 2 МЦ, MOV Rn, #d – 1 МЦ, DJNZ – 2 МЦ, RET – 2 МЦ.
Длительность машинного цикла ТМЦ связана с тактовой частотой fCLK работы MCS-51 соотношением ТМЦ = 12 / fCLK. При fCLK = 12 МГц имеем ТМЦ = 1 мкс.
Таким образом, подпрограмма выполняется за время
(2 + 1 + 2*X + 2) ТМЦ = (5 + 2*X) мкс.
Для реализации временной задержки 100 мкс число
X = (100 – 2) / 2 = 47,5.
Так как в регистр можно загрузить только целое число, то временная задержка будет реализована с погрешностью.
Максимальная длительность задержки, реализуемой подпрограммой DELAY, составляет 515 мкс (при X = 255).
Можно увеличить время задержки за счет включения в тело цикла дополнительных команд. Так, например, если перед командой DJNZ вставить две команды NOP, то максимальная задержка составит 5 + (2 + 2)*X = 5 + 4*255 = 1025 мкс (т.е. почти в 2 раза больше).
Временная задержка большой длительности. Для получения задержек большой длительности используют метод вложенных циклов или многократный вызов подпрограмм задержек малой длительности.
Например, при использовании двух циклов внутренний цикл повторяется Y раз, его обеспечивает счетчик R2, внешний цикл повторяется X раз – счетчик R1. Числа X и Y выбираются из соотношения
tЗД = [2 + 1 + X*(1 + 2*Y + 2) + 2]* ТМЦ.
Максимальный временной интервал, реализуемый таким способом, при X = Y = 255 и fCLK = 12 МГц составляет 130,82 мс.
В качестве примера рассмотрим подпрограмму временной задержки на 100 мс при fCLK = 12 МГц
DEL100MS: MOV R1, #195 ; Счетчик внешних циклов
LOOPEX: MOV R2, #255 ; Счетчик внутренних циклов
LOOPIN: DJNZ R2, LOOPIN ; Декремент R2 и внутренний цикл, если (R2) 0
DJNZ R1, LOOPEX ; Декремент R1 и внешний цикл, если (R1) 0
RET
Задержки еще большей длительности сложно реализовать методом вложенных циклов, поэтому их обычно набирают из точно подстроенных задержек меньшей длительности. Например, задержку на 1 с можно реализовать десятикратным вызовом подпрограммы задержки на 100 мс
DEL1S: MOV R4, #10 ; Загрузка в R4 числа вызовов подпрограммы DEL100MS
LOOP: CALL DEL100MS ; Задержка на 100 мс
DJNZ R4, LOOP ; Декремент R4 и цикл, если (R4) 0
RET