Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6 лабораторная по АПК.docx
Скачиваний:
66
Добавлен:
29.05.2015
Размер:
1.76 Mб
Скачать

Порядок выполнения работы

1)Запустить программную модель учебной ЭВМ;

2)Подключить к ней определенные в задании внешние устройства. Варианты задания указаны в таблице 2.29.

Откройте меню Внешние устройства, далее выберите Менеджер ВУ. Появится окно «Подключаемые устройства», рисунок 2.35.

Окно разделено на две части: Устройства– в этой части представлены внешние устройства поддерживаемые в учебной модели ЭВМ;Подключенные устройства– в этой части, те внешние устройства, которые подключены вами. Чтобы подключить какое-либо устройство, в окнеУстройстванужно выбрать необходимое внешнее устройство и нажать кнопкуПодключить, при этом появится окно обозревателя внешнего устройства.

Рисунок 2.35 – Окно «Подключаемые устройства»

Окно разделено на две части: Устройства– в этой части представлены ВУ поддерживаемые в учебной модели ЭВМ;Подключенные устройства– в этой части, те устройства ВУ, которые подключены вами. Чтобы подключить какое-либо устройство, в окнеУстройстванужно выбрать необходимое ВУ.

Например, для решения задачи требуется контроллер клавиатуры, для этого следует выполнить следующие действия:

  • левой кнопкой мыши выбрать контроллер клавиатуры, рисунок 2.36;

  • далее, нажать кнопку Подключить.При этом, отобразится окно обозревателяКонтроллер клавиатуры и выбранное вами ВУ появится в правой части окна Подключенные устройства, рисунок 2.37.

Аналогично подключатся другие внешние устройства. Более подробно с описанием обозревателей ВУ можно ознакомиться в разделе 2.8. Подключенные ВУ, также отображаются в меню Внешние устройства, главного окна учебной ЭВМ.

Рисунок 2.36 – Выбор внешнего устройства

Рисунок 2.37 – Подключение контроллера клавиатуры

Чтобы отключить ВУ, необходимо выполнить обратные действия: мышью выбрать отключаемое ВУ и нажать кнопку Отключить, рисунок 2.38.

Рисунок 2.38 – Отключение внешнего устройства.

3)Составить и отладить программу, предусмотренную заданием, с использованием программного анализа флагов готовности ВУ.

Рассмотрим примеры программирования ВУ.

Контроллер клавиатуры. Контроллер клавиатуры представляет собой модель внешнего устройства, принимающего ASCII-коды (таблица 2.23) от клавиатуры ПЭВМ. Символы помещаются последовательно в буфер символов, размер которого установлен равным 50 символам, и отображаются в окне обозревателя. Пример программы посимвольного ввода приведен в таблице 2. 22.

Контроллер клавиатуры выполняет четыре команды при выводе соответствующих кодов по адресу 1, таблица 2.21 [2].

Таблица 2.21 – Коды команд контроллера клавиатуры

Десятичное число

Команда

101

Очистить буфер (эквивалентно кнопке Очистить буфер)

102

Сбросить флаг Err в регистре SR

103

Установить в «1» флаг S в регистре CR

104

Сбросить в «0» флаг S в регистре CR

Таблица 2.22 – Программа посимвольного ввода с клавиатуры

Адрес

Мнемокод

Примечания

000

RD #10

Установить флаг Е в регистре CR

001

OUT 1

Включить клавиатуру

002

OUT 11

Включить дисплей

003

RD #103

Передать в контроллер код команды

004

OUT 1

Установить S в «1» (режим посимвольного ввода)

005

M1: IN 2

Проверка нажатия – флага готовности Rdy

006

JZ M1

Ожидание Rdy = 1

007

IN 0

Считывание введенного символа из буфера в аккумулятор

008

OUT 10

Передача ASCII-кода (например) на символьный дисплей

009

JMP M1

Возврат к ожиданию следующего нажатия

Таблица 2.23 – Таблица кодов ASCII, фрагмент

Шаг 1.В качестве примера, введите текст программы, приведенной в таблице 2.22, в окно текст программы. При необходимости отладьте программу, рисунок 2.39.

Рисунок 2.39 – Текст программы

Шаг 2.Включите контроллер клавиатуры;

Шаг 3.Переведите модель учебной ЭВМ автоматический режим работы кнопкойПуск;

Шаг 4.Кнопкой мыши активируйте обозреватель контроллера клавиатуры, рисунок 2.40;

Рисунок 2.40 – Обозреватель контроллера клавиатуры

Шаг 5.Во время выполнения цикла программы, вводите символы с клавиатуры, рисунок 2.41.

Рисунок 2.41- Ввод символов с клавиатуры

Шаг 6.Чтобы удалить веденные символы, необходимо нажать кнопкуОчистить буфер, рисунок 2.42.

