Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
асвт .курсач.docx
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
4 Мб
Скачать
☆

Разработка и описание функциональной схемы алгоритма

Функциональная схема ГПМ:

Функциональная схема ПМ1:

2

1

5

4

3

2

1

9

8

7

6

5

4

3

6

7

8

9

Функциональная схема ПМ2:

2

1

5

4

3

2

1

5

4

3

Функциональная схема ПМ3:

2

1

5

4

3

2

1

5

4

3

Функциональная схема ПМТ10

Распределение памяти в пзу

В условных адресах:

ГПМ+0

ПМ1+0

ПМ2+0

ПМ3+0

ПМТ10+0

…

…

…

…

…

ГПМ+56

ПМ1+168

ПМ2+120

ПМ3+120

ПМТ10+45

В действительных адресах:

ГПМ

ПМ1

ПМ2

ПМ3

ПМТ10

0000

0060

0230

0360

0490

0059

0229

0359

0489

0535

Принцип работы:

Пользователь нажимаем на клавиатуре «НАЧАЛО РАБОТЫ».

На Табло 2 загорается приветствие и предложение ответить на вопросы. Так же загорается первый вопрос. Для обдумывания ответа пользователю даётся 10 секунд..

В зависимости от того, какую клавишу пользователь нажмёт в ответ на вопрос, возможны следующие случаи:

  • На Табло 2 загорится сообщение о том, что требуемая информация была найдена, а на Табло 1 загорятся номера страницы в каталоге

  • На Табло 2 загорится следующий вопрос

  • На Табло 2 загорится сообщение о том, что требуемая информация не найдена

Структура управляющего слова КР580ВВ55:

7

6

5

4

3

2

1

0



Разряд 0: Порт С(0…3): «1» - ввод, «0» - вывод.

Разряд 1: Порт В: «1» - ввод, «0» - вывод.

Разряд 2: выбор режима: «0» - режим0, «1» - режим1,

Разряд 3:Порт С(4…7): «1» - ввод, «0» - вывод.

Разряд 4: Порт А: «1» - ввод, «0» - вывод.

Разряды 5 и 6:Задание режима: «00» - режим0, «01» - режим1, «10» или «11» - режим2.

Разряд 7:Задание режима «1».

Распределение памяти в озу

СТЭК

адрес

команда

комментарий

0000

0009



Переменные

адрес

название

комментарий

0010

Счётчик1

Константа для ПМТ10

0011

Счётчик2

Константа для ПМТ10

0012

Счётчик3

Константа для ПМТ10



Разработка и описание принципиальной схемы алгоритма в условных адресах

ГПМ

ГПМ+0

OUT 898

Отправляем управляющее слово 10001001 на Интерфейс 1

1

2

OUT ED8

Отправляем управляющее слово 11101101 на Интерфейс 2

3

4

IN port C1

Чтение из порта С(0) интерфейса 1 в А

5

ANI 018

Выделение из А нулевого разряда

6

7

CPI 008

Сравниваем А с нулём

8

9

JNZ ГПМ+4

Если не ноль, переходим по адресу ГПМ+4

ГПМ+10

1

2

CALL ПМ1+0

Если ноль, то передача управления в ПМ1

3

4

5

IN port C1

Чтение из порта С(2) интерфейса 1 в А

6

ANI 048

Выделение из А второго разряда

7

8

CPI 008

Сравниваем А с нулём

9

ГПМ+20

JZ ГПМ+45

Если ноль, то переход по адресу ГПМ+45

1

2

3

IN port C1

Если не ноль, то чтение из порта С(3) в А

4

ANI 088

Выделение из А третьего разряда

5

6

CPI 008

Сравниваем А с нулём

7

8

JZ ГПМ+39

Если ноль, то переход по адресу ГПМ+39

9

ГПМ+30

1

IN port C1

Если не ноль, то чтение из порта С(4) в А

2

ANI 108

Выделение из А четвёртого разряда

3

4

CPI 008

Сравниванием А с нулём

5

6

JNZ ГПМ+15

Если не ноль, то переход по адресу ГПМ+15

7

8

9

CALL ПМ3+0

