Реферат по предмету "Программирование, Базы данных"


Разработка программы рисования линий с помощью мыши

ВВЕДЕНИЕ
         Мой курсовойпроект посвящается созданию программы, рисующей линии междуконтурными точками, расставляемыми вместах, где была нажата левая кнопкамыши. Это простейший пример, способный показать, что длядемонстрации некоторых функций работы мыши актуальным являетсяприменение языка программирования «Ассемблер».
Мышь – устройство ввода, получившееочень большую популярность. Труднопредставить себе современный компьютер без мыши или эквивалентного ейуказывающего устройства. В качестве эквивалентного устройства может бытьпланшетка или разного рода сенсорные площадки, где управление осуществляетсяпластмассовым карандашом или непосредственно пальцем пользователя.

1 ОБЩИЙ РАЗДЕЛ
Устройство дляручного РІРІРѕРґР° графической информации РІ вычислительную машину, лишь РјРЅРѕРіРѕ позжеполучившее СЃРІРѕС‘ современное название, было придумано, сконструировано изапатентовано Дугласом Энгельбартом РёР· Стэнфордского университета РІ середине60-ых РіРѕРґРѕРІ прошлого века. Энгельбарт, известный также как автор графическогопользовательского интерфейса Рё РѕРґРёРЅ РёР· первых разработчиков гипертекстовой«РЅРёРІС‹», был пионером, так что дальше довольно РіСЂРѕРјРѕР·РґРєРѕРіРѕ инеудобного прототипа его мысль РЅРµ пошла. Честь превращениямыши РёР· РєРѕСЂРѕР±РєРё РЅР° РґРІСѓС… наружных колёсах РІ конструкцию, которую сегодня уже начинают забывать — коробочку СЃ шариком, такжевращавшим пару роликов, РЅРѕ помещённых внутри — принадлежит работникамлаборатории Xerox PARC, сделавшим это РІ начале 70-ых РіРі. Наконец, облекли мышкув привлекательную внешне форму Рё выпустили РЅР° массовый рынок исследователишвейцарского НИИ СЃ труднопроизносимым названием (сокращаемым РґРѕ EPFL),работавшие РІ организованной РёРјРё Рё знакомой сегоднякаждому компании Logitech.
 Шли годы, менялисьвнешний вид и количество кнопок (в конструкции Энгельбарта была только однаклавиша, и этот вариант был сравнительно популярен,в частности, на платформе Mac), а принцип работы манипулятораоставался прежним. Шарик собиралпыль, механическая конструкция была инерционной и неточной, и неудивительно, чтов один прекрасный день в чью-то светлую голову пришла идеяизбавиться от механики, переложивзадачу слежения за движениями руки пользователяна плечи электроники и оптики. Ранний период развитияварианта мыши, получившей название оптической, связываютс именем неутомимого американского предпринимателяСтивена Кирша (известного, в частности, как основатель Infoseek Corp.). Это онпридумал и запатентовал в начале 80-ых годов манипулятор,определявший направление движения с помощью простого оптического сенсора. Мышь Киршамогла работать только на специальном металлическом коврике, покрытом сеткойтёмных полос: она освещала коврик и следила за яркостьюотражений, определяятраекторию по пересечениям полос.  
