2017 Холод / ЭВМ 4
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра ВТ
отчет
по лабораторной работе №4
по дисциплине «Организация ЭВМ и систем»
Тема: КЛАВИАТУРА IBM PC. ИСПОЛЬЗОВАНИЕ ПРЕРЫВАНИЙ
Студент гр. 6307 |
|
Лазарев С. О. |
Преподаватель |
|
Иванов П.В. |
Санкт-Петербург
2017
Оглавление
1.Задание 2
2.Краткие сведения о подсистеме ввода информации с клавиатуры, используемых прерываниях, буфере клавиатуры и функциях обслуживания ввода с клавиатуры. 3
3.Текст программы 4
4.Структурная схема аппаратных устройств 5
5.Пример работы программы 5
-
Задание
№ варианта |
X1 |
Y1 |
X2 |
Y2 |
Вид движения |
Клавиши управления |
Номер прерывания |
10 |
15 |
10 |
65 |
20 |
Пошагово |
Все направления |
INT 16h |
-
Краткие сведения о подсистеме ввода информации с клавиатуры, используемых прерываниях, буфере клавиатуры и функциях обслуживания ввода с клавиатуры.
Подавляющее большинство программ выполняют ввод информации с
клавиатуры. Ввод информации в компьютер может быть выполнен на трех
уровнях: обращением к функциям MS-DOS; обращением к функциям BIOS;
физическим доступом к аппаратным средствам.
Ввод информации на уровне MS-DOS позволяет "пропустить" клавиатурный
ввод через инсталлируемые драйверы, обеспечивает отслеживание нажатия
комбинации клавиш Ctrl-C (Ctrl-Break), стандартную для MS-DOS обработку
ошибок.
Доступ к клавиатуре на уровне BIOS позволяет программе отслеживать
нажатие всех, а не только символьных клавиш, выполнять управление
аппаратурой клавиатуры и пр. Интерфейсом Turbo С с BIOS является функция
bioskey().
Непосредственный доступ к буферу клавиатуры резко повышает
производительность программы. В некоторых случаях необходима имитация
нажатий клавиш клавиатуры с записью кодов непосредственно в буфер. При этом
физически нажатия клавиш не происходят. Так строятся многие
демонстрационные программы, которые открывают или закрывают окна меню,
выполняют необходимый выбор, показывают работу программы в
"автоматическом" режиме и т.п. На том же самом принципе имитации нажатий
клавиш построены программы, способные переносить одним нажатием клавиши
целые куски текста из одной программы в любой текстовый редактор. Примером
такой программы является входящая в Turbo С резидентная Help-система
THELP.COM.
-
Текст программы
#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. Структурная схема аппаратных
-
Пример работы программы
Рис 2. Пример работы программы