Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

rgz

.pdf
Скачиваний:
50
Добавлен:
12.04.2015
Размер:
784.45 Кб
Скачать

 

41

 

2.4. Текст программы

DELA .EQU 0429h

; адрес п/п задержки 1 мс

DELB .EQU 0430h

; адрес п/п задержки, указанной в BC

NDSP .EQU 0410h

; адрес области номеров элементов сканироания

 

; (строк или индикаторов)

DCD_K .EQU 0450h

; адрес п/п декодирования кода клавиши по строке и

 

; столбцу

DCDT .EQU 0400h

; адрес начала таблицы декодирования

MULTIPLY .EQU 04E1h

; адрес п/п умножения (E)×(D)(BC)

;

 

 

.org 0800h

 

 

;

Основная программа

MAIN:

;

;****************** Ввод первого сомножителя

 

LXI D,MES_0

;

 

CALL LOAD_DDSP ;

MN_1:

 

 

CALL SCAN_KD ;сканирование сообщения из DDSP до нажатия

 

CPI 10h

;│нажата цифровая клавиша? (0..F)

 

JNC MN_0

;│

;

Когда нажата цифровая клвиша

 

MOV B,A ; копируем код нажатия в B

;

 

 

 

LDA DIG_0

;│ модификация

 

STA DIG_1

;│ буфера кодов цифр

 

MOV A,B

;│ вводимого однобайтного числа

 

STA DIG_0

;│

;

 

 

 

LDA DDSP+2

;│ модификация

 

STA DDSP+1

;│ буфера символов цифр

 

MOV A,B

;│ вводимого однобайтного числа

 

CALL DCD

;│ из области DDSP

 

STA DDSP+2

;

;

 

 

 

JMP MN_1

 

;

Когда нажата нецифровая клвиша

MN_0:

 

 

CPI 4Ch

; нажата клавиша "пробел"?

 

JNZ MN_1

 

;

Когда нажата клавиша "пробел"

 

LDA DIG_1

 

42

RLC

RLC

RLC

RLC MOV B,A

LDA DIG_0 ADD B STA MUL_1

;

;****************** Ввод второго сомножителя

 

MVI A,08h

 

 

STA DDSP+4

 

 

STA DDSP+5

 

MN_3:

 

 

CALL SCAN_KD ;сканирование сообщения из DDSP до нажатия

 

CPI 10h

;│нажата цифровая клавиша? (0..F)

 

JNC MN_2

;│

;

Когда нажата цифровая клавиша

 

MOV B,A

; копируем код нажатия в B

;

 

 

 

LDA DIG_0

;│ модификация

 

STA DIG_1

;│ буфера кодов цифр

 

MOV A,B

;│ вводимого однобайтного числа

 

STA DIG_0

;│

;

 

 

 

LDA DDSP+5

;│ модификация

 

STA DDSP+4

;│ буфера символов цифр

 

MOV A,B

;│ вводимого однобайтного числа

 

CALL DCD

;│ из области DDSP

 

STA DDSP+5

;

;

 

 

 

JMP MN_3

 

;

Когда нажата нецифровая клвиша

MN_2:

 

 

CPI 4Ch

; нажата клавиша "пробел"

 

JNZ MN_3

 

;

Когда нажата клавиша "пробел"

 

LDA DIG_1

 

RLC

RLC

RLC

RLC

MOV B,A

43

LDA DIG_0 ADD B STA MUL_2

;

;**************** Умножение и вывод результата

LDA MUL_1 MOV E,A LDA MUL_2 MOV D,A

CALL MULTIPLY ; умножение (E)*(D)(BC) MOV A,C

STA RES_0

MOV A,B

STA RES_1

;

LXI D,MES_1 CALL LOAD_DDSP

;

LDA RES_0 ANI 0Fh CALL DCD STA DDSP+3 LDA RES_0 ANI 0F0h RLC

RLC

RLC

RLC

CALL DCD

STA DDSP+2

;

LDA RES_1 ANI 0Fh CALL DCD STA DDSP+1 LDA RES_1 ANI 0F0h RLC

RLC

RLC

RLC

CALL DCD

STA DDSP

44

;

CALL SCAN_KD ;сканирование сообщения из DDSP до нажатия