Ранняяэта конструкция так Рё РЅРµ получиламассового признания. Потребовалисьещё почти двадцать лет развитияэлектроники, для того чтобыоптические мыши смогли составить конкуренцию СЃРІРѕРёРј механическим предкам.Впрочем, современные оптические мыши устроены РІРѕ РјРЅРѕРіРѕРј схоже СЃ киршевской. Онивключают три основных элемента: светодиод, освещающий рабочую площадку,оптический сенсор РІ РІРёРґРµ простейшей матрицы светочувствительных элементов(похожей РЅР° матрицу РІ цифровых фотоаппаратах, РЅРѕ значительно меньшего разрешения — примерно 16 С… 16 пикселей), Рё сигнальныймикропроцессор (DSP), умеющий распознавать образы. «Р¤РѕС‚ографируя" поверхность РїРѕРґ СЃРѕР±РѕР№ полторы тысячи раз РІ секунду, оптическаямышь СЃ помощью чипа DSP улавливает смещениякартинки Рё подаёт соответствующие сигналы компьютеру. Работают такие мышипрактически РЅР° любой поверхности, исключаялишь зеркальные, полированные Рё поверхности СЃ крупноволокнистой фактурой.Точность позиционирования, почтинулевая инерционность, отсутствиенеобходимости РІ чистке — РІСЃС‘ это помогло оптическим мышам вытеснить своихпредшественниц СЃ рабочих столов.  И здесь РјС‹ РїРѕРґС…РѕРґРёРј Рє тому, СЃ чего всёсобственно Рё началось. Уже знакомаявам компания Logitech представила наминувшей неделе компьютерную мышь РЅРѕРІРѕР№ конструкции. Строго РіРѕРІРѕСЂСЏ, Logitech MX1000 Laser Cordless Mouse относится Рє оптическому племени, РЅРѕ вместо светодиода РІ нейустановлен миниатюрный полупроводниковый лазер, улучшена разрешающая способность фотосенсора. Принцип действия осталсяпрежним, так что посвящать емуотдельный абзац нет необходимости. Чем лазернаямышь лучше оптической? Абсолютной неприхотливостью: РѕРЅР° СЃРїРѕСЃРѕР±РЅР° работать дажена зеркале благодаря свойствамлазерного излучения Рё новойоптической системе. Тем же самым РѕРЅР° обязанаи непревзойдённой точности: MX1000 различает РІ 20 раз больше деталей, чемобычная оптическая мышь. Стоит такаямашинка почти 80 долларов. Р’РѕРїСЂРѕСЃ РІ том, считать ли лазерную мышь LogitechРЅРѕРІРѕР№ ветвью РЅР° эволюционном древе (авторитет компании — аргумент РІ пользу) илиэто обычный маркетинговый С…РѕРґ СЃ добавлением РЅРёРєРѕРјСѓ РЅРµ нужной функции, для того чтобы выделитьсясредь толпы производителей? Р’ самом деле, зачем вам двадцатикратное улучшение ибез того более чем приемлемой точности?
В В В В В В В В 

2 ОПИСАНИЕ УСТРОЙСТВА
2.1 ОПИСАНИЕ МЫШИ
         Популярность мышек заставила производителей серьезнозадуматься о модернизации своихпродуктов. В результате мы получили несколько типов мышек: механических,оптических, беспроводных оптических, беспроводных механических. В механическихмышках для определения расстояния, на которое она переместилась, используются механические системы оповещения, в которых механическое вращение вертикальной,горизонтальной и диагональной осей преобразуютсяв сигналы, передаваемые на контроллер. В оптических мышках используются мощный светодиод, по отражению луча которого отповерхности, на которой находитсямышка рассчитывается расстояния, накоторое она переместилась,. Наличием колесика прокрутки уже трудно кого-либоудивить, зато в списках рейтингов можно увидеть мультимедийные мышки,сочетающие в себе все приемущества передовых разработок. При использованиитакой мышки каждый палец задействован в работе дляее удобства и ускорения. Теперь безлишних движений мыши вы можете сворачивать, разворачивать, закрывать окна,управлять проигрывателем музыки иливидео. При просмотре изображений вы можете без затрудненияпролистывать их, изменять размеры ит. п.
Мышь состоит из 3-х частей: внешнейоболочки (обычно пластмассовой, в области которой находятся кнопки и колесики прокрутки), блока микросхем(имеет прямое подключение к портукомпьютера, передает сигналы от мыши), механической или оптической части(служит для определения расстояния, на которое мышь переместилась).
         Современная мышь смогла избавить нас от рутинной работы,лишних движений и таких неприятныхвещей как чистка механических элементов от накопившейсягрязи…
         Не труднодогадаться, что для такого набора функций понадобятсянестандартные драйверы, (система может установить свои версии, но онипредназначены для использования лишь стандартных функций. По-умолчанию (в самыхпоследних версиях операционных систем,таких как WindowsXP, WindowsLonghorn) эти драйверы могут использоватьлевую, правую кнопки, колесико прокрутки и до двух кнопок навигации для упрощенияработы в сети Интернет.). Их можно найти в коробке с устройством. Эти драйверыпозволяют мышку работать корректно ииспользовать полный спектр функций, предусмотренных производителем. В панелиуправления на вкладке «Мышь» становятсядоступными настройки новых функций.
