Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ФЭ, Часть 2.doc
Скачиваний:
6
Добавлен:
22.12.2018
Размер:
1.01 Mб
Скачать

Программирование в машинных кодах (2).

1. Архитектура эвм "Микролаб".

Центральный процессор ЭВМ шинами данных, адреса и управления соединен с ОЗУ, ПЗУ и устройством ввода/вывода. Область адресов ячеек ОЗУ предназначенных для записи программы и размещения данных - от 8000H до 83C6H. По адресам 0000-02FF в ПЗУ размещена программа монитора. Монитор - это программа, обеспечивающая считывание данных с клавиатуры и управление дисплеем. "Микролаб" все время выполняет программу монитора, за исключением случая, когда он выполняет программу пользователя. Устройство ввода и вывода выполнено на микросхеме К580ИК55, через которую данные из процессора могут поступать на знаковые индикаторы, светодиоды и динамик или с клавиатуры и трех переключателей в процессор. Режим работы интерфейса К580ИК55 устанавливается программно. Для этого в интерфейс (его адрес при программировании FB) записывается управляющее слово. После записи, например, управляющего слова 81 интерфейс работает на выдачу данных на светодиоды при записи по адресу F9 и на прием данных с переключателей S1-S3 при чтении из адреса FA.

Программа № 7. Управление светодиодами.

Адрес

Содержимое

Метка

Команда

Комментарии

8000

3E

MVI A, 81H

Управляющее слово 81Н

8001

81

8002

D3

OUT FB

Запись управляющего слова в интерфейс для его программирования на выдачу данных на светодиоды

8003

FB

8004

3E

MVI A, 27H

Запись в аккумулятор двоичного числа 00100111

8005

27

8006

D3

OUT F9

Выдача данных на светодиоды

8007

F9

8008

76

HLT

Программа № 8. Чтение данных с переключателей.

Адрес

Содержимое

Метка

Команда

Комментарии

8000

3E

MUI A,81H

Программирование интерфейса

8001

81

8002

D3

OUT FB

8003

FB

8004

DB

START

IN FA

Чтение данных с переключателей S1-S3

8005

FA

8006

D3

OUT F9

Выдача данных на светодиоды

8007

F9

8008

C3

JMP 8004Н

Переход к чтению данных

8009

04

800A

80

Примечание: переключатели S1-S3 подключены к линиям D1-D3 входов интерфейса.

2. Программы временной задержки.

Если ЭВМ используется не для вычислений, а для управления объектами, возникает необходимость программного создания интервалов времени между обращениями ЭВМ к объектам. Такие интервалы времени задержки можно создать, заставив процессор выполнять по программе повторяющиеся действия. Изменяя число повторений, можно изменять задержку.

Программа № 9.

Адрес

Содержимое

Метка

Команда

Комментарии

8000

1E

MVI E, 05H

Число повторений

8001

05

8002

1D

LOOP

DCR E

Декремент

8003

C2

JNZ LOOP

Если не ноль, повторить вычитание

8004

02

8005

80

Программа 5 раз производит операцию декремента содержимого регистра E. Время задержки выполнения основной программы равно произведению числа, записанного в регистр E, на время выполнения операций по адресам 8002-8005. Содержимое регистра E не может превышать 255 и программа 9 создает задержку не более 2,5 мс. Для создания больших задержек можно загрузить регистровую пару числом двойной разрядности (до FFFFH) и производить операцию декремента регистровой пары. В этом случае задержка может достичь 0,6 с.

Программа № 10.

Адрес

Содержимое

Метка

Команда

Комментарии

8000

06

MVI B,F0

Загрузка старшего байта

8001

F0

8002

0E

MVI C,50

Загрузка младшего байта

8003

50

8004

0B

LOOP

DCX B

Декремент регистровой пары

8005

79

MOV A,C

Проверка равенства нулю одновременно содержимого регистров B и C

8006

B0

ORA B

8007

C2

JNZ LOOP

Если не ноль, повторить вычитание

8008

04

8009

80

Программа № 11.

Адрес

Содержимое

Метка

Команда

Комментарии

8000

3E

MVI A, 81H

Программирование интерфейса

8001

81

8002

D3

OUT FB

8003

FB

8004

16

MVI D, 00Н

D=0

8005

00

8006

06

START

MVI B,F0

Программа задержки

8007

F0

8008

0E

MVI C,50H

8009

50

800A

0B

LOOP

DCX B

800B

79

MOV A,C

800C

B0

ORA B

800D

C2

JNZ LOOP

800E

0A

800F

80

8010

7A

MOV A,D

Выдача данных из D в порт F9

8011

D3

OUT F9

8012

F9

8013

14

INR D

D=D+1

8014

C3

JMP START

Повторение программы

8015

06

8016

80

В программе 11 после формирования времени задержки в порт F9 (на светодиоды и динамик) выдается содержимое регистра D, которое затем увеличивается на единицу и процесс повторяется. Т.о., в порт выдается нарастающий код. Сигнал на динамик подается с младшего разряда шины данных (D0) и изменяется с нуля на единицу и наоборот после каждого прохождения программы. Если время задержки уменьшить, частота колебаний возрастет и будет слышен тональный сигнал.

Программа 12 формирует звуковые сигналы, тон которых зависит от того, какая клавиша нажата. Подпрограмма чтения клавиатуры помещает код нажатой клавиши (от 00 до 17H) в регистр А. Этот код определяет период звуковых колебаний, подаваемых через порт F9 на динамик.

Программа № 12.

Адрес

Содержимое

Метка

Команда

Комментарии

8000

CD

CALL 0216H

Вызов подпрограммы чтения клавиатуры

8001

16

8002

02

8003

47

MOV B,A

Сохранение кода клавиши

8004

3E

MVI A,80H

Программирование интерфейса

8005

80

8006

D3

OUT FB

8007

FB

8008

0E

MVI C,FF

Число периодов

8009

FF

800A

3E

PERIOD

MVI A,00Н

A=0

800B

00

800C

D3

OUT F9

Выдача в порт F9 числа 0

800D

F9

800E

CD

CALL M1

Вызов подпрограммы задержки

800F

1F

8010

80

8011

3E

MVI A,FF

A=FF

8012

FF

8013

D3

OUT F9

Выдача в порт F9 числа FF

8014

F9

8015

CD

CALL M1

Вызов подпрограммы задержки

8016

1F

8017

80

8018

0D

DCR C

C=C-1

8019

C2

JNZ PERIOD

Если не ноль, то выдать еще один период

801A

0A

801B

80

801C

C3

JMP 8000H

Переход к чтению клавиатуры

801D

00

801E

80

801F

50

M1

MOV D,B

Подпрограмма задержки

8020

15

DCR D

8021

C2

JNZ 8020H

8022

20

8023

80

8024

C9

RET

Возврат из подпрограммы