Передача управления в ПМ3

ГПМ+40

1

2

JMP ГПМ+48

Безусловный переход по адресу ГПМ+48

3

4

5

CALL ПМ2+0

Передача управления в ПМ1

6

7

8

IN port C1

Чтение из порта С(1) в А

9

ANI 028

Выделение из А первого разряда

ГПМ+50

1

CPI 008

Сравниваем А с нулём

2

3

JNZ ГПМ+48

Если не ноль, то переход по адресу ГПМ+48

4

5

6

HLT

СТОП

ПМ1

ПМ1+0

MVI A, 108

Заслать содержимое 00010000 в A

1

2

OUT port B2

Передать содержимое А в порт B(4) интерфейса 2

3

CALL ПМТ10+0

Обращение к ПМТ10 (задержка на 10 секунд)

4

5

6

MVI A, 208

Заслать содержимое 00100000 в A

7

8

OUT port B2

Передать содержимое А в порт В(5) интерфейса 2

9

CALL ПМТ10+0

Обращение к ПМТ10 (задержка на 10 секунд)

ПМ1+10

1

2

IN port C1

Чтение из порта С(2) интерфейса 1 в А

3

ANI 048

Выделение из А второго разряда

4

5

CPI 008

Сравниваем А с нулём

6

7

JNZ ПМ1+29

Если не ноль, переходим по адресу ПМ1+29

8

9

ПМ1+20

MVI A, 0C8

Заслать в А 00001100 (первая цифра = 1 на Табло 1)

1

2

OUT port A1

Передать содержимое А в порт А интерфейса 1 (вывод первой цифры на Табло 1)

3

MVI A, 008

Заслать в А 00000000 (вторая цифра = 0 на Табло 1)

4

5

OUT port В1

Передать содержимое А в порт В интерфейса 1 (вывод второй цифры на Табло 1)

6

JMP ПМ1+168

Возврат в ГПМ

7

8

9

IN port C1

Чтение из порта С(3) интерфейса 1 в А

ПМ1+30

ANI 088

Выделение из А третьего разряда

1

2

CPI 008

Сравниваем А с нулём

3

4

JZ ПМ1+45

Если ноль, переходим по адресу ПМ1+45

5

6

7

IN port C1

Если не ноль, то чтение из порта С(4) интерфейса 1 в А

8

ANI 108

Выделение из А четвёртого разряда

9

ПМ1+40

CPI 008

Сравниваем А с нулём

1

2

JNZ ПМ1+8

Если не ноль, то переход по адресу ПМ1+8

3

4

5

MVI А, 018

Заслать содержимое 00000001 в А

6

7

OUT port A2

Передать содержимое А в порт А(0) интерфейса 2

8

CALL ПМТ10+0

Обращение к ПМТ10 (задержка на 10 секунд)

9

ПМ1+50

1

IN port C1

Чтение из порта С(2) интерфейса 1 в А

2

ANI 048

Выделение из А второго разряда

3

4

CPI 008

Сравниваем А с нулём

5

6

JNZ ПМ1+68

Если не ноль, переходим по адресу ПМ1+68

7

8

9

MVI A, 768

Заслать в А 01110110 (первая цифра = 2 на Табло 1)

ПМ1+60

1

OUT port A1

Передать содержимое А в порт А интерфейса 1 (вывод первой цифры на Табло 1)

2

MVI A, 008

Заслать в А 00000000 (вторая цифра = 0 на Табло 1)

3

4

OUT port В1

Передать содержимое А в порт В интерфейса 1 (вывод второй цифры на Табло 1)

5

JMP ПМ1+168

Возврат в ГПМ

6

7

8

IN port C1

Чтение из порта С(3) интерфейса 1 в А

9

ANI 088

Выделение из А третьего разряда

ПМ1+70

1

CPI 008

Сравниваем А с нулём

2

3

JZ ПМ1+84

Если ноль, переходим по адресу ПМ1+84

4

5

6

IN port C1

Если не ноль, то чтение из порта С(4) интерфейса 1 в А

7

ANI 108

Выделение из А четвёртого разряда

8

9

CPI 008

