- •1 Инструкция по технике безопастности
- •2 Методические указания по оформлению отчета к лабораторной работе
- •3 Лабораторная работа №4
- •3.1 Краткие теоретические сведения
- •3.1.1 Опрос двоичного датчика
- •3. 1. 2 Ожидание события
- •3.1.3 Ожидание импульсного сигнала.
- •3.1.4 Выделение и обработка отдельных бит информации
- •3.1.5 Формирование управляющего сигнала
- •3.1.6 Вывод управляющего слова на группу автономных устройств.
- •3. 1. 7 Формирование временной задержки малой длительности
- •3.1.8 Формирование последовательности импульсных сигналов с изменяемой длительностью и скважностью.
- •3.2 Задание на дом.
- •3.3 Контрольные вопросы
- •4 Краткие теоретические сведения
- •4.1 Цифровые индикаторы
- •4.2 Клавиатура
- •4.3 Мультиплексный режим работы цифрового индикатора
- •4.4 Сканирование клавиатуры и программное определение номера нажатой клавиши
- •4.5 Подпрограмма определения кода засветки Второй цифры в номере клавиши
- •4.6 Подпрограмма определения кода засветки первой цифры в номере клавиши
- •Программа, написанная в соответствии с алгоритмом, изображенным на рис.17, имеет вид (табл. 25):
- •4.7 Подпрограмма засветки индикаторов в мультиплексном режиме
- •4.8 Задание для домашней подготовки
- •Порядок выполнения работы
- •6 Контрольные вопросы
- •Литература
- •Содержание
- •2 Методические указания по оформлению отчета к лабораторной работе 1
- •3 Лабораторная работа №4 2
- •4 Лабораторная работа №5 24
3.1.1 Опрос двоичного датчика
Рисунок 2 - Схема (а) и алгоритм (б) опроса двоичного датчика
Если контакт разомкнут, то на входе D2 присутствует сигнал 1, если он замкнут, то D2=0.
Необходимо в некоторой части управляющей программы контроллера опросить значение сигнала на входе D2 порта 2 и в зависимости от его значения передать управление на метку LAB1 или LAB2.
Фрагмент программы такого опроса следующий (табл.1):
Таблица 1
Адрес |
Код |
Метка |
Мнемокод |
Комментарий |
|
|
INPKEY: |
IN PORT2 |
ввод в аккумулятор из порта 2 |
|
|
|
ANI 04H |
маскирование всех разрядов, кроме D2 |
|
|
|
JNZ LAB2 |
если D2 = 0, переход по LAB2 |
|
|
LAB1: |
|
иначе переход по LAB1 |
|
|
LAB2: |
|
|
Пример:
Рассмотрим программу (табл.2), которая реагирует на нажатие клавиши "РГ" на клавиатуре учебного микропроцессорного комплекта (УМК). В данной программе именно эта клавиша играет роль датчика, который и опрашивается приведенной ниже программой. Поскольку опрос двоичного датчика не предполагает ожидания нажатия клавиши, т.е. если пользователь не успел нажать клавишу, то программа будет считать, что датчик был разомкнут. На практике в любом случае нельзя успеть нажать на эту клавишу. С этой целью в программе предусмотрена задержка. Подпрограмма задержки приведена в приложении.
Если клавиша нажата, то на первом индикаторе зажигается цифра "1", иначе - "0". Отсчет индикаторов начинается справа, крайний правый индикатор имеет порядковый номер - 0, крайний левый - 5.
Таблица 2
Адрес |
Код |
Метка |
Мнемокод |
Комментарий |
0800 |
0E 2F |
|
MVI C, 2FH |
поместить в регистр С количество циклов задержки |
0802 |
CD A0 08 |
|
CALL PAUSE |
вызов задержки, за время которой пользователю предлагается нажать клавишу "РГ" |
0805 |
DB FA |
INKEY: |
IN FAH |
чтение порта клавиатуры |
0807 |
E6 10 |
|
ANI 10H |
маскирование всех разрядов кроме D4 (10000000 B - 10H) |
0809 |
C2 14 08 |
|
JNZ LAB1 |
переход по LAB1, если клавиша РГ нажата |
080C |
2E 06 |
LAB2: |
MVI L, 06Н |
иначе код цифры "1" поместить в регистр L |
080E |
CD A9 08 |
|
CALL L&P |
высветить на индикаторе "1" |
0811 |
C3 19 08 |
|
JMP END |
завершить программу |
0814 |
2E 3F |
LAB1: |
MVI L, 3FH |
код цифры "0" поместить в регистр L |
0816 |
CD A9 08 |
|
CALL L&P |
высветить на индикаторе "0" |
0819 |
FF |
END: |
RST |
возврат в "монитор" |
