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

LRP2

.pdf
Скачиваний:
14
Добавлен:
02.02.2015
Размер:
520.44 Кб
Скачать

МИНИСТЕРСТВО ПРОСВЕЩЕНИЯ УКРАИНЫ

ХАРЬКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ

К печати в свет разрешаю Проректор В.А.Кравец

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

К ЛАБОРАТОРНЫМ РАБОТАМ N10-N18

ПО КУРСУ "АРХИТЕКТУРА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ" для студентов специальностей 22.01, 22.04 и 19.05 дневной вечерней и заочной форм обучения

Все цитаты,

цифровой,

Утверждено редакционно-

фактический

материал

издательским советом

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

института

 

сведения проверены,на-

Протокол N

от

писание единиц соответствует стандартам

Составители

А.И.Поворознюк,

 

И.С.Зыков,

Ответственный за выпуск

Ф.А.Домнин

Харьков ХПИ 1993

Методические указания к лабораторным работам N10-N18 по курсу "Архитектура вычислительных систем" для студентов специальностей 22.01,22.04,19.05 дневной вечерней и заочной форм обучения /Сост.А.И.Поворознюк,И.С.Зыков,-Харьков:ХПИ 1993.-90с.

Составители А.И.Поворознюк И.С.Зыков

Кафедра вычислительной техники и пpогpаммиpования

 

СОДЕРЖАНИЕ

 

 

 

стр.

Введение................................................

4

1.Лабораторная работа 10.Системный таймер.

 

Генерация звука.............................................

5

2.

Лабораторная работа 11.Работа видеосистемы ПЭВМ

 

в текстовом режиме..........................................

15

3.

Лабораторная работа 12.Управление курсором,цветом

 

бордюра, регистами палитры,создание специальных

 

символов....................................................

23

4.

Лабораторная работа 13.Работа со страницами.

 

Манипуляции с экраном.......................................

33

5.

Лабораторная работа 14.Всплывающие окна и меню.

 

Сохранение части экрана.Восстановление экрана...............

40

6.

Лабораторная работа 15.Работа в графическом режиме.

 

Управление экраном, цветом. Изображение точки..............

48

7.

Лабораторная работа 16.Изображение линий,

 

затушевывание...............................................

65

8.

Лабораторная работа 17.Сохранение и загрузка

 

графических изображений.Перемещение и вращение объекта......

73

9.

Лабораторная работа 18.Построение движущихся

 

изображений на экране. Основы компьютерных игр..............

81

Литература..............................................

88

3

ВВЕДЕНИЕ

Методические указания к лабораторным работам по курсу "Архитектура вычислительных систем" содержат описания 18 двухчасовых лабораторных работ.