Сравниваем А с нулём

ПМ1+80

1

JNZ ПМ1+47

Если не ноль, то переход по адресу ПМ1+47

2

3

4

MVI А, 028

Заслать содержимое 00000010 в А

5

6

OUT port A2

Передать содержимое А в порт А(1) интерфейса 2

7

CALL ПМТ10+0

Обращение к ПМТ10 (задержка на 10 секунд)

8

9

ПМ1+90

IN port C1

Чтение из порта С(2) интерфейса 1 в А

1

ANI 048

Выделение из А второго разряда

2

3

CPI 008

Сравниваем А с нулём

4

5

JNZ ПМ1+107

Если не ноль, переходим по адресу ПМ1+107

6

7

8

MVI A, 5Е8

Заслать в А 01011110 (первая цифра = 3 на Табло 1)

9

ПМ1+100

OUT port A1

Передать содержимое А в порт А интерфейса 1 (вывод первой цифры на Табло 1)

1

MVI A, 008

Заслать в А 00000000 (вторая цифра = 0 на Табло 1)

2

3

OUT port В1

Передать содержимое А в порт В интерфейса 1 (вывод второй цифры на Табло 1)

4

JMP ПМ1+168

Возврат в ГПМ

5

6

7

IN port C1

Чтение из порта С(3) интерфейса 1 в А

8

ANI 088

Выделение из А третьего разряда

9

ПМ1+110

CPI 008

Сравниваем А с нулём

1

2

JZ ПМ1+123

Если ноль, переходим по адресу ПМ1+123

3

4

5

IN port C1

Если не ноль, то чтение из порта С(4) интерфейса 1 в А

6

ANI 108

Выделение из А четвёртого разряда

7

8

CPI 008

Сравниваем А с нулём

9

ПМ1+120

JNZ ПМ1+86

Если не ноль, то переход по адресу ПМ1+86

1

2

3

MVI А, 028

Заслать содержимое 00000100 в А

4

5

OUT port A2

Передать содержимое А в порт А(2) интерфейса 2

6

CALL ПМТ10+0

Обращение к ПМТ10 (задержка на 10 секунд)

7

8

9

IN port C1

Чтение из порта С(2) интерфейса 1 в А

ПМ1+130

ANI 048

Выделение из А второго разряда

1

2

CPI 008

Сравниваем А с нулём

3

4

JNZ ПМ1+146

Если не ноль, переходим по адресу ПМ1+146

5

6

7

MVI A, 4D8

Заслать в А 01001101 (первая цифра = 4 на Табло 1)

8

9

OUT port A1

Передать содержимое А в порт А интерфейса 1 (вывод первой цифры на Табло 1)

ПМ1+140

MVI A, 008

Заслать в А 00000000 (вторая цифра = 0 на Табло 1)

1

2

OUT port В1

Передать содержимое А в порт В интерфейса 1 (вывод второй цифры на Табло 1)

3

JMP ПМ1+168

Возврат в ГПМ

4

5

6

IN port C1

Чтение из порта С(3) интерфейса 1 в А

7

ANI 088

Выделение из А третьего разряда

8

9

CPI 008

Сравниваем А с нулём

ПМ1+150

1

JZ ПМ1+162

Если ноль, переходим по адресу ПМ1+162

2

3

4

IN port C1

Если не ноль, то чтение из порта С(4) интерфейса 1 в А

5

ANI 108

Выделение из А четвёртого разряда

6

7

CPI 008

Сравниваем А с нулём

8

9

JNZ ПМ1+159

Если не ноль, то переход по адресу ПМ1+159

ПМ1+160

1

2

MVI А, 028

Заслать содержимое 0001000 в А

3

4

OUT port A2

Передать содержимое А в порт А(3) интерфейса 2

5

CALL ПМТ10+0

Обращение к ПМТ10 (задержка на 10 секунд)

6

7

8

RET

Возврат в ГПМ

ПМ2

ПМ2+0

MVI A, 108

Заслать содержимое 0001000 в А

1

2

OUT port A2

Передать содержимое А в порт А(4) интерфейса 2

3

CALL ПМТ10+0

