- •Инструкция по технике безопасности
- •Методические указания по оформлению отчёта к лабораторным работам.
- •2.1.Правила оформления отчёта.
- •Содержание отчёта:
- •Лабораторная работа мп – 1 Исследование микро-эвм на основе микропроцессора кр580ик80
- •3.2 Краткие теоретические сведения
- •3.3.Учебный микропроцессорный комплект (умк)
- •3.4 Задание для домашней подготовки
- •3.5. Подготовка умк к работе
- •3.6. Задания к лабораторной работе
- •3.6.2. Индикация и модернизация содержимого озу.
- •3.6.3. Модификация содержимого регистров микропроцессора
- •3.6.4. Заполнение озу константой
- •3.6.5. Копирование областей памяти
- •3.6.6. Вычисление контрольной суммы массива памяти
- •3.7. Выполнение программы пользователя
- •3.8. Контрольные вопросы
- •Лабораторная работа мп-2 Исследование цикла выполнения команд микропроцессора кр580ик80
- •4.2. Теоретические сведения
- •4.3. Задание для домашней подготовки
- •4.4. Порядок выполнения работы
- •4.5. Контрольные вопросы
- •Лабораторная работа мп-3 Программирование арифметических операций в системе команд микропроцессора кр580вм80
- •Основные теоретические сведения.
- •Приемы программирования типовых арифметических задач
- •5.3.2. Десятичное сложение
- •5.3.3. Умножение
- •Порядок выполнения работы
- •5.5 Контрольные вопросы
- •6. Лабораторная работа мп-4 Программная реализация типовых функций управления на основе микропроцессора к580ик80
- •6.2. Краткие теоретические сведения
- •6.2.1. Опрос двоичного датчика
- •6.2.2. Ожидание события
- •6.2.3. Ожидание импульсного сигнала
- •6.2.4. Выделение и обработка отдельных бит информации
- •6.2.5. Формирование управляющего сигнала
- •6.2.6. Вывод управляющего слова на группу автономных устройств
- •6.2.7. Формирование временной задержки малой длительности
- •6.2.8. Формирование последовательности импульсных сигналов с изменяемой длительностью и скважностью.
- •6.3. Задание на дом
- •7.Лабораторная работа мп-5
- •7.3. Задание для домашней подготовки
- •7.4. Порядок выполнения работы
- •7.5. Контрольные вопросы
- •Приложение
- •Литература
7.Лабораторная работа мп-5
Программно-аппаратный интерфейс дисплея и клавиатуры Микро-ЭВМ
7.1. Цель работы: изучение программных и аппаратных способов интерфейса дисплея и клавиатуры микро-ЭВМ.
7.2. Краткие теоретические сведения
Рассмотрим принцип действия цифровых индикаторов и клавиатуры, функционирующих в составе микропроцессорной системы.
7.2.1 Цифровые индикаторы
Индикатор – отдельный светоизолирующий элемент (сигнальная лампочка, светодиод и т.п.) – является простейшим устройством вывода, т.к. имеет два состояния.
Гораздо удобнее использовать многоэлементные индикаторы, позволяющие выводить данные в привычной буквенно-цифровой форме. В таких индикаторах буквы, цифры и другие символы формируются на сегментном поле. В УМК использованы шесть семисегментных индикаторов (СМИ) с десятичной точкой (рис.7.1.). Каждый индикатор содержит восемь индикаторов с общим анодом. Одинаковые сегменты СМИ связаны общей шиной, т.е. сигнал подается ко всем СМИ, а загорается только тот, на анод которого подан положительный потенциал. Соответствие регистров и выводов индикатора, а также номера индикатора приведены в табл. 7.1. Например, при индикации во втором индикаторе цифры 1 надо записать в Рг1 код 00000100, а в Рг2 код 00000110.
a
f b
g
e
c
d
а)
б)
Анод
g f e d c b a
Рис. 7.1. внешний вид (а) и схема соединения светодиодов восьмисегментного индикатора (б).
Таблица 7.1.
Номер разряда |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Сегмент |
h |
g |
f |
e |
d |
c |
b |
a |
Номер индикатора |
- |
- |
5 |
4 |
3 |
2 |
1 |
0 |
Программа включения четвёртого индикатора для индикации символа цифры 2 имеет вид:
MVI A, 10H ; загрузить в аккумулятор
; код 0010000 В
OUT PORT 1 ; включить 4-й индикатор
FIVI A, 5 BH ; вывести на дисплей
OUT PORT 2 ; код цифры 2
7.2.2. Клавиатура
Кнопки, переключатели и клавиатура – это простейшее устройство для ввода информации в ЭВМ. С их помощью могут вводиться те или иные данные, устанавливаться режимы работы ЭВМ и управляемых ею устройств. При организации работы с клавиатурой приходиться решать следующие задачи:
Определить, была ли нажата хотя бы одна клавиша;
Если нажата клавиша, определить её номер;
Определение вида нажатой клавиши: цифровая или функциональная;
Если функциональная, то передача управления на подпрограмму, соответствующую нажатой клавише.
Для подключения дисплея к микро-ЭВМ принимаются транзисторные ключи и два регистра (рис.7.2.). Регистр Рг1 осуществляет выбор нужного индикатора. Подавая на анод «I», через соответствующий транзисторный ключ (VT1 –VT6).
В УМК клавиатура представляет собой набор клавишей, организованных в виде матриц 4 × 6. Опрос и обработка кодов клавиш производится программой монитора с помощью микросхемы программируемого параллельного интерфейса (ППИ). ППИ осуществляет сопряжение клавиатуры с ЭВМ. Схема такого сопряжения изображена на рис. 7.3. В изображенной схеме порт клавиатуры РА является портом вывода, а порт РС – портом ввода. Однако при определении нажатии клавиши сталкиваются с проблемой, состоящей в том, что в момент нажатия кнопки происходит нерегулярное замыкание электрической цепи, до тех пор, пока не установится надёжный контакт, что может привести к тому, что вместо одного нажатия клавиши судят зафиксировано несколько нажатий. Длительность этого периода зависит от конструкций кнопки, но обычно не превышает 2 мс. Нестабильность сигнала (дребезг контакта) устраняют аппаратным или программным способом.
+5
Ш
D0
Q0
D1
Q1
D2
Q2
D3
Pг1
Q3
D4
Q4
D5
Q5
D6
Q6
D7
Q7
1 1 1 1 1 1
Д
VT1
VT6
И0 И1 И2 И3 И4 И5
а
D0
Q0
D1
Q1
D2
Q2
D3
Pг1
Q3
D4
Q4
D5
Q5
D6
Q6
D7
Q7
VT7
h
VT14
Рис. 7.2. Схема подключения индикатора дисплея
С
Ш
D PA
A1 A2
P2 CS1
PC1 RD1
PC5 WR1
RESET K580DD55
PB
PA5
ЗК РГ КС РМ СТ П
ВП __ F
E D C B
A 9 8 7 6 5
4 3 2 1 0
PA0
Рис. 7.3. Схема подключения клавиатуры к системной шине микро-ЭВМ
7.2.3. Мультиплексный режим работы цифрового индикатора
Поскольку одновременно информация может выводиться только на один индикатор, то для её вывода на все индикаторы нужно последовательно выводить информации на каждый индикатор, т.е. мультиплексировать вывод информации на дисплей.
Каждый индикатор засчитывается в течение короткого промежутка времени, но при большой частоте сканирования индикаторов получается устойчивое изображение. Рассмотрим программу, обеспечивающую мультиплексный режим работы. Рассмотрим программу, обеспечивающую мультиплексный режим работы. При разработке программы воспользуемся программой задержки, записанной в ПЗУ по адресу Ø35В, дающей задержку IO мс. Коды засветки цифр для вывода на каждую ячейку (индикатор) дисплея храниться в последовательных ячейках памяти с адресами 03В2. Схема алгоритма программы приведена на рис. 7.4. Программа в соответствии с алгоритмом рис.7.4. имеет вид:
Установить указатель памяти на начало
таблицы кодов засветки. Загрузить в
(В) номер 5 индикатора
Вывести № индикатора в порт № индикатора
Вывести код засветки в порт засветки
индикатора
Задержка 10 мс
Выключить индикатор
Перейти к следующему коду символа
Перейти к следующему индикатору
Нет
Да
Н
ет
Да
Рис. 7.4. Блок-схема алгоритма работы дисплея в мультиплексном режиме
0800 M 1: LXI H, 0350 ; адрес таблицы кодов
0803 MVI B, 20H ; № 5 индикатора в (В)
0805 M2: MOV A, B ; вывод номера индикатора
0806 OUT OF8H ; в порт А
0808 MOV A, M ; вывод кода символа
0809 OUT OF9H ; в порт В
080B CALL 035BY ; задержка 10 мс
080E MVI A, O ; выключение
0810 OUT OF8H ; индикатора
0812 MOV B, A ;
0813 RRC ; переход к следующему номеру
0814 MOV B, A ; индикатора
0815 INX H ;
0816 ONC M2 ; если не все индикаторы зажжены, то
; включить следующий индикатор
0819 JMP M1 ; иначе начать сначала
7.2.4. Сканирование клавиатуры и программное определение номера нажатой клавиши
На рис. 7.3. изображена схема клавиатуры микро-ЭВМ, организованная в виде матрицы 4 × 6. Будем считать порт РА ППИ сканирующим портом, а порт РС – читающим. За один цикл считываются данные с одного столбца из четырёх кнопок. Для простоты рассмотрим только один столбец, т.е. клавиши «ЗК», «ВП», В, 5. Чтение столбца клавиши представляет собой двухшаговую операцию: запись данных в сканирующий порт и чтение байта данных читающим портом.
Чтобы выбрать определённый столбец клавиш, соответствующий бит сканирующего порта (РА5÷РАО) устанавливаются в лог. О, другие биты остаются равным лог.I. Таким образом, чтобы выбрать столбец клавиш «ЗК», «ВП», В, 5 нужно послать в порт РА код 11011111 (DFH), чтобы выбрать клавиши «РГ», « __ », А, 4 – код 11101111 (ЕFH) и т.д.
После вывода сканирующего байта в порт РА производится чтение входным портом РС. Наличие нуля во входном байте, считанном портом РС, свидетельствует о том, что нажата клавиша в соответствующем столбце. Номер нажатой клавиши определяется по формуле:
Nклав = Nст + N ряд × 6,
где Nст; Nряд – номера столбца и ряда, на пересечении которых находятся нажатая клавиша.
В программе сканирования клавиатуры учитывается «дребезг» клавиши, т.е. она программно устраняется. Введена программная задержка на время «дребезга», т.е. чтение читающего порта после определения нажатия клавиши прекращается на время «дребезга».
Алгоритм определения номера в соответствии с алгоритмом, изображенным на рис. 7.5.
Программа, написанная в соответствии с алгоритмом, изображенным на рис. 7.5. имеет вид:
KLAW, MVI B , 11011111B; запись маски сканирования
MVI C , 5 ; счетчик столбцов
KL1: MVI D , 3 ; счетчик рядов
MOV A , B ; вывод маски сканирования
OUT PORT A ; в порт РА
IN PORT C ; чтение состояния клавиш
KL2: RRC ; если в столбце есть нажатая
JC KL 4 ; клавиша, то перейти
DCR D ; иначе декрементировать
JC KL 2 ; счетчик рядов и цикл
MDV A, B ; изменение маски
RRC ; сканирования
MOV A, B ; хранение маски
DCR D ; декремент счетчика столбцов
JP KL1 ; если С=0, то перейти к новому
; выводу маски
JMP KLAW ; иначе начать сначала
KL4: MVI E, 32H ; борьба
CALL DELAY ; с дребезгом
DCR E ;
JNZ KL 4 ;
MOV A, D ; вычисление номера
RLC ; нажатой клавиши
ADD C ; Nкл = (С) + (D) = 6
Запись маски сканирования в регистр
В.
Запись максимальных номеров столбца
и ряда в регистры С,D
Вывод маски сканирования в порт РС
Да
D = D - 1
Определение номера нажатой клавиши
Нет
Да
Нет
Модификация маски сканирования
С = С - 1
Да
Нет
Рис. 7.5 Алгоритм определения номера нажатой клавиши
RLC ;
ADD C ;
RET ;
