
- •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. Методы и средства совместной отладки аппаратных и программных средств микроконтроллерных систем.
Кодирующие клавиатуры.
Каждой кнопке(контакту переключателя) соответствует определённый вход порта ввода, узнать положение клавиши можно, опрашивая вход порта.
Галетный переключатель:
Кнопочный переключатель:
Подключение переключателей к порту ввода:
При опросе порта ввода от переключателя поступает унитарный код, т.е код в котором только один 0, положение которого определяется номером замкнутого контакта.
Унитарный код неудобен для использования в программах, поэтому его необходимо преобразовать в позиционный.
Преобразование унитарного кода в позиционный возможно двумя методами:
табличный метод
метод сдвигов унитарного кода
Табличный метод.
Основан на том, что в ПЗУ имеется таблица кодов: каждому унитарному коду соответствует позиционный. Для идентификации нажатой клавиши используется программа:
IN IPORT
CMA
CPI MASK
JZ EXIT
Метод сдвигов унитарного кода.
Исходный код после инвертирования сдвигается вправо через перенос (если нажата клавиша, то флаг переноса = 1).
IDENTIF2: IN IPORT
MVI B, 0
MVI C, 8
CMA ; Инвертировать
ORA A ; Сброс CY
SHIFT: RAR
JC EXIT
INR B
DCR C
JNZ SHIFT
MVI B, OFFH
EXIT : RET
В регистре В – двоичный позиционный код.
НЕКОДИРУЮЩИЕ КЛАВИАТУРЫ.
Процедуры программного обслуживания клавиатуры
Для обслуживания клавиатур в МПС используются две процедуры: опрос состояния клавиатуры и ввод кода нажатой клавиши.
Первая процедура производит однократное обращение к матрице клавиш для определения, нажата ли хотя бы одна из клавиш. Вторая осуществляет циклический опрос клавиатуры до тех пор, пока не будет нажата (а часто и освобождена) какая - либо клавиша. Будучи встроена в основную программу, вторая процедура блокирует процесс управления объектом на время ожидания нажатия клавиши, поэтому обращение к ней осуществляется только при обнаружении нажатой клавиши процедурой опроса состояния клавиатуры.
Вместо процедуры опроса состояния клавиатуры можно использовать аппаратурные средства, формирующие сигнал внешнего прерывания для МП в случае нажатия любой клавиши.
Процедуру ввода информации с некодирущей матричной клавиатуры удобно рассмотреть на примере клавиатуры 4 x 5, включающей 16 цифровых клавиш (0 - F) и 4 управляющих. Структура матрицы клавиатуры аналогична структуре матрицы двоичных датчиков, способ подключения клавиатуры к МПС представлен на рис. Для микропроцессора КР580ВМ80А при использова- нии способа наложения маски рационально применять совокупность команд следующего вида:
IN PORT 2
ANI MASK
CPI MASK
JNZ EXIT
4.Подключение светодиодов и светод. Семисегментных индикаторов
По виду соединения диодов:
С общим катодом (ОК);
— С общим анодом (ОА).
Для работы индикатора требуется семисегментный код получить который из двоичного можно методами:
использование специальных преобразователей кодов (из двоичного в семисегментный) – К514ИД1 (для индикаторов с ОК) и К514ИД2 (для индикаторов с ОА).
R1-R7 ограничивают токи, протекающие через выходные транзисторы
R1-R7 = 110…330 Ом.
Недостаток дешифраторов — возможность отображения только арабских чисел (0,1,..,9)
Программная перекодировка – для каждого сегмента выделяется свой разряд в байте позиционного кода.
лог. “1” — Свечение ; лог. “0” — Затемнение
В ПЗУ должны быть коды отображаемых символов, программа выбирает из ПЗУ этот код в соответствии с двоичным кодом требуемого символа.
; подпрограмма перекодировки
; регистр А – двоичный код символа
; регистр А – семисегментный код символа
CROSSCOD: MOV C, A
MVI B, 00 ; В регистровой паре ВС – двоичный код
LXI H, TABLECOD
DAD B ; (HL) (HL) + (BC)
MOV A, M ; Чтение кода символа
RET
TABLECOD: DB 3F ; Код символа «0»
DB 06 ; Код символа «1»
.
.
DB 71 ; Код символа «F»