
- •1.Программирование типовых функций управления: опрос двоичного датчика, ожидание события, дребезг, формирование временной задержки, вывод управляющих сигналов
- •Борьба с дребезгом контактов
- •2. Формирование временных задержек с помощью таймеров
- •3.Виды клавиатур
- •Кодирующие клавиатуры.
- •Табличный метод.
- •Метод сдвигов унитарного кода.
- •4.Подключение светодиодов и светод. Семисегментных индикаторов
- •5. Статический метод управления линейным дисплеем.
- •1. С использованием дешифраторов семисегментного кода.
- •2. С использованием программной перекодировки:
- •6. ДинамичесКий метод управления линейным дисплеем.
- •7. Виды ацп, схемы подключения и программы опроса ацп
- •Интерфейс быстрых ацп с мпс
- •Интерфейс медленных ацп с мпс
- •8) Микроконтроллеры pic18: общая характеристика, особенности архитектуры и системы команд.
- •9. Язык с18 для pic-микроконтроллеров: структура программы, директивы препроцессора, ключевые слова.
- •10. Представление информации в языке Си
- •11. Операции и выражения в Си
- •12.Операторы управления вычислительным процессом
- •13. Функции в языке с18: определение функции, прототип, библиотечные функции.
- •14. Функции формирования временных задержек в языке с18
- •15. Программирование на языке с18 типовых функций управления и контроля: вывод информации в порт, управление отдельными разрядами портов, опрос переключателя.
- •16. Подключение жк-дисплея к pic-микроконтроллеру: структура жк-дисплея, функции управления дисплеем.
- •2.2. Библиотека функций управления жк-дисплеем
- •17. Аналого-цифровое преобразование в pic-микроконтроллерах: структура внутреннего ацп, функции управления ацп на языке с18.
- •18. Реализация широтно-импульсной модуляции в pic-микроконтроллерах: параметры шим, функции управления шим на языке с18.
- •19. Прерывания в pic18: источники прерываний, управляющие биты, программирование прерываний на языке с18.
- •24) Интегрированная среда CodeVisionAvr: состав и назначение, структура программы на языке Си в cvavr, управление портами и отдельными битами.
- •25) Программирование в CodeVisionAvr типовых функций управления и контроля: вывод информации в порт, управление отдельными разрядами портов, опрос переключателя, реализация временных задержек.
- •26. Интерфейс can: общее описание и основные параметры, виды и форматы сообщений в can.
- •27. Интерфейс can: арбитраж, обнаружение и обработка ошибок, скорость передачи и длина сети.
- •28. Понятия: микроконтроллерная система (мкс) и микроконтроллерное устройство (мку). Основные этапы разработки мкс.
- •29. Разработка и автономная отладка аппаратных и программных средств микроконтроллерных систем.
- •30. Методы и средства совместной отладки аппаратных и программных средств микроконтроллерных систем.
1.Программирование типовых функций управления: опрос двоичного датчика, ожидание события, дребезг, формирование временной задержки, вывод управляющих сигналов
Опрос двоичного датчика − сигналы датчика можно разделить по характеру датчика на контактные и бесконтактные.
Опрос состоит в том, что МП опрашивает состояние датчика и зависимости от состояния происходит переход к какой-то ветви программы.
Пример подключения датчика к порту ввода:
OPROS: IN IPORT
ANI 0000 0010B ; выделить D1
JZ M2 ; если D1 = 0
M1: … ; если D1 = 1
∙
∙
∙
M2: …
Ожидание события (ожидание появления определенного сигнала) − МП опрашивает состояние датчика в цикле до тех пор, пока на выходе датчика не будет заданного сигнала. Сигналы по виду разделяются на:
Ожидание размыкания контактов (высокого уровня)
CALL WAIT_H
WAIT_H: IN IPORT
ANI 0000 0100B ; выделить D2
JZ WAIT_H ; цикл ожидания
RET ; выход
Ожидание замыкания контактов (низкого уровня)
WAIT_L: IN IPORT
ANI 0000 0100B ; выделить D2
JZ WAIT_L ; цикл ожидания
RET ; выход
Борьба с дребезгом контактов
Для борьбы:
1. аппаратный метод − используются RS − триггеры или триггер Шмидта
2. программный метод:
а) подсчитывается число переключений контакта.
Время дребезга зависит от типа контакта
б) программная задержка: когда программа обнаружила срабатывание контакта, выполнение ее приостанавливается на время, большее времени дребезга.
WAIT_L: IN IPORT
ANI 0000 0010B
JNZ WAIT_L ; цикл, если D1 = 1
CALL DELAY ; подпрограмма задержки на tзд
RET
Виды управляющих сигналов:
1] Статические
VKL: MVI A, 01H
OUT OPORT ; вывод D0 = 1
OTKL: MVI A, 00H
OUT OPORT ; вывод D0 = 0
OTKL: XRA A ; сброс (А)
OUT OPORT ; вывод D0 = 0
2] Формирование импульсных управляющих сигналов
XRA A
OUT OPORT ; вывод D1 = 0
MVI A, 02H
OUT OPORT ; вывод D1 = 1
CALL DELAY ; задержка на tИ
XRA A
OUT OPORT ; вывод D1 = 0
Формирование временных задержек
CALL DELAY ; вызов подпрограммы задержки
DELAY: MVI B, X ; загрузка в регистр В числа Х
LOOP: DCR B ; декремент В
JNZ LOOP ; цикл, если (В)=0
RET ; возврат в основную программу, если (В)=0
Для получения требуемой временной задержки необходимо определить значение числа Х, загружаемого в регистр-счетчик В. При этом необходимо учитывать, что команды MVI B, X и RET выполняются однократно, а число повторений команд DCR B и JNZ LOOP равно числу Х, загружаемому в регистр В.
Можно записать длительность выполнения команд:
CALL DELAY - 17 тактов
MVI B, X - 7 тактов
DCR В - 5 тактов
JNZ LOOP - 10 тактов
RЕТ - 10 тактов
Время выполнения любой команды подсчитывается по формуле: t = n *T,
где n - число машинных тактов в команде;
Т - длительность машинного такта.
Длительность машинного такта определяется частотой fт тактового генератора микропроцессорной системы:
Т=1/fт
Величина Х может быть вычислена по формуле:
X=(tз-to)/tц,
где tз - заданная величина задержки;
tо - время, требуемое для однократно выполняемых команд;
tц - время цикла, требуемое для выполнения циклически повторяемых команд.