Данное издание содержит методические указания к лабораторным работам N10-N18,которые включают работы по управлению таймером и звуком, управлению видеомонитором в текстовом и графическом режимах. Лабораторные работы N1-N9 изданы отдельно (см."Методические указания к лабораторным работам N1-N9.../сост.А.И.Поворознюк и др. - Харьков: ХПИ,1993). Лабораторные работы ориентированы на использование IBM PC совместимых ПЭВМ,использующих микропроцессоры 80286 или 80386, видеоадаптеры EGA или VGA.

1. Цель лабораторного курса Целью лабораторных работ является закрепление практических на-

выков управления модулями ПЭВМ на низком уровне путем программирования адаптеров устройств на уровне портов и непосредственной адресации к видеопамяти.Прерывания BIOS используются лишь для задания режима видеоадаптера.

2. Организация и проведение лабораторных работ Студенты группы обьединяются в бригады по 2-3 человека, рабо-

тающие на закрепленном компьютере. Каждый студент получает индивидуальное задание в соответствии с номером в журнале и оформляет отчет по лабораторной работе.

Выполнение лабораторной работы предполагает предварительное изучение соответствующего раздела курса и методических указаний к очередной работе.

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

Текст программы составляется на одном из языков программирования Турбо-Си или Турбо-Паскаль по указанию преподавателя и с учетом глубины знаний студентами конкретного языка.

При составлении прогррамм пользоваться рекомендациями пункта "Особенности программирования" для данной лабораторной работы.

Втечение выполнения лабораторной работы студент должен ответить на контрольные вопросы по предыдущей лабораторной работе. К лабораторной работе не допускаются студенты, не сдавшие более двух лабораторных работ.

Пропущенные лабораторные работы выполняются в конце семестра.

Впроцессе выполнения лабораторных работ следует ограничить перемещения в лаборатории.

4

Лабораторная работа 10

СИСТЕМНЫЙ ТАЙМЕР. ГЕНЕРАЦИЯ ЗВУКА

1. Цель работы

Изучение функций системного таймера и приобретение практических навыков работы с таймером и динамиком при генерации звука.

2.Темы предварительной проработки

2.1.Структура и назначение портов микросхемы конфигурации и системного таймера.

3.Описание работы

3.1. Системный таймер.

Все компьютеры IBM содержат устройство, называемое системным таймером. Это устройство подключено к линии запроса на прерывание IRQ0 и вырабатывает прерывание INT 8H приблизительно 18,2 раза в секунду (точное значение - 1193180/65535 раза в секунду).

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

вания

таймера. Эта программа каждый раз увеличивает на 1 текущее

значение 4-байтовой переменной,

располагающейся в

области

данных

BIOS по адресу 0040:006CH - счетчика тиков таймера. Если этот счет-

чик переполняется (т.е. прошло более 24 часов

с

момента

запуска

таймера), в ячейку 0040:0070H заносится 1.

 

 

 

 

Стандартный обработчик прерывания

таймера

осуществляет

также

контроль за работой двигателей НГМД.

Если после последнего обраще-

ния к НГМД прошло более 2 секунд,

обработчик прерывания

выключает

двигатель

(ячейка с адресом 0040:0040H содержит время,

оставшееся

до выключения двигателя).

 

 

 

 

 

 

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

таймера,

это вызов прерывания INT 1CH. После инициализации системы

вектор INT 1CH указывает на команду IRET, т.е. ничего не выполняет-

ся.

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

этого прерывания для того, чтобы выполнить какие-либо периодические действия.

Необходимо отметить, что прерывание INT 1CH вызывается до сброса контроллера прерываний, поэтому во время выполнения прерывания INT 1CH все аппаратные прерывания запрещены. Для сброса контроллера прерываний надо в порт 20H записать значение 20H.

5

На рисунке 1 показан механизм обработки прерывания таймера.

 

Обработчик INT 8H

 

 

 

Обработчик INT 1CH

 

 

 

 

┌──────────────┐

 

┌─────────────────────────────┐

┌──────────┴──────────┐

│ Увеличение счетчика по

│ Выполнение действий,│

│адресу 0040:006CH, проверка

определенных в

│его на переполнение

программе

└──────────────┬──────────────┘

└──────────┬──────────┘

┌──────────────┴───────────────┐

┌──────────┴──────────┐

│ Проверка времени последнего

IRET

│обращения к НГМД, если оно

└──────────┬──────────┘

│больше 2 секунд выключение

 

 

│двигателя НГМД

 

 

└──────────────┬───────────────┘

 

 

┌──────────────┴───────────────┐

 

 

│ Вызов прерывания INT 1Ch

├>─┘

 

 

 

├<────────────────┘

 

└──────────────┬───────────────┘

 

 

 

 

┌──────────────┴───────────────┐

 

 

 

 

│ Сброс контроллера прерываний │

 

 

 

 

└──────────────┬───────────────┘

 

 

 

 

┌──────────────┴───────────────┐

 

 

 

 

IRET

 

 

 

 

└──────────────────────────────┘

Рис. 1

Таймер обычно реализуется на микросхеме Intel 8253 (для IBM PC

и IBM XT) или 8254 (для IBM AT и IBM PS/2)

3.2. Состав и режимы работы микросхемы таймера.

Таймеры 8253 и 8254 состоят из трех независимых каналов. Каж дый канал содержит регистры:

-состояния канала RS (8 разрядов); -управляющего слова PSW (8 разрядов); -буферный регистр OL (16 разрядов); -регистр счетчика CE (16 разрядов);

-регистр констант пересчета CR (16 разрядов).

Каналы таймера подключаются к внешним устройствам при помощи трех линий:

6

GATE

-

управляющий вход;

 

 

 

CLOCK -

вход тактовой частоты;

 

 

 

OUT

-

выход таймера.

 

 

 

Регистр

счетчика CE работает в режиме вычитания. Его содержимое

уменьшается

по заднему фронту сигнала CLOCK при

условии,

что

на

входе GATE установлен уровень логической 1. В зависимости от режима

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

бом меняется выходной сигнал OUT.

 

 

 

Буферный регистр OL предназначен для запоминания текущего

со-

держимого

 

регистра счетчика CE без остановки процесса счета. После

запоминания

буферный регистр доступен программе для чтения.

 

 

Регистр

констант пересчета CR может загружаться в регистр счет-

чика, если это требуется в текущем режиме работы таймера.

 

 

Возможны 6 режимов работы таймера. Они разделяются на три типа:

-режимы

0 и 4 - однократное выполнение функций;

 

 

-режимы

1 и 5 - работа с перезапуском;

 

 

 

-режимы

2 и 3 - работа с автозагрузкой.

 

 

 

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

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

регистр

счетчика

CE по сигналу CLOCK, если сигнал GATE установлен в 1. В дальнейшем

содержимое регистра CE уменьшается по мере прихода

сигналов CLOCK.

Процесс счета можно приостановить, если подать на вход GATE уровень

логического

0. Если затем на вход GATE подать 1, счет будет продол-

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

При работе с перезапуском не требуется повторного программирования таймера для выполнения той же функции. По фронту сигнала GATE значение константы из регистра CR вновь переписывается в регистр СЕ, даже если текущая операция не была завершена.

Врежиме автозагрузки регистр CR автоматически переписывается в

врегистр CE после завершения счета. Сигнал на выходе OUT появляется только при наличии на входе GATE уровня логической 1. Этот режим используется для создания программируемых импульсных генераторов и генераторов прямоугольных импульсов (меандров).

Вкомпьютерах IBM PC/XT/AT/PS2 задействованы все три канала таймера.

Канал 0 используется в системных часах времени суток. Этот канал работает в режиме 3 и используется как генератор импульсов с частотой примерно 18,2 Гц. Именно эти импульсы вызывают аппаратное прерывание INT 8Н.

Канал 1 используется для регенерации содержимого динамической памяти компьютера, поэтому его лучше не трогать. Выходная линия ка-

7

нала OUT связана с микросхемой прямого доступа к памяти (DMA), и ее импульс заставляет DMA регенерировать память.

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

3.3. Программирование таймера.

Таймеру соответствуют 4 порта ввода/вывода со следующими адресами: 40H - канал 0; 41H - канал 1; 42H - канал 2; 43H - управляющий регистр. Формат байта управляющего регистра (управляющего слова) приведен в таблице 1.

Таблица 1

Управляющий регистр

────────────────────────────────────────────────────────────────

Биты Значение

────────────────────────────────────────────────────────────────

00 - двоичные данные;

1 - данные в форме BCD (двоично-десятичные)

3-1 номер режима:

000 - режим 0 (прерывание от таймера);

001 - режим 1 (программируемый ждущий мультивибратор);

X01 - режим 2 (программируемый генератор импульсов);

X11 - режим 3 (генератор меандра);

100- режим 4 (программно-запускаемый одновибратор);

101- режим 5 (аппаратно-запускаемый одновибратор)

5-4 тип операции:

00 - передать значения счетчика в буфер;

01 - читать/писать только старший байт;

10 - читать/писать только младший байт;

11 - читать/писать сначала младший байт потом - старший

7-6 номер канала: 00 - канал 0; 01 - канал 1; 10 - канал 2;

11 - код команды RBC

(чтение состояния канала)

─────────────────────────────────────────────────────────────────

8

Младший разряд байта определяет формат константы, использующейся для счета. В двоично-десятичном режиме константа задается в диапазоне 1 -9999.

Для программирования канала таймера необходимо выполнить следующую последовательность действий:

-записать в управляющий регистр по адресу 43H управляющее сло-

во;

-требуемое значение счетчика посылается в порт канала (адреса 40H - 42H), причем сначала посылается младший байт, а затем старший байт значения счетчика.

Сразу после этого канал таймера начинает выполнять требуемую функцию.

3.4. Генерация звуков и музыки.

Звуки и музыку на ПЭВМ можно воспроизводить двумя способами: -с использованием таймера; -без использования таймера.

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

Отметим, что во всех моделях IBM, за исключением IBM PCjr, которая имеет (помимо динамика) специальный звуковой генератор, громкость звука не изменяется.

3.4.1. Управление динамиком с использованием таймера.

Одно из наиболее распространенных применений таймера - генерация звуковых сигналов и воспроизведение музыки. Таймер позволяет воспроизводить музыку в фоновом режиме, т.е. во время работы программы может звучать музыка.

Как уже отмечалось выше, канал 2 микросхемы 8254 связан с динамиком. Однако динамик не просто соединен с выходом OUT канала 2. Порт 61H также используется для управления динамиком (рис. 2).

9

┌───────────┐

Системный │

генератор │ F = 1193180 Гц

│ импульсов │

Прерывание

└─────┬─────┘

таймера BIOS

CLOCK ┌──────────────────────────┐

├──────────────┤

 

│ OUT

GATE │

КАНАЛ 0

├──────────────

│Лог.1 ────────┤

 

└──────────────────────────┘

 

 

Регенерация

 

 

памяти

CLOCK ┌──────────────────────────┐

├──────────────┤

 

│ OUT

GATE │

КАНАЛ 1

├──────────────

│Лог.1 ────────┤

 

└──────────────────────────┘

 

 

 

 

 

 

CLOCK ┌──────────────────────────┐

└──────────────┤

 

│ OUT

GATE

КАНАЛ 2

├────┬─────────

┌───────────┤

 

└──────────────────────────┘

 

 

 

 

 

 

 

 

 

└─────────────────────────────┐

 

│Динамик

Порт 61h

 

│ ┌─┐

┌───┬───┬───┬───┬───┬───┬───┬─┴─┐

 

┌┴─┤ │

│ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │

 

│ │ │

└───┴───┴───┴───┴───┴───┴─┬─┴───┘

 

└┬─┤ │

 

 

└─────────────────┘ └─┘

Рис. 2

Младший бит этого порта при установке в 1 разрешает работу канала,т.е. генерацию импульсов для динамика.Дополнительно для управления динамиком используется бит 1 порта 61H. Если этот бит установлен в 1, импульсы от канала 2 таймера смогут проходить на динамик.

10

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