Рисунок 2. 42 –Очистка буфера клавиатуры

Шаг 7.Чтобы завершить ввод с клавиатуры, нажмите кнопку Завершить ввод, рисунок 2.43.

Рисунок 2.43 – Завершение ввода символов

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

Доступ в видеопамять осуществляется через «окно интерфейса» необходимо сначала загрузить в регистр адреса AR номер ячейки видеопамяти, тогда обращение к регистру данных будет означать обращение (ввод или вывод) к ячейке видеопамяти с указанным адресом.

Контроллер дисплея выполняет две команды при выводе соответствующих кодов по адресу 1, таблица 2.24.

Таблица 2.24 – Коды команд контроллера дисплея

Десятичное число

Команда

101

Очистить дисплей (действие команды эквивалентно нажатию кнопки Очиститьв окнеДисплей), при этом очищается видеопамять (в каждую ячейку записывается код пробела — 032), устанавливается в 000 регистр адреса AR и сбрасываются флаги ошибки Err и автоинкремента А;

102

Сбросить флаг ошибки Err в регистре SR.

В таблице 2.25 представлен пример программы выводящей на дисплей (в начало экрана) слово «Май».

Таблица 2.25 – Текст программы, выводящей слово на дисплей

Адрес

Мнемокод

Примечания

000

RD #11

Включить дисплей и установить

001

OUT 11

флаг автоинкремента

002

RD #0

Задать начальный адрес

003

OUT 13

выводимого слова

004

RD #204

Ввод кода буквы «М»

005

OUT 10

вывод на дисплей

006

RD #224

Ввод кода буквы «а»

007

OUT 10

вывод на дисплей

008

RD #233

Ввод кода буквы «й»

009

OUT 10

вывод на дисплей

010

HLT

Стоп

Следующая программа, выставляет на дисплей в начало каждой строки ее номер, таблица 2.26.

Таблица 2.26 – Текст программы, выводящей на дисплей номер строки

Адрес

Мнемокод

Примечания

000

RD #10

Включить

001

OUT 11

дисплей

002

RD #0

Задать начальный

003

WR R1

адрес вывода

004

RD #49

Ввести код

005

WR R2

цифры «1»

006

RD #8

Ввести число

007

WR R3

повторений цикла

008

M1: RD R1

Считать текущий адрес

009

OUT 13

и передать в регистр адреса дисплея

010

ADD #16

Увеличить адрес на 16 – на начало следующей строки

011

WR R1

Сохранить измененный адрес

012

RD R2

Считать код цифры – номер строки

013

OUT 10

Передать код цифры на дисплей

014

RD @R2+

Увеличить содержимое R2 (код цифры) на единицу

015

JRNZ R3, M1

Декремент R3 и переход на начало цикла, еслиR3 ≠ 0

016

HLT

Стоп

Шаг 1.В качестве примера, введите в окноТекст программы, программу представленную в таблице 2.25.

Шаг 2.Подключите контроллер дисплея через менеджер внешних устройств;

Шаг 3.Выполняйте программу в режимеШаг до командыRD#204, рисунок 2.44.

Рисунок 2.44 – Вывод первого символа на дисплей

Шаг 6.Когда указатель в окнеПрограммаперейдет к команде RD #224, на дисплей выведется символ «а», рисунок 2.45.

Шаг 7.Продолжите выполнять программу в шаговом режиме, до команды RD #223. На дисплее появится символ «а», рисунок 2.46.

Аналогично выводится на дисплей символ «й».

Рисунок 2.45 – Вывод символа «а» на дисплей

Рисунок 2.46 – Вывод символа «й» на дисплей

Блок таймеров.Блок таймеров включает три однотипных канала таймеров Т1(адрес 1), Т2(адрес 3), Т3 (адрес 5) со своими регистрами управления CT1R (адрес 2), CT2R (адрес 4), CT3R (адрес 6) и общий регистр состояний SR (адрес 0).

Сброс флагов переполнения таймеров в регистре SR осуществляется только программно по командам, представленным в таблице 2.27. Константы кодов этих команд должны выводится по адресу 0 блока таймеров (регистра SR).

Таблица 2.27 – Коды команд таймера

Десятичное число

Команда

101

Сбросить флаг переполнения Т1

102

Сбросить флаг переполнения Т2

103

Сбросить флаг переполнения Т3

В таблице 2.28 представлен пример программы, с помощью которой реализуется подача звукового сигнала каждые 10 сек.

Такт таймера может изменяться в зависимости от ЭВМ, на которой работает модель. Если считать, что длительность такта составляет 16 мс, то для отсчёта отрезка времени в 10 сек. потребуется 10000 / 16 = 625 тактов.

Таблица 2.28 – Текст программы использования тоногенератора

Адрес

Мнемокод

Примечания

000

