- •Сборник методических указаний к лабораторным работам
- •Эксплуатация эвм и систем
- •Зав. Кафедрой _______________________ в.С. Карпов
- •Зав. Кафедрой _______________________ в.С. Карпов содержание
- •Определение эксплуатационных характеристик эвм по статистическим данным
- •1.1.Цель и задачи работы
- •1.2.Основные теоретические положения
- •1.3 Оборудование
- •1.3.Задание на работу
- •1.4.Оформление отчета
- •1.5.Контрольные вопросы
- •Лабораторная работа №2 разработка программного обеспечения тестирования памяти
- •1.6.Цель и задачи работы
- •2.2 Основные теоретические положения
- •2.3 Оборудование
- •1.7.Задание на работу
- •1.8.Оформление отчета
- •1.9.Контрольные вопросы
- •3.3 Оборудование
- •3.1.Задание на работу
- •3.2.Оформление отчета
- •3.3.Контрольные вопросы
- •4.1.Оборудование Персональный компьютер at386 и выше, содержащий клавиатуру; компилятор языка c или TurboAssembler.
- •4.2.Задание на работу
- •4.3.Оформление отчета
- •4.4.Контрольные вопросы
- •5.3 Оборудование Персональный компьютер at386 и выше, содержащий манипулятор типа «мышь» и установленный соответствующий драйвер; компилятор языка c.
- •4.7.Задание на работу
- •4.8.Оформление отчета
- •4.9.Контрольные вопросы
- •4.12.Оборудование Персональный компьютер at386 и выше, содержащий накопитель гмд 3.5''; компилятор языка c, чистые дискеты.
- •4.13.Задание на работу
- •4.14.Оформление отчета
- •4.15.Контрольные вопросы
- •Изучение аналитических моделей надежности программного обеспечения
- •4.16.Цель и задачи работы
- •7.2 Основные теоретические положения
- •4.17.Оборудование Персональный компьютер at386 и выше; компилятор языка c, пакет программ MatLab.
- •4.18.Задание на работу
- •4.19.Оформление отчета
- •4.20.Контрольные вопросы
- •Исследование блока питания компьютера
- •4.21.Цель и задачи работы
- •4.22.Основные теоретические положения
- •8.3 Оборудование
- •4.23.Задание на работу
- •4.24.Оформление отчета
- •4.25.Контрольные вопросы
- •Инвентаризация компьютерных систем
- •4.26.Цель и задачи работы
- •4.27.Основные теоретические положения
- •1.3 Оборудование
- •4.28.Задание на работу
- •4.29.Оформление отчета
- •Библиографический список
4.1.Оборудование Персональный компьютер at386 и выше, содержащий клавиатуру; компилятор языка c или TurboAssembler.
4.2.Задание на работу
Ознакомиться с теоретическими сведениями, приведенными во втором разделе и ответить на контрольные вопросы.
В соответствии с вариантом задания, выданным преподавателем, разработать программное обеспечение, реализующее тестирование клавиатуры.
Оформить отчет.
Варианты заданий:
1) Тестирование корректности нажатий клавиш основного поля клавиатуры.
2) Тестирование корректности нажатий функциональных клавиш и клавиш цифрового поля клавиатуры.
3) Тестирование исправности индикаторов NumLock, CapsLock и ScrollLock клавиатуры.
4.3.Оформление отчета
Отчет должен содержать цель работы, схему алгоритма и листинг разработанной программы тестирования клавиатуры, а также результаты работы программы.
4.4.Контрольные вопросы
1) Каким образом строится взаимодействие клавиатуры с системной платой?
2) Какие порты служат для обращения к контроллеру клавиатуры i8042?
Каков порядок программирования микроконтроллера i8042?
Как произвести управление светодиодными индикаторами клавиатуры?
Какие команды способен выполнять контроллер клавиатуры?
Как производится программное и аппаратное блокирование клавиатуры?
ЛАБОРАТОРНАЯ РАБОТА №5
РАЗРАБОТКА программного обеспечения ТЕСТИРОВАНИЯ МАНИПУЛЯТОРА «МЫШЬ»
4.5.Цель и задачи работы
Целью работы является изучение принципов функционирования и освоение методов тестирования манипулятора типа «мышь», а также их реализация в программном обеспечении.
4.6.Основные теоретические положения
Большинство периферийных устройств (ПУ) представляют собой электромеханические устройства, надежность которых значительно ниже надежности центрального процессора [1]. В электромеханических ПУ большинство отказов приходится на долю их механических частей. Локализация неисправностей логической части ПУ и их устранения не представляет затруднений, она основана на использовании традиционных методов диагностирования дискретных объектов и может быть автоматизирована. Локализация неисправностей электромеханических узлов слабо поддается автоматизации и в значительной мере остается ручной процедурой.
Конструкции манипуляторов
Манипулятор типа «мышь» используется для управления курсором на экране компьютера. Ранее существовали два варианта подключения: через COM-порт и непосредственно к системной шине через адаптер (bus-mouse). В настоящее время используется преимущественно подключение мыши к специальному разъему стандарта PS/2 (mini-DIN), расположенному непосредственно на системной плате и связанному с контроллером 8042, который одновременно выполняет функции управления клавиатурой и мышью. Существуют варианты беспроводных манипуляторов, в которых передача осуществляется через ИК-канал.
Различают несколько основных типов манипуляторов. Самый дешевый и распространенный – оптико-механический. Для ввода перемещений мыши по столу в них используют шарик, приводящий во вращение через валики два диска с прорезями (растры), которые прерывают оптический сигнал в двух парах фотоприемников и излучателей.
Поскольку мышь должна управлять курсором на экране, необходимо контролировать перемещение мыши на плоскости. Это осуществляется посредством регистрации количества импульсов, поступающих с фотоприемников. Импульсы в фотоприемниках возникают вследствие модуляции светового потока от излучателей прорезями вращающихся дисков. Питание мыши, подключенной к COM-порту, осуществляется по одной из сигнальных линий порта.
Другой вариант манипулятора – трекбол - шарик, находящийся внутри мыши, располагается на поверхности клавиатуры и его вращение в любых направлениях позволяет перемещать курсор.
В оптико-механической мыши импульсы с выхода датчиков поступают на входы контроллера мыши (микросхемы внутри самого манипулятора). Результатом их обработки является величина перемещения мыши с момента последней передачи данных о состоянии мыши.
Любая мышь передает в компьютер информацию о состоянии кнопок и величину последнего перемещения [5]. Стандарт передачи СОМ-мыши фирмы Microsoft использует посылку из трех байтов: первый – информация о кнопках, второй и третий – перемещение по x и y. Скорость передачи – 1200 бод, контроль по четности не используется, внутри байта используются 7 информационных бит и один стоповый. Для мыши Microsoft используются сигналы RTS, DTR, TxD, RxD и SG. Из них RTS и DTR используются для подачи питания. Часто также применяется вариант с четырьмя линиями (не используется сигнал «Готовность выходных данных»).
Существуют варианты оптических манипуляторов типа «мышь». В них величина перемещения определяется подсчетом числа импульсов на выходе фотодатчиков. Однако световой поток излучателей направлен непосредственно на поверхность специального планшета, на котором нанесены штрихованные линии с заданным шагом.
Современные оптические манипуляторы «мышь» содержат излучатель модулированного светового потока и примитивную видеокамеру, состоящую из матрицы фотоприемников. По разности числа принятых отраженных от поверхности импульсов в разных направлениях можно определить скорость перемещения мыши по соответствующей координате. При этом манипулятор может работать практически на любой поверхности, кроме зеркальной.
Драйвер мыши – программа, которая состоит из двух частей: самостоятельная часть, осуществляющая ввод информации со стороны мыши, вторая – управляет перемещением курсора по экрану, дополнительный компонент, обеспечивающий связь этих частей между собой.
Программирование манипулятора «мышь»
Операционная система MS-DOS предоставляет прикладным программам средства взаимодействия с мышью через систему функций прерывания INT 33h.
Функция 00h – сброс драйвера и чтение состояния
AX = 0000h ;
Выход: AX = состояние
0000h манипулятор/драйвер не установлены
FFFFh аппаратура/драйвер установлены
BX = число клавиш
0000h отличается от двух
0002h две клавиши (большая часть драйверов)
0003h трехкнопочная мышь Mouse Systems/Logitech
FFFFh две кнопки
Функция 01h – отображение курсора мыши.
AX = 0001h
Функция 02h – удаление курсора мыши с экрана.
AX = 0002h
Функция 03h – считывание координат курсора мыши и состояния кнопок
AX = 0003h
Выход:
BX = состояние кнопок, CX = столбец, DX = строка
Примечание: в текстовых режимах все координаты указываются как произведения размера знакоместа, обычно 8х8 пикселей, на номер знакоместа.
Функция 04h – позиционирование курсора
AX = 0004h, CX = столбец, DX = строка
Примечание: строка и столбец округляются отбрасыванием до ближайшего меньшего целого, кратного размеру знакоместа (в текстовых режимах 8х8).
Функции 07h, 08h – задание области перемещения курсора по горизонтали и вертикали
AX = 0007h, CX = минимальный столбец/строка, DX = максимальный столбец/строка
Функции 09h, 0Ah – задание формы курсора в графическом и текстовом режимах
Функция 0Ch – задание условия вызова программы обработки прерывания
AX = 000Ch, CX = маска вызова (см. ниже), ES:DX – FAR-указатель на подпрограмму обработки.
Отдельные разряды маски вызова имеют следующий формат (Табл.5.1)
Таблица 5.1 Формат маски вызова
-
Бит
Описание
0
вызов, если мышь перемещается
1
вызов, если нажата левая кнопка
2
вызов, если отпущена левая кнопка
3
вызов, если нажата правая кнопка
4
вызов, если отпущена правая кнопка
5
вызов, если нажата средняя кнопка
6
вызов, если отпущена средняя кнопка
7-15
не используются
Значения, с которыми вызывается подпрограмма-обработчик:
AX = маска условия (тот же формат, что и в маске вызова)
BX = состояние кнопок
CX = столбец курсора
DX = строка курсора
SI = число импульсов при движении по горизонтали
DI = число импульсов при движении по вертикали
Функция 0Fh – задание скорости перемещения курсора
AX = 000Fh
CX = число импульсов на 8 пикселей по горизонтали (по умолчанию 8)
DX = число импульсов на 8 пикселей по вертикали (по умолчанию 16)
Функция 13h – задание порога установки двойной скорости
AX = 0013h, DX = порог изменения скорости в импульсах в секунду. По умолчанию 0000h = 64/сек.
Примечание: если скорость движения мыши превышает установленный порог, то скорость перемещения курсора на экране удваивается.
Функция 14h – замена программы прерывания
Функция 1Ah – задание чувствительности мыши
AX = 001Ah
BX = горизонтальная скорость (см. функцию 0Fh)
CX = вертикальная скорость (см. функцию 0Fh)
DX = порог удвоения скорости перемещения (см. функцию 13h)
Функция 1Ch – установка частоты поступления запросов на прерывание
AX = 001Ch
BX = частота (см. ниже)
Частота поступления запросов на прерывание:
00h прерывания запрещены
01h 30 прерываний в секунду
02h 50 прерываний в секунду
03h 100 прерываний в секунду
04h 200 прерываний в секунду
Функция 1Dh – установка активной видеостраницы.
AX = 001Dh, BX = номер видеостраницы
Примечание: курсор будет отображаться на указанной странице
Пример программной реализации взаимодействия с манипулятором
Считывание координат курсора мыши:
regs.h.ah = 0x00; regs.h.al = 0x03;
int86(0x33, ®s, ®s);
printf("%d %d %d", regs.w.cx, regs.w.dx, regs.w.bx);
Проверка нажатия клавиш:
regs.h.ah = 0x00; regs.h.al = 0x03;
int86(0x33, ®s, ®s);
status = regs.w.bx;
if(status == 1){ //Нажата левая кнопка
//...действия при нажатии клавиш...
}
Позиционирование курсора мыши:
regs.h.ah = 0x00; regs.h.al = 0x04;
regs.w.cx = 10; regs.w.dx = 10;
int86(0x33, ®s, ®s);