2.2 ПРОГРАММНАЯ МОДЕЛЬ МЫШИ
      Все общение с мышью в DOSвыполняется через прерывание ЗЗh, обработчик которого устанавливает драйвер мыши, загружаемый обычнопри запуске сис­темы. Современные драйверы поддерживают около 60 функций,позволяющих настраивать разрешениемыши, профили ускорений, виртуальные координаты, дополнительные обработчикисобытий и т. п. Большинство этих функций требу­ются редко,сейчас рассмотрим основные.
INT33h, АХ=0: Инициализация мыши Вход:     АХ = OOOOhВыход:   АХ = OOOOh, если мышь или драйвер мыши не установлены
АХ = OFFFFh, если драйвер и мышь установлены
ВХ = числокнопок:
2        РёР»Рё OFFFFh — РґРІРµ
3         — три
0000 — РґСЂСѓРіРѕРµ количество Выполняется аппаратный Рё программный СЃР±СЂРѕСЃ мыши Рё драйвера.
INT33h, AX=1: Показать РєСѓСЂСЃРѕСЂ Р’С…РѕРґ:В В В В  РђРҐ — 000 lh
INT33h, AX= 2: Спрятатькурсор Вход:     АХ = 0002h
Драйвер мыши поддерживает внутреннийсчетчик, управляющий видимостью РєСѓСЂСЃРѕСЂР° мыши.Функция 2 уменьшает значениесчетчика РЅР° единицу, Р° функция 1 увеличивает его, РЅРѕ только РґРѕ значения 0. Если значение счетчика — отрицатель­ное число, РѕРЅ спрятан,если ноль — показан. Это позволяетпроцедурам, использу­ющим РїСЂСЏРјРѕР№ вывод РІ видеопамять,вызывать функцию 2 РІ самом начале Рё 1 РІ са­мом конце, РЅРµ заботясь отом, РІ каком состоянии был курсормыши Сѓ вызвавшей эту процедурупрограммы.
INT33h, AX= 3: Определить состояние мыши Р’С…РѕРґ:В В В В РђРҐ — РћРћРћР—hВыход:В В  Р’РҐ — состояниекнопок:
бит 0. нажаталевая кнопка
бит 1: нажатаправая кнопка
бит 2: нажатасредняякнопка
РЎРҐ
DX
Х-координата
Y-координата
Возвращаемые координаты совпадают скоординатами пикселов соответству­ющей точки на экране в большинстве графическихрежимов, «роме 04, 05, ODh, 13h, где Х-координату мыши нужно разделить на 2, чтобыполучить номер стол­бца соответствующей точки на экране. В текстовых режимахoбе координаты надо разделить на 8для полученияномера строки и столбца соответственно.
Р’ большинстве случаев эта функция РЅРµ используетсяв npoграммах, так как для того, чтобы реагировать РЅР° нажатие РєРЅРѕРїРєРё или перемещение мыши РІ заданнуюобласть, требуетсявызывать это прерывание постоянно,что РїСЂРёРІРѕРґРёС‚ Рє трате процессорного времени. Функции 5 (определить положениекурсора РїСЂРё после­днем нажатии РєРЅРѕРїРєРё), 6 (определить положение курсорапри последнем отпус­кании РєРЅРѕРїРєРё) Рё OBh(определить расстояние,пройденное мшью) РјРѕРіСѓС‚ помочь оптимизировать работу программы, самостоятельно «следящей»за всеми пере­движениями мыши, ногораздо эффективнее указать драйверу контролировать ее передвижения (чем РѕРЅ, собственно, Рё занимается постоянно)Рё передавать управ­ление РІ программу, как только выполнится заранее определенное условие, напри­мер пользовательнажмет РЅР° левую РєРЅРѕРїРєСѓ мыши. Такой сервис обеспечивает функция 0РЎh — установитьобработчик событий.
INT33h, AX= 0Сh: Установить обработчик событий Вход:      АХ = 000Ch
ES:DX= адрес обработчика СХ = условие вызова
бит 0: любое перемещение мыши
бит 1: нажатиелевой кнопки
бит 2:отпускание левой кнопки
бит 3: нажатиеправой кнопки
бит 4:отпускание правой кнопки
бит 5: нажатиесредней кнопки
Р±РёС‚ 6: отпускание средней РєРЅРѕРїРєРё РЎРҐ = 0000h — отменить обработчик
Обработчик событий должен быть оформлен, как дальняяпроцедура (то есть завершаться командой RETF). РќР° РІС…РѕРґРµ РІ процедуру обработчика РђРҐ содержит условие вызова, Р’РҐ — состояние РєРЅРѕРїРѕРє, РЎРҐ, DX — РҐ- Рё РЈ-координаты РєСѓСЂСЃРѕСЂР°, SI, DI — счетчикипоследнего перемещения погоризонтали Рё Вертикали (едини­цы измерениядля этих счетчиков — РјРёРєРё, 1/200РґСЋР№РјР°), DS — сегмент данных драйвера мыши. Перед завершениемпрограммы установленный обработчик со­бытий должен быть обязательно удален (вызов функции 0РЎhСЃ РЎРҐ= 0). так как иначе РїСЂРё первом же выполнении условия управление будет передано РїРѕ адресу РІ памяти, СЃ которого начиналсяобработчик.
Функция0РЎhиспользуетсятак часто, что Сѓ нее появилосьнесколько модифи­каций — функция 14h, дающаявозможность установить одновременно три обра­ботчикас разными условиями, Рё функция 18h, также позволяющаяустановить