M0: RD #625

Загрузка константы, соответствующей задержке в 10 сек

001

OUT 21

в регистр таймера Т1

002

RDI 1101

Запуск таймера с коэффициентом деления К=1

004

OUT 22

на вычитание, прерывание запрещено

005

M1: IN 20

Анализ регистра состояния блока таймеров

006

JZ M1

и возврат, если флаг переполнения не установлен

007

RDI 1000

и останов

009

OUT 22

таймера

010

RD #101

Сброс

011

OUT 20

флага переполнения FT1

012

RD #200

Задать частоту звучания 200 Гц

013

OUT 30

в регистр частоты тоногенератора

014

RD #300

Задать длительность звучания – 300 мс

015

OUT 31

и включить звук

016

JMP M0

Повторить бесконечный цикл

Шаг 1.ПодключитеБлок таймеровиТоногенератор.

Шаг 2.Введите в окноТекст программы, пример программы, приведенную в таблице 2.28.

Шаг 3.Выполните программу в режимеШаг.

5)Сохранить программу в виде текстового файла;

6)Оформить текст программы в форме таблицы 2.28.

Таблица 2.29 – Варианты заданий

Вариант

Задание

Используемые ВУ

Пояснения

1

Ввод пятиразрядных чисел в ячейки ОЗУ

Клавиатура

Программа должна обеспечивать ввод последовательности ASCII-кодов деся­тичных цифр (не длиннее пяти) и размещение в ячейке ОЗУ. ASCII-коды не цифр игнорировать

2

Программа ввода любых символов с клавиатуры с выводом на дисплей

Клавиатура,

дисплей,

таймер

Очистка буфера клавиатуры после ввода 50 символов

3

Вывод на дисплей три любых символа, хранящихся в памяти, с задержкой

Дисплей, таймер

Первый символ выводится сразу при запуске программы, второй — через 15 с, третий — через 20 с.

4

Вывод на дисплей одно­го из трех символов, в зависимости от нажатой клавиши

Клавиатура, дисплей

<1>— вывод на дисплей первого символа, <2> — второго, <3> — третьего, остальные символы — нет реакции.

5

Выбирать из потока ASCII-кодов только цифры и выводить их на дисплей

Клавиатура,

дисплей,

тоногенератор

Вывод каждой цифры сопровождается коротким звуковым сигналом

6

Программа ввода любых символов с клавиатуры с выводом на дисплей

Клавиатура,

дисплей,

таймер

Очистка буфера клавиатуры каждые 10 с

7

Вывод на дисплей текста, хранящегося в памяти, с задержкой

Дисплей, таймер

После запуска программы, текст выводится через 15 с.

Продолжение таблицы 2.29

6

Выводить на дисплей каждый введенный с клавиатуры символ.

Клавиатура,

дисплей,

тоногенератор

Вывод каждой цифры сопровождается звуковым сигналом

7

Селективный ввод символов с клавиатуры

Клавиатура, дисплей

Все русские буквы, встречающиеся в строке ввода — в верхнюю часть экрана дисплея (строки 1—4), остальные символы не выводить.

8

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

Дисплей.

Остаток от деления на 256 трех младших разрядов ячейки памяти рассматривается как ASCII-код символа. Начальный адрес памяти, длина массива вывода и промежуток времени — параметры подпрограммы

9

Программа ввода символов с клавиатуры с выводом на дисплей

Клавиатура, дисплей

Очистка буфера клавиатуры после ввода 35 символов

10

Выводить на дисплей каждый введенный с клавиатуры символ, причем заглавную русскую букву выводить "в двух экземплярах"

Клавиатура,

дисплей,

таймер

Очистка буфера клавиатуры после ввода 48 символов, очистка экрана каждые 15 с

11

Вывод на дисплей содержимого группы ячеек памяти в числовой форме (адрес и длина группы — параметры подпрограммы)

Дисплей, таймер

Содержимое ячейки распаковывается (с учетом знака), каждая цифра преоб­разуется в соответствующий ASCII-код и выдается на дисплей. При переходе к выводу содержимого очередной ячейки формируется задержка 10 с

12

Определить промежуток времени между двумя последовательными нажатиями клавиш

Клавиатура, таймер

Результат выдается на OR. (Учитывая инерционность модели, нажатия не следует производить слишком быстро.)

13

Селективный ввод символов с клавиатуры

Клавиатура, дисплей

Все цифры — в нижнюю часть экрана (строки 5—8), остальные символы не выводить.

14

Программа ввода символов с клавиатуры с выводом на дисплей

Клавиатура, дисплей

Очистка буфера клавиатуры после ввода 35 символов

Форма и содержание отчета
  1. Титульный лист;

  2. Формулировка варианта задания:

  3. Распределение памяти;

  4. Программа, в форме таблицы 2.28;

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