Среда, 15.05.2024, 08:32

Микропроцессорные системы

Меню сайта
Главная » Статьи » Методические указания к лабораторным работам

Лабораторная работа №3. "Ввод-вывод, маскирование данных и организация условных переходов"

Цель работы: исследование методов подключения и организации обмена информацией с простейшими устройствами ввода-вывода. Изучение программных способов маскирования данных и организации условных переходов в микроЭВМ.

К командам ввода-вывода МП i8080A относятся команды IN <А1> и OUT <А1>. При выполнении команды IN <А1> микроЭВМ считывает число из входного устройства с адресом <А1> и записывает его в аккумулятор. При выполнении команды OUT <А1> МП записывает число из аккумулятора в выходное устройство с адресом <А1>. Так как адрес устройства указывается в одном байте, то с помощью этих команд микроЭВМ может обмениваться информацией не более чем с 256 внешними устройствами.

Обмен данными между микроЭВМ и внешними устройствами может вызываться как в определенных местах в программе, так и по сигналам прерывания. В последнем случае подпрограмма обмена данными с внешним устройством будет вызываться за счет перевода микроЭВМ в режим обслуживания прерывания.

Переключатели стенда используются для имитации передачи данных от внешнего устройства. К входному устройству (с адресом 05h или 20h) подключены светодиоды (I0 - I7) для индикации чисел, поступающих в него. Светодиоды O0 - O7 указывают число, записанное в выходном устройстве.

Простейшая программа (программа 6) перезаписи числа с входного устройства (с адресом 05h) в выходное устройство (с адресом 05h или 30h) имеет вид:

Программа 6

Адрес

Код

Метка

Мнемокод

Комментарий

0800

DB 05

CNT:

IN 05h

; Записать число из входного устройства с

; адресом 05h в аккумулятор

0802

D3 05

 

OUT 05h

; Записать число из аккумулятора в

; выходное устройство с адресом 05h

0804

C3 00 08

 

JMP CNT

; Идти на CNT

Организация условных переходов в микроЭВМ осуществляется с помощью регистра признаков МП (см. выше).

Регистр признаков имеет пять разрядов, каждый из которых устанавливается по определенному правилу в соответствии с выполнением МП последней команды (см. приложение).

Во многих случаях при выполнении программ необходимо проверять или изменять (маскировать) состояние одного или нескольких разрядов числа в аккумуляторе. Это можно осуществить с помощью следующих команд логических операций:

логического умножения числа в аккумуляторе и маски, которое очищает разряд числа, если в соответствующем разряде маски будет записан "0", и не изменяет его, если в разряде маски записана "1";

логического сложения числа в аккумуляторе и маски, которое устанавливает разряд числа в "1", если в таком же разряде маски будет записана " 1", и не изменяет его. если в этом разряде записан "0";

логического исключающего ИЛИ" числа в аккумуляторе и маски, которое инвертирует содержание разряда числа, если в соответствующем разряде маски записана "1", и не изменяет его, если, в этом разряде записан "0".

Примеры использования этих команд приведены в табл. 4.

Таблица 4.

Мнемокод

Машинный код

Число в аккумуляторе

Маска

Комментарий

Результат в аккумуляторе

ANI <D1>

Е6 <D1>

00111010

11111111

00000000

10101010

11110000

00001111

00100010

10101100

00100010

00100010

00100010

11111111

11111111

00000000

Логическое умножение содержимого аккумулятора с байтом D1

00101000

00100010

00000000

00100010

11110000

00001111

00000000

ORI <D1>

F6 <D1>

00111010

00001111

11110000

10101100

00001111

00001111

Логическое сложение содержимого аккумулятора с байтом D1

10111110

00001111

11111111

XRI <D1>

EE <D1>

00111010

00001111

11110000

10101100

00001111

00001111

Логическое "исключающее ИЛИ" содержимого аккумулятора с байтом D1

10010110

00000000

11111111

Проведение логических операций возможно также с содержимым аккумулятора и внутренними регистрами МП. В этом случае команды - однобайтные. При выполнении всех логических команд задействуются разряды Z, S, P, АС регистра признаков (в разряд CY записывается 0). Это позволяет проверять состояние любого разряда числа и выполнять условные переходы в программах. Программа маскирования отдельных разрядов числа (программа 7), записанного во входном устройстве, приведена ниже. Программа помещает результат маскирования в выходное устройство.

Программа 7

Адрес

Код

Метка

Мнемокод

Комментарий

0800

DB 05

CNT:

IN 05h

; Получить число из входного устройства

0802

E6 20

 

ANI 20h

; Выполнить логическую операцию

0804

D3 05

 

OUT 05h

; Записать результат в выходное устройство

0806

C3 00 08

 

JMP CNT

; Продолжать

Условные переходы организуются в программах с помощью команд условных переходов. При выполнении этих команд МП проверяет состояние соответствующего разряда регистра признаков. Если при проверке состояния разряда регистра признаков условие не подтверждается, то выполняется следующая по порядку команда программы. Все команды условных переходов - трёхбайтные: первый байт содержит код команды, второй и третий байты - адрес передами управления. Таким образом, команды условных переходов позволяют строить ветвящиеся алгоритмы и в зависимости от текущего значения результата выполнения программы переходить на различные участки программы.