CPI 8Ch JNZ MAIN RST 7

;

; Сканирование сообщения из DDSP до нажатия

;Входные параметры: M[DDSP..DDSP+5]

;Выходные параметры: A и Key_Code – код нажатой клавиши

;Подпрограммы: DELA, DELB, DCD_K

;

SCAN_KD:

LXI D,DDSP ;установка в исходное состояние указателя ячеек DDSP LXI H,NDSP ;установка в исходное состояние указателя элементов

;сканирования

SC_02: ; выбор очередной строки клавиатурной матрицы и MOV A,M ; очередного индикатора дисплея;

;

 

 

 

OUT 0F8h

; вывод через порт А

 

LDAX D

;

 

 

OUT 0F9h

;вывод через порт В

 

IN 0FAh

; прием кода столбца из порта с PPI

 

CMA

; инверсия А

 

ANI 74h

;наложение маски на используемые биты

76543210

;

 

 

01110100

JNZ SC_03;

 

 

 

INX H

;инркемент указателя ячеек DDSP(указателя элементов

 

;сканирования)

 

INX D

; Н+1; D+1;

 

CALL DELA

; пауза 1 мс

 

MOV A,L

;

 

 

CPI 16h

;

 

 

JZ SCAN_KD

;

 

 

JMP SC_02

;

 

 

SC_03:

 

 

 

STA C_Code

; загрузка кода столбца в аккумулятор

 

MOV A,M

; размещение его в аккумуляторе

 

STA L_Code

;

помещение в аккумулятор кода строки

 

LXI B,0Ah

;

подавление дребезга, пауза 10 мс

 

CALL DELB

;

 

 

SC_04:

 

 

 

IN 0FAh

;

 

 

CMA

; выявление факта отпускания клавиши

 

 

45

ANI 74h

;

JNZ SC_04

;

LDA L_Code

;

MOV H,A

; сохранение в память кода строки и столбца

LDA C_Code

;

MOV L,A

;

CALL DCD_K

; декодирование кода клавиши

MOV A,H

;

STA Key_Code ; сохранение кода клавиши

RET

;

; Декодирование кода цифры для получения кода еѐ символа ;Входные параметры: A – код циры (0..F)

;Выходные параметры: A – кода еѐ символа ;Подпрограммы:

DCD:

LXI B,DCDT ; загрузка в BC адреса начала таблицы декодирования ADD C ; │ получение адреса ячейки, где

MOV C,A ; │ хранится код символа декодируемой цифры LDAX B ; выборка из таблицы

RET

;

;Загрузка DDSP сообщением указанным в DE

;Входные параметры: DE – адрес начала загружаемого сообщения

;Выходные параметры: M[DDSP..DDSP+5]

LOAD_DDSP:

 

 

 

LXI H,DDSP

 

 

 

MVI C,6h

 

 

LD_LOOP:

 

 

 

LDAX D

;загружаем очередной байт исх сообщения в A

 

MOV M,A

;сохраняем очередной байт исх сообщения в DDSP

 

INX H

;указать на следующий байт области DDSP

 

INX D

;указать на следующий байт области исх сообщения

 

DCR C

;декремент счѐтчика копируемых байт

 

JNZ LD_LOOP

;проверка достижения счѐтчиком нуля

 

RET

 

 

;

 

 

 

;

Область данных

 

.org 0B00h

 

 

L_Code: .db 0

; код строки

C_Code: .db 0

; код столбца

Key_Code: .db 0

; код клавиши

DIG_0: .db 0

; код младшей цифры байта вводимого числа

46

DIG_1: .db 0 ; код старшей цифры байта вводимого числа MUL_1: .db 0 ; первый сомножитель

MUL_2: .db 0 ; второй сомножитель RES_0: .db 0 ; младший│байты результата RES_1: .db 0 ; старший │умножения

;

.org 0B8Ah; DDSP:

.db 00,00,00,00,00,00; Область декодированного сообщения

MES_0:

.db 00,08,08,00,00,00 ; Сообщение исходное

MES_1:

.db 00,00,00,00,00,73h ; Последний экран

.end

3. Варианты заданий РГЗ

Представляемые далее варианты привязаны к типу учебной микро-

ЭВМ.

