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

2017 Холод / ЭВМ 4

.docx
Скачиваний:
34
Добавлен:
14.11.2018
Размер:
66.16 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра ВТ

отчет

по лабораторной работе №4

по дисциплине «Организация ЭВМ и систем»

Тема: КЛАВИАТУРА IBM PC. ИСПОЛЬЗОВАНИЕ ПРЕРЫВАНИЙ

Студент гр. 6307

Лазарев С. О.

Преподаватель

Иванов П.В.

Санкт-Петербург

2017

Оглавление

1.Задание 2

2.Краткие сведения о подсистеме ввода информации с клавиатуры, используемых прерываниях, буфере клавиатуры и функциях обслуживания ввода с клавиатуры. 3

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

4.Структурная схема аппаратных устройств 5

5.Пример работы программы 5

  1. Задание

варианта

X1

Y1

X2

Y2

Вид движения

Клавиши управления

Номер прерывания

10

15

10

65

20

Пошагово

Все направления

INT 16h

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

Подавляющее большинство программ выполняют ввод информации с

клавиатуры. Ввод информации в компьютер может быть выполнен на трех

уровнях: обращением к функциям MS-DOS; обращением к функциям BIOS;

физическим доступом к аппаратным средствам.

Ввод информации на уровне MS-DOS позволяет "пропустить" клавиатурный

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

комбинации клавиш Ctrl-C (Ctrl-Break), стандартную для MS-DOS обработку

ошибок.

Доступ к клавиатуре на уровне BIOS позволяет программе отслеживать

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

аппаратурой клавиатуры и пр. Интерфейсом Turbo С с BIOS является функция

bioskey().

Непосредственный доступ к буферу клавиатуры резко повышает

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

нажатий клавиш клавиатуры с записью кодов непосредственно в буфер. При этом

физически нажатия клавиш не происходят. Так строятся многие

демонстрационные программы, которые открывают или закрывают окна меню,

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

"автоматическом" режиме и т.п. На том же самом принципе имитации нажатий

клавиш построены программы, способные переносить одним нажатием клавиши

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

такой программы является входящая в Turbo С резидентная Help-система

THELP.COM.

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

#include <dos.h>

#include <conio.h>

#include <bios.h>

int x1 = 15, y1 = 10, x2 = 65, y2 = 20;

void main()

{

int ch, x = 5, y = 5, j;

textbackground(BLACK);

textcolor(RED);

clrscr();

gotoxy(x, y);

cprintf("Press F2 to go up, F3 to go down, F1 to go left, F4 to go right");

window(x1, y1, x2, y2);

textbackground(RED);

textcolor(BLACK);

clrscr();

do

{

clrscr(); //Очистка экрана

gotoxy(x, y); //Переводим курсор в положение x,y

cprintf("*"); //Вывод "звездочки"

while (bioskey(1) == 0); //Использование прерывания INT 16h

ch = bioskey(0);

switch (ch)

{

case 15360: //Вверх - F2

{

y--;

break;

}

case 15616: //Вниз - F3

{

y++;

break;

}

case 15872: //Вправо - F4

{

x++;

break;

}

case 15104: //Влево - F1

{

x--;

break;

}

case 283: //Выход - ESC

{

j = 0; break;

}

default: break;

}

} while (j);

}

  1. Структурная схема аппаратных устройств

Рис. 1. Структурная схема аппаратных

  1. Пример работы программы

Рис 2. Пример работы программы

Соседние файлы в папке 2017 Холод