- •Лабораторные роботы по дисциплине «мп в си»
- •Лабораторная робота № 2 по дисциплине «мп в си»
- •4. Содержание протокола.
- •К афедра приборостроения Методические указания
- •1. Цель работы:
- •2. Теоретические сведения.
- •3. Ход выполнения работы.
- •4. Отчет по лабораторной работе должен содержать:
- •Цель работы:
- •Теоретические сведения.
- •Ход выполнения работы
- •Устройства ввода в мпс
- •1. Цель работы:
- •2. Теоретические сведения:
- •3. Ход выполнения работы.
- •Кафедра приборостроения Методические указания
- •Методические рекомендации
- •3. Ход выполнения работы
Устройства ввода в мпс
(клавиатура, сканирование, исключение «звона»)
Составили:
Андреева Е.В.
Горовой В.И.
НТУУ «КПИ» - 2011
Цель работы:
Изучение работы устройства ввода .
Построение мониторной программы для чтения клавиатуры.
Изучение способов устранения «звона» при чтении клавиатуры.
Теоретические сведения.
Клавиатура – это так же устройство ввода в микропроцессорную систему(МПС) .В микропроцессорных системах применяют новые схемы и конструкции клавиатуры(с сенсорным и полусенсорным управлением).
Клавиатура обслуживается микропроцессором в режиме прерывания. При этом МП выполняет операции опроса, подавления переходных процессов и дешифрации.
МП в режиме опроса клавиатуры определяет нажатую клавишу и направляет информацию в ОЗУ(при этом может выдаваться команда на подсветку светодиода данной клавиши). Опрос клавиатуры происходит примерно 100 раз в секунду. Время опроса 100 мкс. Время нажатия клавиши – намного больше. Поэтому МП не пропустит нажатия клавиши. Если случайно нажать две клавиши (не предусмотренные специальной командой), МП не воспринимает нажатие клавиш и не выдает никаких команд.
Устройство клавиатуры микролаборатории.
Клавиатура представиляет собой набор ключей (кнопок), организованных в виде матрицы 8х3.Каждый ряд из 8 кнопок опрашивается отдельно(рис.1). Считываемые длинные данные преобразуются в код, соответствующий нажатой кнопке, с помощью программы монитора КЕYIN(адрес 0216Н). Эта программа вызывается с помощью команды CALL KEYIN. После возврата из программы KEYIN в аккумуляторе будет содержаться код нажатой кнопки (табл. 1). Эта мониторная программа может использоваться для чтения клавиатуры.
Рис.1. Упрощенная схема клавиатуры.
Ход выполнения работы
Ознакомьтесь с устройством клавиатуры микролаборатории(рис.1) и кодами кнопок микролаборатории(табл.1).
Таблица 1. Коды кнопок микролаборатории
-
Кнопка
Код/Н/
0
1
2
3
4
5
6
7
8
9
А
В
С
D
E
F
ПУСК
ВОЗВР.
УСТ.АД.
АД.-
АД.+
ЗП
ВЫВОД
ВВОД
00
01
02
03
04
05
06
07
08
09
ОА
ОВ
ОС
OD
OE
OF
10’
11
12
13
14
15
16
17
Введите в ОЗУ программу, представленную в табл.2.
В табл.2 показан листинг листинг программы , которая вызывает звуковой сигнал, если нажата кнопка 7. Клавиатура читается с помощью вышеописанной программы КЕYIN, которая заносит код нажатой клавиши в аккумулятор.
Команда CPI 07 устанавливает нулевой флаг процессора, если содержимое аккумулятора равно 07. Команда JNZ READ вызывает возврат программы на начало, если нулевой флаг не установлен. Если нулевой флаг установлен, то будет вызываться подпрограмма BEEP. Затем процесс повторяется.Т.о., звуковой сигнал будет генерироваться при нажатии кнопки 7.
Таблица 2.
Программа вызова звукового сигнала.
Адрес |
Содержимое |
Метка |
Команда |
Комментарии |
8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 800A 800B 800C 800D |
CD 16 02 FE 07 C2 00 80 CD 50 03 C3 00 80 |
READ: |
CALL KEYIN
CPI07
JNZ READ
CALL BEER
JMP READ |
Вызов программы, чтение с клавиатуры
Сравнение кода ключа 07
Возврат, если кнопка 7 не нажата
Звуковой сигнал, если кнопка 7 нажата
Повторение программы |
Проверьте правильность ввода и запустите программу.
Нажмите кнопку 7 – динамик гудит. Нажмите любую другую кнопку – звуковой сигнал отсутствует.
Задание 1.
Составьте программу, которая генерирует звуковой сигнал, если нажаты в определённой последовательности три определённые кнопки, например 7,3,9. Эту программу можно взять за основу при создании электронного замка. Составление программы начните со структурной схемы. Введите программу в микролабораторию и проверьте ее выполнение.
Варианты |
Последовательность кнопок |
1 2 3 4 5 6 7 8 9 10 |
721 645 341 145 512 678 711 812 902 101 |
УСТРАНЕНИЕ ЗВОНА
Другим фактором, который должен быть рассмотрен при чтении с клавиатуры, является исключение «звона». Как известно, кнопки при нажатии не выдают «чмстый» импульс – они «звонят», как показано на рис.2. Когда металлические контакты касаются один другого, возникаетзвон. Продолжительность звона 1-50 мс в зависимости от конструкции кнопки. Звон контактов нужно учитывать, так как он может привести к тому, что вместо одного нажатия будет зафиксировано много нажатий кнопки.
Рис.2.Звон кнопки
Звон можно исключить путем введения схемы исключения звона в читающий порт с помощью специальной подпрограммы.
Рис.3,показывает один из путей исключения звона с помощью прграммы. Клавиатура сканируется использую программу KEYIN, описанную ранее. Если нет нажатых кнопок, процесс повторяется. Когда же определено нажатие кнопки, клавиатура отключается на 50 мс, чтобы не читать во время звона. Затем клавиатура сканируется до момента, пока ключ не отпущен. Опять вводится 50 мс задержки, чтобы исключить звон при отпускании кнопки.
Рис. 3 Алгоритм устранения звона клавиатуры.
Сканирование
клавиатуры
Обработка кода
нажатой кнопки
Задержка 50 мс
Сканирование
клавиатуры
Задержка 50 мс
Сканирование клавиатуры
За один цикл считываются данные с одного ряда из восьми кнопок. Для простоты рассмотрим только один ряд, т.е. кнопки 0,1,2…7 (рис. 1). Чтение ряда ключей представляет собой двухшаговою операцию: запись данных в сканирующий порт для выбора кнопок, чтение байта данных читающим портом. Чтобы выбрать определённый ряд кнопок, соответствующий бит сканирующего порта /PC4,PC5 или PC6/ устанавливается в лог.1, другие биты остаются равными лог.0. Таким образом, чтобы выбрать ряд кнопок 0..7, нужно послать в порт FA код 1001 1111 /9F-H/, чтобы выбрать кнопки 8…F - код 1010 1111(AF) и чтобы выбрать кнопки ПУСК…ВВОД, - код 11001111(СF). Биты РС0…РС3 РС7 не используются при сканировании клавиатуры и устанавливаются равными лог.1. Итак, чтобы считать данные с ряда 0..7, в порт FА вводится байт 9F. Затем производится чтение входным портом для сбора информации о состоянии колонок. При нажатии определённой кнопки соответствующий бит читающего порта будет устанавливаться в 0/табл.3/./ Обратите внимае, что коды кнопок, приведённые в табл. 1 и 3 , не совпадают/. Кнопка из других рядов при чтении выбранного ряда не влияет на результаты чтения. Табл.4 показывает программу, реализующую только что описанный процесс чтения.
Таблица 3
Коды, читаемые с клавиатуры
Кнопка |
Читаемый код /двоичный/ |
Читаемый код /шестнадцатеричный/ |
Бит кнопки |
Нет надатых кнопок 0 1 2 3 4 5 6 7 |
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 |
FF
FE FD FB F7 EF DF BF 7F |
0000 0001 01 0000 0010 02 0000 0100 04 0000 1000 08 0001 0000 10 0010 0000 20 0100 0000 40 1000 0000 80
|
Таблица 4. Программа определения состояния кнопок
-
Команда
Коментарии
MVI A, 9F \
OUT FA J
IN F8
Выбор ряда кнопок
0…7
Чтение состояния кнопок
Программа KEYIN, описанная выше, не только сканирует клавиатуру, но и преобразует коды, читаемые с колонок в зависимости от выбранного ряда/, в коды, приведенные в табл.1.
В табл.5 приведена программа для проверки состояния кнопки 2, которая использует вышеописанный способ чтения клавиатуры. Если кнопка 2 нажата, генерируется звуковой сигнал. Наберите программу на микролабе и проверьте её работу.
Таблица 5.
Программа проверки состояния кнопки 2
Адрес |
Содержимое |
Метка |
Команда |
Комментарий |
8000 8001
8002 8003
8004 8005
8006 8007
8008 8009 800A
800B 800C 800D
800E 800F 8010 |
3E 9F
D3 FA
DB F8
E6 04
C2 04 80
CD 50 03
C3 04 80 |
READ: |
MVI A, 9F
OUT FA
IN F8
ANI 04
JNZ READ
CALL BEEP
JMP READ |
Выбор ряда кнопок 0…7
Чтение состояния колонок
Выбираем бит /кнопки 2/
Читать снова, если кнопка 2 не нажата
Если нажата кнопка 2, появляется звуковой сигнал
Поторение программы |
Отчет по лабораторной работе должен содержать:
Цель работы.
Теоретические сведения(по желанию, выборочно).
Рис.1,2,3.
Программы, скорректированные в соответствии с вариантом задания.
Выводы по работе(кратко).
НТУУ «КПИ»
Приборостроительный факультет
Кафедра приборостроения
Методические указания
к лабораторной работе по дисциплине «МП в СИ»
Лабораторная работа № 6
Устройства вывода в МПС (вывод информации на цифровые индикаторы)
Составили:
Андреева Е. В.
Горовой В. И.
НТУУ «КПИ» - 2011