В одной части заданий (в большей) поставленная задача может быть одинаково успешно решена и на УМК-80 и на УМПК-80, поэтому задания сформулированы абсолютно одинаково и различаются лишь типом микроЭВМ.

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

Вариант N1

Разработать программу для УМК-80 просмотра и модификации содержимого ячеек памяти, начиная с задаваемого пользователем адреса. Предусмотреть возможность изменения направления перемещения по адресам.

Вариант N2

Разработать программу для УМПК-80 просмотра и модификации содержимого ячеек памяти, начиная с задаваемого пользователем адреса. Предусмотреть возможность изменения направления перемещения по адресам.

Вариант N3

Разработать программу для УМК-80 сложения однобайтных чисел вводимых с пульта с последующим выводом результата сложения на дисплей. Количество слагаемых должно задаваться пользователем перед вводом слагаемых. Максимальное количество слагаемых – 255.

Вариант N4

Разработать программу для УМПК-80 сложения однобайтных чисел вводимых с пульта с последующим выводом результата сложения на дисплей.

47

Количество слагаемых должно задаваться пользователем перед их вводом. Максимальное количество слагаемых – 255.

Вариант N5

Разработать программу для УМК-80 вычитания многобайтных чисел вводимых с пульта с последующим выводом результата вычитания на дисплей. Максимальное число байтов – 255. Количество байтов в числах должно задаваться пользователем перед их вводом.

Вариант N6

Разработать программу для УМПК-80 вычитания многобайтных чисел вводимых с пульта с последующим выводом результата вычитания на дисплей. Максимальное число байтов – 255. Количество байтов в числах должно задаваться пользователем перед их вводом.

Вариант N7

Разработать программу для УМК-80 просмотра последовательно расположенных ячеек памяти из области, начальный адрес которой определяется пользователем. Переход к следующей ячейке реализовать ручной (по нажатии клавиши).

Вариант N8

Разработать программу для УМПК-80 просмотра последовательно расположенных ячеек памяти из области, начальный адрес которой определяется пользователем. Переход к следующей ячейке реализовать ручной (по нажатии клавиши).

Вариант N9

Разработать программу для УМК-80 просмотра последовательно расположенных ячеек памяти из области, начальный адрес которой определяется пользователем. Переход к следующей ячейке реализовать ручной (по нажатии клавиши).

Вариант N10

Разработать программу для УМПК-80 просмотра последовательно расположенных ячеек памяти из области, начиная с адреса 0. Переход к следующей ячейке реализовать ручной (по нажатии клавиши) и в обеих направлениях изменения адреса.

Вариант N11

Разработать программу для УМК-80 просмотра последовательно расположенных ячеек памяти из области, начиная с адреса 0. Переход к следующей ячейке реализовать ручной (по нажатии клавиши) и в обеих направлениях изменения адреса.

Вариант N12

Разработать программу для УМПК-80 просмотра десяти последовательно расположенных ячеек памяти из области, начальный адрес которой

48

определяется пользователем. Переход к следующей ячейке реализовать автоматический с паузой 5 с.

Вариант N13

Разработать программу для УМК-80 просмотра и модификации регистров микропроцессора. Переход к следующему регистру реализовать ручной (по нажатии клавиши) и в обеих направлениях просмотра.

Вариант N14

Разработать программу для УМПК-80 просмотра и модификации регистров микропроцессора. Переход к следующему регистру реализовать ручной (по нажатии клавиши) и в обеих направлениях просмотра.

Вариант N15

Разработать программу для УМК-80 обеспечивающую выполнение следующих действий. Сначала ввод оператором содержимого регистров процессора. Затем показ содержимого регистров, причѐм, переход к следующему регистру должен производится автоматически с паузой 5 с.

Вариант N16

Разработать программу для УМПК-80 обеспечивающую выполнение следующих действий. Сначала ввод оператором содержимого регистров процессора. Затем показ содержимого регистров, причѐм, переход к следующему регистру должен производится автоматически с паузой 5 с.

Вариант N17

Разработать программу для УМК-80 преобразования исходного однобайтного числа, вводимого с пульта, из шестнадцатеричной формы представления в десятичную и обратно с показом результата преобразования на дисплее.

Вариант N18