Ниже приведена программа (программа 8) для определения "1" в пятом разряде числа, записанного во входном устройстве. Программа использует маскирование числа и условный переход.

Программа 8

Адрес

Код

Метка

Мнемокод

Комментарий

0800

DB 05

WAIT:

IN 05h

; Получить число из входного устройства

0802

E6 20

 

ANI 20h

; Проверить состояние пятого разряда числа

0804

CA 00 08

 

JZ WAIT

; Идти на WAIT, если в пятом разряде был 0

; (Z=1)

0807

CF

 

RST 1

; Окончить выполнение программы

В представленных ранее программах имел место лишь один цикл, в котором работала микроЭВМ. Программа ожидания появления "1" во втором и пятом разрядах числа, записанного во входном устройстве (программа 9), содержит два цикла.

Программа 9

Адрес

Код

Метка

Мнемокод

Комментарий

0800

DB 05

WAIT1:

IN 05h

; Получить число из входного

; устройства

0802

E6 04

 

ANI 00000100b

; Выключен ли второй переключатель?

0804

CA 00 08

 

JZ WAIT1

; Если нет, продолжить WAIT1

0807

3E FF

 

MVI A, FFh

; если да, зажечь светодиоды

0809

D3 05

 

OUT 05h

; выходного регистра

080B

DB 05

WAIT2:

IN 05h

; Получить число из входного

; устройства

080D

E6 20

 

ANI 00100000b

; выключен ли пятый переключатель?

080F

CA 0B 08

 

JZ WAIT2

; Если нет, продолжать WAIT2

0812

3E 00

 

MVI A, 00h

; Если да, погасить светодиоды

0814

D3 05

 

OUT 05h

; выходного регистра

0816

C3 00 08

 

JMP WAIT1

; Повторить программу

Задания

1. Ознакомьтесь с командами ввода-вывода МП i8080A.

2. Изучите группу логических команд и команд условной передачи управления.

3. Ознакомьтесь с разрядами регистра признаков МП и правилами записи в них "1".

4. Ознакомьтесь с программами 6, 7, 8, 9.

5. Самостоятельно разработайте программы: а) включения светодиодов выходного устройства, если число, записанное во входном устройстве, больше 3; б) включения светодиодов выходного устройства, если число, записанное во входном устройстве, больше 3, но меньше 8.

6. Видоизмените программу 8 так, чтобы микроЭВМ реагировала на 0 в пятом разряде при записанных "1" во всех остальных разрядах.

7. Исследуйте программу 6.

7.1. Введите в микроЭВМ программу 6. Осуществить пуск программы.

7.2. Убедитесь что при выполнении программы микроЭВМ постоянно переписывает данные с входного устройства в выходное. Для этого с помощью переключателей входного устройства измените числа, записанные в нем. Информация о числах в устройствах ввода-вывода отображается светодиодами.

8. Исследуйте программу 7.

8.1. Введите в микроЭВМ программу 7. Осуществите пуск программы и исследуйте результат выполнения по числу, записанному в выходное устройство.

8.2. Заменяя в программе 7 двухбайтную команду ANI <D> на однобайтные ANA A, XRA A, ORA А, исследуйте результат их выполнения по числу, записанному в выходном устройстве.

9. Исследуйте программу 8.

9.1. Введите в микроЭВМ программу 8. Осуществить пуск программы и убедитесь, что при ее выполнении микроЭВМ реагирует лишь на те числа во входном устройстве, которые содержат "1" в пятом разряде. После окончания выполнения программы (выполнения в программе команды RST 1) в разряде 3 регистра состояния записана "1".

9.2. Исследуйте видоизмененную программу 8, позволяющую микроЭВМ реагировать на "0" в пятом разряде при записанных "1" во всех остальных разрядах.

10. Исследуйте программу 9.

10.1. Введите в микроЭВМ программу 9. Осуществить пуск программы и убедитесь, что при наличии "1" лишь во втором разряде числа входного регистра светодиоды выходного регистра включены и микроЭВМ работает в цикле WAIT2 ожидания появления единицы в пятом разряде числа.

10.2. Запишите "0" во второй разряд входного устройства. Запишите "0" в пятый разряд входного устройства и убедитесь, что светодиоды выходного устройства выключаются и микроЭВМ находится при выполнении цикла WAIT1 программы.

10.3. Установите "1" одновременно во втором и пятом разрядах числа во входном устройстве и проверьте, что микроЭВМ последовательно выполняет оба цикла (WAIT1, WAIT2) программы.

11. Исследуйте программы, самостоятельно разработанные в п. 5 задания.

Содержание отчета

Отчет должен содержать: 1. Цель работы. 2. Результаты исследования выполнения программ 6-9. 3. Самостоятельно разработанные и исследованные в процессе выполнения лабораторной работы программы, указанные в п. 5 задания. 4. Выводы.

Категория: Методические указания к лабораторным работам | Добавил: avk1963 (10.03.2015)
Просмотров: 3175 | Рейтинг: 3.8/17
Всего комментариев: 0