Обращение к ПМТ10 (задержка на 10 секунд)

4

5

6

IN port C1

Чтение из порта С(2) интерфейса 1 в А

7

ANI 04h8

Выделение из А второго разряда

8

9

CPI 008

Сравниваем А с нулём

ПМ2+10

1

JNZ ПМ2+23

Если не ноль, переходим по адресу ПМ2+23

2

3

4

MVI A, 5A8

Заслать в А 01011010(первая цифра = 5 на Табло 1)

5

6

OUT port A1

Передать содержимое А в порт А интерфейса 1 (вывод первой цифры на Табло 1)

7

MVI A, 008

Заслать в А 00000000 (вторая цифра = 0 на Табло 1)

8

9

OUT port В1

Передать содержимое А в порт В интерфейса 1 (вывод второй цифры на Табло 1)

ПМ2+20

JMP ПМ2+120

Возврат в ГПМ

1

2

3

IN port C1

Чтение из порта С(3) интерфейса 1 в А

4

ANI 088

Выделение из А третьего разряда

5

6

CPI 008

Сравниваем А с нулём

7

8

JZ ПМ2+39

Если ноль, переходим по адресу ПМ2+39

9

ПМ2+30

1

IN port C1

Если не ноль, то чтение из порта С(4) интерфейса 1 в А

2

ANI 108

Выделение из А четвёртого разряда

3

4

CPI 008

Сравниваем А с нулём

5

6

JNZ ПМ2+2

Если не ноль, то переход по адресу ПМ2+2

7

8

9

MVI А, 208

Заслать содержимое 00100000 в А

ПМ2+40

1

OUT port A2

Передать содержимое А в порт А(5) интерфейса 2

2

CALL ПМТ10+0

Обращение к ПМТ10 (задержка на 10 секунд)

3

4

5

IN port C1

Чтение из порта С(2) интерфейса 1 в А

6

ANI 048

Выделение из А второго разряда

7

8

CPI 008

Сравниваем А с нулём

9

ПМ2+50

JNZ ПМ2+62

Если не ноль, переходим по адресу ПМ2+62

1

2

3

MVI A, 7В8

Заслать в А 01111011 (первая цифра = 6 на Табло 1)

4

5

OUT port A1

Передать содержимое А в порт А интерфейса 1 (вывод первой цифры на Табло 1)

6

MVI A, 008

Заслать в А 00000000 (вторая цифра = 0 на Табло 1)

7

8

OUT port В1

Передать содержимое А в порт В интерфейса 1 (вывод второй цифры на Табло 1)

9

JMP ПМ2+120

Возврат в ГПМ

ПМ2+60

1

2

IN port C1

Чтение из порта С(3) интерфейса 1 в А

3

ANI 088

Выделение из А третьего разряда

4

5

CPI 008

Сравниваем А с нулём

6

7

JZ ПМ2+78

Если ноль, переходим по адресу ПМ2+78

8

9

ПМ2+70

IN port C1

Если не ноль, то чтение из порта С(4) интерфейса 1 в А

1

ANI 108

Выделение из А четвёртого разряда

2

3

CPI 008

Сравниваем А с нулём

4

5

JNZ ПМ2+41

Если не ноль, то переход по адресу ПМ2+41

6

7

8

MVI А, 408

Заслать содержимое 01000000 в А

9

ПМ2+80

OUT port A210

Передать содержимое А в порт А(6) интерфейса 2

1

CALL ПМТ10+0

Обращение к ПМТ10 (задержка на 10 секунд)

2

3

4

IN port C1

Чтение из порта С(2) интерфейса 1 в А

5

ANI 048

Выделение из А второго разряда

6

7

CPI 008

Сравниваем А с нулём

8

9

JNZ ПМ2+101

Если не ноль, переходим по адресу ПМ2+101

ПМ2+90

1

2

MVI A, Е8

Заслать в А 00001110 (первая цифра = 7 на Табло 1)

3

4

OUT port A1

Передать содержимое А в порт А интерфейса 1 (вывод первой цифры на Табло 1)

5

MVI A, 008

Заслать в А 00000000 (вторая цифра = 0 на Табло 1)