Разработать программу для УМПК-80 преобразования исходного однобайтного числа, вводимого с пульта, из шестнадцатеричной формы представления в десятичную и обратно с показом результата преобразования на дисплее.

Вариант N19

Разработать программу для УМК-80 вычисления результата арифметической операции, выбираемой пользователем между умножением и делением, над двумя однобайтными числами, вводимыми с пульта, с последующим выводом результата на дисплей.

Вариант N20

Разработать программу для УМПК-80 вычисления результата арифметической операции, выбираемой пользователем между умножением и делением, над двумя однобайтными числами, вводимыми с пульта, с последующим выводом результата на дисплей.

49

Вариант N21

Разработать программу для УМК-80 вычисления результата арифметической операции, выбираемой пользователем между сложением и вычитанием, над двумя однобайтными числами, вводимыми с пульта, с последующим выводом результата на дисплей.

Вариант N22

Разработать программу для УМПК-80 вычисления результата арифметической операции, выбираемой пользователем между сложением и вычитанием, над двумя однобайтными числами, вводимыми с пульта, с последующим выводом результата на дисплей.

Вариант N23

Разработать программу для УМК-80 выполнения операции над однобайтным числом с последующим выводом результата на дисплей. Операция выбирается пользователем из двух возможных: 1) преобразование в двоичнодесятичную форму; 2) возведение в квадрат. Если выбран 2), обеспечить невозможность ввода исходного числа больше максимально допустимого.

Вариант N24

Разработать программу для УМПК-80 выполнения операции над однобайтным числом с последующим выводом результата на дисплей. Операция выбирается пользователем из двух возможных:

1)преобразование в двоично-десятичную форму;

2)возведение в квадрат.

Если выбран 2), обеспечить невозможность ввода исходного числа больше максимально допустимого.

Вариант N25

Разработать программу для УМК-80 выбора из меню одного из дейст-

вий:

1)показ сообщения из цифр 1, 2, 3, 4, 5, 6;

2)показ содержимого регистра A;

3)показ содержимого ячейки 0B00;

4)возврат в монитор.

Реализовать действия меню, завершая п. 1)–3) возвратом назад к повторному выбору.

Вариант N26

Разработать программу для УМПК-80 выбора из меню одного из дейст-

вий:

1)показ сообщения из цифр 1, 2, 3, 4, 5, 6;

2)показ содержимого регистра A;

3)показ содержимого ячейки 0B00;

4)возврат в монитор.

50

Реализовать действия меню, завершая п. 1)–3) возвратом назад к повторному выбору.

4. Требования к содержанию пояснительной записки

Состав пояснительной записки

Пояснительная записка должна содержать следующие обязательные

компоненты.

 

1.

Варианта задание РГЗ.

 

2.

Схемы программно-управляемых устройств

в составе микро-

ЭВМ.

 

 

3.Блок-схемы алгоритмов программы и подпрограмм с комментариями

иобщим представлением.

4.Тексты программ и подпрограмм в мнемониках и машинных кодах.

5.Библиографический список.

Общие требования

Блок-схемы алгоритмов должны подробными настолько, чтобы одному действию блок-схемы соответствовало не более 3-4 команд из текстов листингов. При этом не следует и устанавливать жѐсткой привязки команд к действиям алгоритма, а наоборот – допускать альтернативность в реализации разных действий алгоритма.

Поторяющиеся фрагменты алгоритма допустимо и желательно подробно показывать один раз, а затем представлять их в виде процедуры.

Листинги подпрограмм должны предваряться "шапками", содержащими следующую информацию о представляемой подпрограмме:

имя подпрограммы; краткое описание действий подпрограммы;

представление входных параметров подпрограммы; представление выходных параметров подпрограммы; перечень подпрограмм вызываемых из данной подпрограммы.

Библиографический список

1.Микропроцессоры. В 3х книгах. Кн.3 Средства отладки, лабораторный практикум и задачник: Учебное пос. для вузов/ Под ред Л. Н. Преснухи-

на. – М.: Высш. шк., 1986.

2.МикроЭВМ: В 8 кн.: Практ. пособие / Под ред. Л. Н. Преснухина Кн.

7.Учебные стенды / Ю. И.Волков, В. Л. Горбунов и др. – М.: Высш.шк., 1988.

– 224с.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]