3 РАЗРАБОТКА АЛГОРИТМА УПРАВЛЕНИЯ МЫШЬЮ
         Схема обработкипрерываний:

Внешнее устройство
Процессор
Контроллер прерываний
Шина данных
Внешнее устройство
Внешнее устройство
Внешнее устройство
NMI
INTA
INTR

         Обработкапрерываний осуществляется с помощью специального процессора, производящего предварительную обработку запросов на прерывания. Выбираетсязапрос с наибольшим приоритетом, а затем уже обращаетсяк процессору, т.е. на выходе INTRподключен контроллер прерываний, а к нему уже подключается внешнее устройство. Немаскируемое прерывание связано с процессором. Таймер обращается к процессору напрямую.Запрос на прерывание внешнее устройство посылает на контроллер прерываний,который затем посылает запрос по линии INTRна процессор, анализирующий флагпрерывания, если он равен 1, то полинии INTAидетподтверждение готовности обработать запрос. После этого через шину данных контроллерпрерываний формирует команду INTс соответствующим номером прерывания.Далее процессор обрабатывает эту команду и передает управление на обработчикпрерывания, который взаимодействуетс устройством, вызвавшим это прерывание через шину данных и адреса, а такжечерез порты, к которым подсоединено устройство и его контроллер.

4 РАЗРАБОТКА И РЕАЛИЗАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
      Для работы моей программытребуется IBMсовместимый компьютер на базе процессораIntelи любая возможнаятехническая конфигурация длязапуска операционной системы DOS. Программа занимает не более 500 байт оперативной памяти. Также потребуетсяпредварительно откомпилированный исполняемыйфайл программы. Пользователю нужно запустить программу и нажать левую кнопкумышки в разных местах экрана дляпроверки работоспособности программы. Если между точками в которых былипроизведены нажатия рисуются лини, то программа работает корректно.
      Исходный код программы представлен в приложении А.
      Блок-схема представлена в приложении Б.
В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В 

5 ОТЛАДКА И ИСПЫТАНИЕ ПРОГРАММЫ
         Перед запускомпрограммы следует убедиться в том,что к компьютеру подсоединена мышь, включить компьютер, запустить программу в16-битной среде, нажать левую кнопку мыши в разных местах экрана. Программаможет работать некорректно при условии несоблюдениявышеуказанных условий.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.