6

7

OUT port В1

Передать содержимое А в порт В интерфейса 1 (вывод второй цифры на Табло 1)

8

JMP ПМ2+120

Возврат в ГПМ

9

ПМ2+100

1

IN port C1

Чтение из порта С(3) интерфейса 1 в А

2

ANI 088

Выделение из А третьего разряда

3

4

CPI 008

Сравниваем А с нулём

5

6

JZ ПМ2+117

Если ноль, переходим по адресу ПМ2+117

7

8

9

IN port C1

Если не ноль, то чтение из порта С(4) интерфейса 1 в А

ПМ2+110

ANI 108

Выделение из А четвёртого разряда

1

2

CPI 008

Сравниваем А с нулём

3

4

JNZ ПМ2+80

Если не ноль, то переход по адресу ПМ2+80

5

6

7

MVI А, 028

Заслать содержимое 00001000 в А

8

9

OUT port В2

Передать содержимое А в порт В(3) интерфейса 2

ПМ2+120

RET

Возврат в ГПМ

ПМ3

ПМ3+0

MVI A, 808

Заслать содержимое 10000000 в А

1

2

OUT port A2

Передать содержимое А в порт А(7) интерфейса 2

3

CALL ПМТ10+0

Обращение к ПМТ10 (задержка на 10 секунд)

4

5

6

IN port C1

Чтение из порта С(2) интерфейса 1 в А

7

ANI 048

Выделение из А второго разряда

8

9

CPI 008

Сравниваем А с нулём

ПМ3+10

1

JNZ ПМ3+23

Если не ноль, переходим по адресу ПМ3+23

2

3

4

MVI A, 7F8

Заслать в А 01111111 (первая цифра = 8 на Табло 1)

5

6

OUT port A1

Передать содержимое А в порт А интерфейса 1 (вывод первой цифры на Табло 1)

7

MVI A, 008

Заслать в А 00000000 (вторая цифра = 0 на Табло 1)

8

9

OUT port В1

Передать содержимое А в порт В интерфейса 1 (вывод второй цифры на Табло 1)

ПМ3+20

JMP ПМ3+120

Возврат в ГПМ

1

2

3

IN port C1

Чтение из порта С(3) интерфейса 1 в А

4

ANI 088

Выделение из А третьего разряда

5

6

CPI 008

Сравниваем А с нулём

7

8

JZ ПМ3+39

Если ноль, переходим по адресу ПМ3+39

9

ПМ3+30

1

IN port C1

Если не ноль, то чтение из порта С(4) интерфейса 1 в А

2

ANI 108

Выделение из А четвёртого разряда

3

4

CPI 008

Сравниваем А с нулём

5

6

JNZ ПМ3+2

Если не ноль, то переход по адресу ПМ3+2

7

8

9

MVI А, 018

Заслать содержимое 00000001 в А

ПМ3+40

1

OUT port B2

Передать содержимое А в порт B(0) интерфейса 2

2

CALL ПМТ10+0

Обращение к ПМТ10 (задержка на 10 секунд)

3

4

5

IN port C1

Чтение из порта С(2) интерфейса 1 в А

6

ANI 048

Выделение из А второго разряда

7

8

CPI 008

Сравниваем А с нулём

9

ПМ3+50

JNZ ПМ3+62

Если не ноль, переходим по адресу ПМ3+62

1

2

3

MVI A, 5F8

Заслать в А 01011111 (первая цифра = 9 на Табло 1)

4

5

OUT port A1

Передать содержимое А в порт А интерфейса 1 (вывод первой цифры на Табло 1)

6

MVI A, 008

Заслать в А 00000000 (вторая цифра = 0 на Табло 1)

7

8

OUT port В1

Передать содержимое А в порт В интерфейса 1 (вывод второй цифры на Табло 1)

9

JMP ПМ3+120

Возврат в ГПМ

ПМ3+60

1

2

IN port C1

Чтение из порта С(3) интерфейса 1 в А

3

ANI 088

Выделение из А третьего разряда

4

5

CPI 008

Сравниваем А с нулём

6

7

JZ ПМ3+78

Если ноль, переходим по адресу ПМ3+78

8

9

ПМ3+70

IN port C1

Если не ноль, то чтение из порта С(4) интерфейса 1 в А

1

ANI 108

Выделение из А четвёртого разряда

2

3

CPI 008

Сравниваем А с нулём

4

5

JNZ ПМ3+41

Если не ноль, то переход по адресу ПМ3+41

6

7

8

MVI А, 408

Заслать содержимое 00000010 в А

9

ПМ3+80

OUT port B2

Передать содержимое А в порт B(1) интерфейса 2

1

CALL ПМТ10+0

Обращение к ПМТ10 (задержка на 10 секунд)

2

3

4

IN port C1

Чтение из порта С(2) интерфейса 1 в А

5

ANI 048

Выделение из А второго разряда

6

7

CPI 008

Сравниваем А с нулём

8

9

JNZ ПМ3+101

Если не ноль, переходим по адресу ПМ3+101

ПМ3+90

1

2

MVI A, 5F8

Заслать в А 01011111 (первая цифра = 9 на Табло 1)

3

4

OUT port A1

Передать содержимое А в порт А интерфейса 1 (вывод первой цифры на Табло 1)

5

MVI A, 5F8

Заслать в А 01011111(вторая цифра = 9 на Табло 1)

6

7

OUT port В1

Передать содержимое А в порт В интерфейса 1 (вывод второй цифры на Табло 1)

8

JMP ПМ3+120

Возврат в ГПМ

9

ПМ3+100

1

IN port C1

Чтение из порта С(3) интерфейса 1 в А

2

ANI 088

Выделение из А третьего разряда

3

4

CPI 00

Сравниваем А с нулём

5

6

JZ ПМ3+117

Если ноль, переходим по адресу ПМ3+117

7

8

9

IN port C1

Если не ноль, то чтение из порта С(4) интерфейса 1 в А

ПМ3+110

ANI 108

Выделение из А четвёртого разряда

1

2

CPI 00

Сравниваем А с нулём

3

4

JNZ ПМ3+80

Если не ноль, то переход по адресу ПМ3+80

5

6

7

MVI А, 028

Заслать содержимое 00001000 в А

8

9

OUT port В2

Передать содержимое А в порт В(3) интерфейса 2

ПМ3+120

RET

Возврат в ГПМ

ПМТ10

ПМТ10+0

LXI HL, 001016

Загружаем в HL адрес ОЗУ+001016

1

2

3

MVI M, 008

Обнуляем счетчик1

4

5

LXI HL, 001116

Загружаем в HL адрес ОЗУ+001116

6

7

8

MVI M, 008

Обнуляем счетчик2

9

ПМТ10+10

LXI HL, 001216

Загружаем в HL адрес ОЗУ+001216

1

2

3

MVI M, 008

Обнуляем счетчик3

4

5

NOP

6

NOP

7

NOP

8

INR M

Инкрементируем счетчик3

9

MVI A, FF8

Заносим число 25510 в аккумулятор

ПМТ10+20

1

CMP M

Сравниваем счетчик 3 с числом 25510

2

JNZ ПМТ10+15

Если счетчик3 ≠ 25510, переход по адресу ПМТ10+15

3

4

5

LXI HL, 001116

Загружаем в HL адрес ОЗУ+001116

6

7

8

INR M

Инкрементируем счетчик2

9

MVI A, 408

Заносим число 6410 в аккумулятор

ПМТ10+30

1

CMP M

Сравниваем счетчик2 с числом 6410

2

JNZ ПМТ10+10

Если счетчик2 ≠ 6410, переход по адресу ПМТ10+10

3

4

5

LXI HL, 001016

Загружаем в HL адрес ОЗУ+001016

6

7

8

INR M

Инкрементируем счетчик1

9

MVI A, 648

Заносим в аккумулятор число 10010

ПМТ10+40

1

CMP M

Сравниваем счетчик1 с числом 10010

2

JNZ ПМТ10+05

Если счетчик1 ≠ 1010, переход по адресу ПМТ10+05

3

4

5

RET

Выход из программного модуля ПМТ10