Изучение аппаратных интерфейсов

Общие сведения об интерфейсе RS-232. Назначение линий 25-контактного разъема типа D для интерфейса RS-232. Полная схема соединения по интерфейсу RS-232. Виды сигналов и символы кода ASCII. Влияние длины кабеля на максимальную скорость передачи информации.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 03.06.2015
Размер файла 450,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

Высшего профессионального образования

Волгоградский государственный технический университет

Кафедра «Электронно-вычислительные машины и системы»

Семестровая работа

по курсу «Основы периферийных устройств»

Тема: Изучение аппаратных интерфейсов

Выполнила студентка группы ВЗК 382с:

Сафонова Ю.Д.

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

Егунов В.А.

Волгоград 2015

  • Содержание
  • Введение
  • 1. Общие сведения об интерфейсе RS-232
  • 2. Стандарт интерфейса RS-232
  • 3. Назначение интерфейса RS-232
  • 4. Принцип работы
  • 5. Виды сигналов
  • 6. Разъемы интерфейса RS-232
  • 7. Расстояния передачи
  • 8. Контроль четности
  • 9. Тестовое оборудование для интерфейса RS-232
  • 10. Текст программы
  • 11. Пример работы программы

Введение

Последовательные интерфейсы используются для связи двух или более устройств между собой. Характерная черта таких интерфейсов - использование последовательного метода передачи цифровой информации, при котором данные передаются последовательно бит за битом, для чего используется всего лишь одна линия. При этом физическая реализация двустороннего обмена может осуществляться с помощью 2 - 3 проводов. Значительное (по сравнению с параллельными интерфейсами) сокращение числа каналов передачи и проводов позволило упростить и удешевить приемопередающие устройства и кабельные системы. В общем, последовательные интерфейсы отличаются лучшей помехоустойчивостью (здесь не учитывается влияние типа линий передачи), поскольку в них исключено взаимное влияние между линиями данных (фактически, линия данных всего одна, а, например, в 8-разрядном параллельном интерфейсе - 8). Сравнительная простота и низкие аппаратные требования обусловили широкое использование последовательных интерфейсов в электронике и смежных областях. Наибольшее распространение из них получили интерфейсы 1-Wire, I2C, SPI, CAN, RS-485, RS-232, USB, Firewire. Каждый из перечисленных интерфейсов имеет свои достоинства и недостатки, и определяемую ими область использования. В частности, первые 4 интерфейса преимущественно используются в микроконтроллерных системах, последние 4 - для связи ПК с периферийным оборудованием. Последовательный интерфейс RS-232, разработанный несколько десятков лет назад (разработка стандарта проводилась, начиная с 1960 г.) для компьютеров (в основном для связи с модемами) и являющийся «патриархом» в своем роде, до сих пор не утратил своего коммуникационного назначения. Такое долголетие (особенно с учетом преимуществ других стандартов) отчасти объясняется развитием микроконтроллерной техники, которая в настоящее время повсеместно используется в системах автоматизации, сбора и обработки различных данных, встраиваемых системах различного назначения. При этом интерфейс RS-232 оказался едва ли не единственным средством связи между микроконтроллером (МК) и ПК, аппаратно присутствующем и в первом и во втором. В ПК за реализацию интерфейса отвечает COM-порт, а практически в любом МК есть один или несколько приемопередающих модулей (УАПП/UART, УСАПП/USART, SCI и пр.), аппаратно поддерживающих RS-232. Другие причины жизнеспособности интерфейса - сравнительная простота протокола обмена, поддержка во многих средах программирования на уровне библиотечных модулей, наличие доступных утилит, предназначенных для связи ПК с помощью COM-порта. Спецификация любого интерфейса включает в себя две составляющие: аппаратную и программную (логическую). Аппаратная часть (уровни напряжений, разъемы, назначение сигналов и пр.) описывается стандартом на интерфейс, описание программной часть (правил передачи данных) называется протоколом интерфейса.

1. Общие сведения об интерфейсе RS-232

RS - 232 (Recommended Standard 232) - физический уровень асинхронного (UART) интерфейса. Исторически имел широкое распространение в телекоммуникационном оборудовании для персональных компьютеров. В настоящее время всё ещё широко используется для подключения всевозможного специального или устаревшего оборудования к компьютерам, однако в основном он уже вытеснен интерфейсом USB.

RS-232 - стандарт описывающий интерфейс передачи информации между терминалом (Data Terminal Equipment, DTE) и коммуникационным устройством (Data Communications Equipment, DCE) на расстоянии до 20 м. Информация передается по проводам с уровнями сигналов, отличающимися от стандартных 5В, для обеспечения большей устойчивости к помехам. Асинхронная передача данных осуществляется с установленной скоростью при синхронизации уровнем сигнала стартового импульса.

Интерфейс RS-232 полностью аппаратно реализован на персональных компьютерах в виде микросхем и разъемов. В PC его называют COM-портом (Communication port). Аппаратная реализация означает то, что он работает всегда, не зависимо, какая операционная система установлена на PC.

Программы могут взаимодействовать с СОМ-портами всеми доступными средствами: прямым кодом микропроцессора, аппаратными прерываниями, функциями BIOS, средствами ОС, компонентами языков высокого уровня. СОМ - порт реализованный по стандарту RS-232- универсален. Он обеспечивал работу PC с периферийными устройствами (чем сейчас занят USB), взаимодействие с локальной сетью через модем, обмен данными между PC и промышленным оборудованием, чтобы разбираться, как работают эти протоколы, необходимо понимать какую функцию СОМ порта они взяли на себя.

Интерфейс RS-232 является наиболее широко распространенной стандартной последовательной связью между микрокомпьютерами и периферийными устройствами. Интерфейс, определенный стандартом Ассоциации электронной промышленности (EIA), подразумевает наличие оборудования двух видов: терминального DTE и связного DCE.

Чтобы не составить неправильного представления об интерфейсе RS-232, необходимо отчетливо понимать различие между этими видами оборудования. Терминальное оборудование, например микрокомпьютер, может посылать и (или) принимать данные по последовательному интерфейсу. Оно как бы оканчивает (terminate) последовательную линию. Связное оборудование - устройства, которые могут упростить передачу данных совместно с терминальным оборудованием. Наглядным примером связного оборудования служит модем (модулятор-демодулятор). Он оказывается соединительным звеном в последовательной цепочке между компьютером и телефонной линией.

Различие между терминальными и связными устройствами довольно расплывчато, поэтому возникают некоторые сложности в понимании того, к какому типу оборудования относится то или иное устройство. Рассмотрим ситуацию с принтером. К какому оборудованию его отнести? Как связать два компьютера, когда они оба действуют как терминальное оборудование. Для ответа на эти вопросы следует рассмотреть физическое соединение устройств. Произведя незначительные изменения в линиях интерфейса RS-232, можно заставить связное оборудование функционировать как терминальное. Чтобы разобраться в том, как это сделать, нужно проанализировать функции сигналов интерфейса RS-232 (таб. 1).

аппаратный интерфейс сигнал

Таблица 1

Функции сигнальных линий интерфейса RS-232

Номер контакта

Сокращение

Направление

Полное название

1.

FG

-

Основная или защитная земля

2.

TD (TXD)

К DCE

Передаваемые данные

3.

RD (RXD)

К DTE

Принимаемые данные

4.

RTS

К DCE

Запрос передачи

5.

CTS

К DTE

Сброс передачи

6.

DSR

К DTE

Готовность модема

7.

SG

-

Сигнальная земля

8.

DCD

К DTE

Обнаружение несущей данных

9.

-

К DTE

(Положительное контрольное напряжение)

10.

-

К DTE

(Отрицательное контрольное напряжение)

11.

QM

К DTE

Режим выравнивания

12.

SDCD

К DTE

Обнаружение несущей вторичных данных

13.

SCTS

К DTE

Вторичный сброс передачи

14.

STD

К DCE

Вторичные передаваемые данные

15.

TC

К DTE

Синхронизация передатчика

16.

SRD

К DTE

Вторичные принимаемые данные

17.

RC

К DTE

Синхронизация приемника

18.

DCR

К DCE

Разделенная синхронизация приемника

19.

SRTS

К DCE

Вторичный запрос передачи

20.

DTR

К DCE

Готовность терминала

21.

SQ

К DTE

Качество сигнала

22.

RI

К DTE

Индикатор звонка

23.

-

К DCE

(Селектор скорости данных)

24.

TC

К DCE

Внешняя синхронизация передатчика

25.

-

К DCE

(Занятость)

Примечания:

1. Линии 11, 18, 25 обычно считают незаземленными. Приведенная в таблице спецификация относится к спецификациям Bell 113B и 208A.

2. Линии 9 и 10 используются для контроля отрицательного (MARK) и положительного (SPACE) уровней напряжения.

3. Во избежание путаницы между RD (Read - считывать) и RD (Received Data - принимаемые данные) будут использоваться обозначения RXD и TXD, а не RD и TD.

Стандартный последовательный порт RS-232 имеет форму 25-контактного разъема типа D (рис 1).

Рисунок 1 Назначение линий 25-контактного разъема типа D для интерфейса RS-232

Терминальное оборудование обычно оснащено разъемом со штырьками, а связное - разъемом с отверстиями (но могут быть и исключения).

Сигналы интерфейса RS-232 подразделяются на следующие классы:

· последовательные данные (например, TXD, RXD). Интерфейс RS-232 обеспечивает два независимых последовательных канала данных: первичный (главный) и вторичный (вспомогательный). Оба канала могут работать в дуплексном режиме, т.е. одновременно осуществляют передачу и прием информации;

· управляющие сигналы квитирования (например, RTS, CTS). Сигналы квитирования - средство, с помощью которого обмен сигналами позволяет DTE начать диалог с DCE до фактической передачи или приема данных по последовательной линии связи;

· сигналы синхронизации (например, TC, RC). В синхронном режиме (в отличие от более распространенного асинхронного) между устройствами необходимо передавать сигналы синхронизации, которые упрощают синхронизм принимаемого сигнала в целях его декодирования.

На практике вспомогательный канал RS-232 применяется редко, и в асинхронном режиме вместо 25 линий используются 9 линий (таб. 2).

Таблица 2

Основные линии интерфейса RS-232

Номер контакта

Сигнал

Выполняемая функция

1

FG

Подключение земли к стойке или шасси оборудования

2

TXD

Последовательные данные, передаваемые от DTE к DCE

3

RXD

Последовательные данные, принимаемые DTE от DCE

4

RTS

Требование DTE послать данные к DCE

5

CTS

Готовность DCE принимать данные от DTE

6

DSR

Сообщение DCE о том, что связь установлена

7

SG

Возвратный тракт общего сигнала (земли)

8

DCD

DTE работает и DCE может подключится к каналу связи

2. Стандарт интерфейса RS-232

Аппаратная составляющая интерфейса регламентируется стандартом RS-232 (EIA/TIA - 232 - E) Ассоциации электронной промышленности и рекомендациями V.24 МККТТ (Международный консультативный комитет по телеграфии и телефонии). Стандарт RS-232 (его официальное название Interface between Data Terminal Equipment and Data Circuit-Termination Equipment employing serial binary data interchange) предназначен для подключения аппаратуры, передающей или принимающей данные (обозначается как DTE - Data Terminal Equipment) (В качестве DTE может выступать компьютер, принтер или другое периферийное оборудование), к оконечной аппаратуре каналов данных (обозначается как DCE - Data Communication Equipment). Функция DCE состоит в обеспечении возможности передачи информации между двумя или большим числом DTE. Другими словами, DCE - это устройство, преобразующее сигнал в форму, подходящую для канала связи, например, в аналоговый сигнал для телефонной линии. При связи ПК с удаленным периферийным оборудованием в качестве DCE чаще всего выступает модем. Устройства DTE могут соединяться напрямую с помощью модемного кабеля. На рис. 2 показана полная схема соединения двух DTE - устройств.

Рисунок 2 Полная схема соединения по интерфейсу RS-232

Согласно стандарту RS-232, сигнал (последовательность битов) передается напряжением. Передатчик и приемник являются несимметричными: сигнал передается относительно общего провода (в отличие от симметричной передачи протоколов RS-485 или RS-422). Логическому нулю на входе приемника соответствует диапазон +3…+12 В, а логической единице - диапазон -12…-3 В. Диапазон -3…+3 В - зона нечувствительности, обеспечивающая гистерезис приемника (передатчика). Уровни сигнала на выходе должны быть в диапазоне -12…-5 В для представления логической единицы и +5…+12 В для представления логического нуля. Иллюстрация уровней представлена на рис. 3. Необходимо отметить, что интерфейс не обеспечивает гальванической развязки устройств. Подключение и отключение интерфейсных кабелей устройств с независимым питанием должно производиться при отключенном питании.

Рисунок 3 Уровни сигналов RS-232 на передающем и принимающем концах линии связи

3. Назначение интерфейса RS-232

Интерфейс RS-232 был разработан для простого применения, однозначно определяемого по его названию «Интерфейс между терминальным оборудованием и связным оборудованием с обменом по последовательному двоичному коду». Каждое слово в названии значимое, оно определяет интерфейс между терминалом (DTE) и модемом (DCE) по передаче последовательных данных.

Изначально создавался для подключения телефонных модемов к компьютерам. В связи с такой специализацией имеет рудименты в виде, например, отдельной линии RING («звонок»). Постепенно телефонные модемы перешли на другие интерфейсы (USB), но разъем RS-232 имелся на всех персональных компьютерах и многие изготовители оборудования использовали его для подключения своего оборудования. Например, компьютерные мышки.

В настоящее время чаще всего используется в промышленном и узкоспециальном оборудовании, встраиваемых устройствах. На портативных компьютерах (ноутбуках, нетбуках, КПК и т.п.) RS-232 уже не ставят, однако материнские платы стационарных персональных компьютеров обычно ещё содержат RS-232 - либо в виде уже готового разъёма на задней панели, либо в виде внутренней контактной панели, к которой можно подключить шлейф. Также возможно использование переходников-преобразователей, например, типа USB>RS-232.

4. Принцип работы

RS-232 - проводной дуплексный интерфейс. Метод передачи данных аналогичен асинхронному последовательному интерфейсу.

Информация передается по проводам двоичным сигналом с двумя уровнями напряжения. Логическому «0» соответствует положительное напряжение (от +5 до +15 В для передатчика), а логической «1» отрицательное (от ?5 до ?15 В для передатчика). Для электрического согласования линий RS-232 и стандартной цифровой логики UART выпускается большая номенклатура микросхем драйверов, например MAX232.

Помимо линий входа и выхода данных RS-232 регламентировал ряд необязательных вспомогательных линий для аппаратного управления потоком данных и специальных функций.

5. Виды сигналов

В большинстве схем, содержащих интерфейс RS-232, данные передаются асинхронно, т.е. в виде последовательности пакета данных. Каждый пакет содержит один символ кода ASCII, причем информация в пакете достаточна для его декодирования без отдельного сигнала синхронизации.

Символы кода ASCII представляются семью битами, например буква А имеет код 1000001. Чтобы передать букву А по интерфейсу RS-232, необходимо ввести дополнительные биты, обозначающие начало и конец пакета. Кроме того, желательно добавить лишний бит для простого контроля ошибок по паритету (четности).

Наиболее широко распространен формат, включающий в себя один стартовый бит, один бит паритета и два стоповых бита. Начало пакета данных всегда отмечает низкий уровень стартового бита. После него следует 7 бит данных символа кода ASCII. Бит четности содержит 1 или 0 так, чтобы общее число единиц в 8-битной группе было нечетным. Последним передаются два стоповых бита, представленных высоким уровнем напряжения. Эквивалентный ТТЛ-сигнал при передаче буквы А показан на рисунке 4.

Рисунок 4 Представление кода буквы А сигнальными уровнями ТТЛ

Таким образом, полное асинхронно передаваемое слово состоит из 11 бит (фактически данные содержат только 7 бит) и записывается в виде 01000001011.

Используемые в интерфейсе RS-232 уровни сигналов отличаются от уровней сигналов, действующих в компьютере. Логический 0 (SPACE) представляется положительным напряжением в диапазоне от +3 до +25 В, логическая 1 (MARK) - отрицательным напряжением в диапазоне от -3 до -25 В. На рисунке 5 показан сигнал в том виде, в каком он существует на линиях TXD и RXD интерфейса RS-232.

Рисунок 5 Вид кода буквы А на сигнальных линиях TXD и RXD

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

На рисунке 6 представлен типичный микрокомпьютерный интерфейс RS-232. Программируемая микросхема DD1 последовательного ввода осуществляет параллельно-последовательные и последовательно-параллельные преобразования данных. Микросхемы DD2 и DD3 производят сдвиг уровней для трех выходных сигналов TXD, RTS, DTR, а микросхема DD4 - для трех входных сигналов RXD, CTS, DSR. Микросхемы DD2 и DD3 требуют напряжения питания ±12 В.

Рисунок 6 Типичная схема интерфейса RS-232

6. Разъемы интерфейса RS-232

Со стороны ПК интерфейс RS-232 может быть реализован с помощью 9-и или 25-контактных разъемов типа D-sub, обозначаемых соответственно как DB9 и DB25. Изначально наибольшее распространение имел разъем DB25, поскольку он позволял использовать все имеющиеся варианты RS-232. Стандартом предусмотрена возможность синхронной передачи данных, что могло потребовать использование дополнительных контактов, однако на практике такой способ передачи используется редко. Для асинхронной же передачи, подразумеваемой под RS-232 по умолчанию, хватает возможностей более миниатюрного DB9. Поэтому в настоящее время используется преимущественно он. В таблице 3 приведены обозначения контактов разъемов интерфейса RS-232 (согласно стандартам RS-232-A/B/C) и описание сигналов. Необходимо отметить, что номера одноименных контактов разных разъемов друг другу не соответствуют.

Таблица 3

7. Расстояния передачи

Длина кабеля влияет на максимальную скорость передачи информации. Более длинный кабель имеет большую емкость и соответственно для обеспечения надежной передачи более низкую скорость. Большая емкость приводит к тому, что изменение напряжения одного сигнального провода может передаться на другой смежный сигнальный провод. Максимальным расстоянием обычно считается равным 15 м, но это не установлено в стандарте. Рекомендуется использовать на расстояниях до 50 м, но это зависит от типа используемого оборудования и характеристик кабеля.

Таблица 4

Максимальная длина кабеля

Скорость (бод)

Макс. длина (футы)

Макс. длина (метры)

19 200

50

15

9 600

500

150

4 800

1000

300

2 400

3000

900

Скорость передачи информации по RS-232 измеряется в Бодах. Эта единица названа в честь Эмиля Бодо (Jean Maurice-Emile Baudot) (1845-1903), французского инженера по телеграфии, изобретателя первого печатающего устройства для телеграфа (телепринтера), представленного на Международной Телеграфной конференции в 1927. Максимальная скорость согласно стандарту 20000 Бод. Однако современное оборудование может работать значительно быстрее. Не имеет значения, на сколько быстрое (медленное) ваше соединение - максимальное число чтения за секунду можно установить с помощью используемого программного обеспечения.

8. Контроль четности

Четность в интерфейсе RS-232 (Parity)

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

Типы четности

Для обеспечения контроля четности компьютер и устройство должны одинаково производить подсчет бита четности. То есть, определиться устанавливать бит при четном (even) или нечетном (odd) числе единиц. При контроле на четность биты данных и бит четности всегда должны содержать четное число единиц. В противоположном случае соответствует для контроля на нечетность.

Mark и Space биты четности

Часто в драйверах доступны еще две опции на четность: Mark и Space. Эти опции не влияют на возможность контроля ошибок. Mark означает, что устройство всегда устанавливает бит четности в 1, а Space - всегда в 0.

Обнаружение ошибок

Проверка на четность - это простейший способ обнаружения ошибок. Он может определить возникновение ошибок в одном бите, но при наличии ошибок в двух битах уже не заметит ошибок. Также такой контроль не отвечает на вопрос, какой бит ошибочный. Другой механизм проверки включает в себя Старт и Стоп биты, циклические проверки на избыточность, которые часто применяются в соединениях Modbus.

Старт бит

Сигнальная линия может находиться в двух состояниях: включена и выключена. Линия в состоянии ожидания всегда включена. Когда устройство или компьютер хотят передать данные, они переводят линию в состояние выключено - это установка Старт бита. Биты сразу после Старт бита являются бюитами данных.

Стоп бит

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

Рисунок 7 Схема 4-проводной линии связи для RS-232

Установка Стоп бита

Стоп бит не просто один бит минимального интервала времени в конце каждой передачи данных. На компьютерах обычно он эквивалентен 1 или 2 битам, и это должно учитываться программе драйвера. Хотя, 1 стоп бит наиболее общий, выбор 2 бит в худшем случае немного замедлит передачу сообщения. Есть возможность установки значения стоп бита равным 1.5. Это используется при передаче менее 7 битов данных. В этом случае не могут быть переданы символы ASCII, и поэтому значение 1.5 используется редко. Наиболее часто используются трех - или четырехпроводная связь (для двунаправленной передачи). Схема соединения для четырехпроводной линии связи показана на рисунке 7.

9. Тестовое оборудование для интерфейса RS-232

Соединители. Эти дешевые устройства упрощают перекрестные соединения сигнальных линий интерфейса RS-232. Они обычно оснащаются двумя разъемами типа D (или ленточными кабелями, имеющими розетку и вставку), и все линии проводятся к той области, куда можно вставить перемычки. Такие устройства включаются последовательно с линиями интерфейса RS-232, и затем проверяются различные комбинации подключений.

Трансформаторы разъема. Обычно эти приспособления имеют разъем RS-232 со штырьками на одной стороне и разъем с отверстиями на другой стороне.

Пустые модемы. Как и предыдущие устройства, пустые модемы включаются последовательно в тракт данных интерфейса RS-232. Их функции заключаются в изменении сигнальных линий таким образом, чтобы превратить DTE в DCE.

Линейные мониторы. Мониторы индицируют логические состояния (в терминах MARK и SPACE) наиболее распространенных сигнальных линий данных и квитирования. С их помощью пользователь получает информацию о том, какие сигналы в системе присутствуют и активны.

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

Интерфейсные тестеры. По своей конструкции эти устройства несколько сложнее предыдущих, простых устройств. Они позволяют переводить линии в состояния MARK или SPACE, обнаруживать помехи, измерять скорость передачи данных и индицировать структуру слова данных.

10. Изучение системной поддержки клавиатуры и манипулятора «мышь»

Разработать программу в соответствии с заданием. Программа может быть разработана на любом языке программирования, в т.ч. языке Ассемблера и С. При использовании языка С работа с клавиатурой и «мышью» должна реализовываться через прерывания DOS.

При выключении одного из режимов CapsLock, NumLock, ScrollLock на экран выводить соответствующее сообщение (например, CapsLockOn, NumLockOn, ScrollLockOn). Если выключается режим CapsLock, установить курсор «мыши» в определенное положение (выбирается самостоятельно студентом). На экран выводится соответствующее сообщение. Для последовательных нажатий положение «мыши» изменять.

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

; Ждем выключения одного из режимов CapsLock, NumLock, ScrollLock

; После выключения одного из режимов, выводим соответствующее сообщение

; Если выключается CapsLockLock, установить курсор мыши в определенное положение

.model tiny ; Модель tiny - вся программа размещается в 1-ом

.code ; сегменте (менее 64КБ)

org 100h

start:

mov AX, CS ; данные и код находятся в одном сегменте

mov DS, AX

mov ES, AX

; сбрасываем мышь

mov AX, 0000h

int 33h

; инициализируем переменную IS_CAPS

mov IS_CAPS, 0

; определяем состояние функциональных клавиш, которое было при старте системы

mov AH, 02h

int 16h

mov CL, AL

; проверяем CapsLock

and CL, 40h

jz Caps_Not

mov CAPS, 1

jmp Num_f

Caps_Not:

mov CAPS, 0

Num_f:

; проверяем NUmLock

mov CL, AL

and CL, 20h

jz Num_Not

mov NUM, 1

jmp Scr_f

Num_Not:

mov NUM, 0

Scr_f:

; проверяем ScrollLock

and AL, 10h

jz Scr_not

mov SCROLL, 1

jmp Check_cycle

Scr_not:

mov SCROLL, 0

; отслеживаем состояние функциональных клавиш до тех пор, пока не выключится один из режимов

Check_cycle:

mov AH, 02h

int 16h

; смотрим CapsLock

mov CL, AL

and CL, 40h

jnz CapsLock_On

; CapsLock выключен

; смотрим, не был ли он включен до этого

mov CH, CAPS

and CH, CH

jnz CapsLock_On_Before

; нет, не был

jmp Scr_far

CapsLock_On_Before:

; выводим сообщение, перемещаем курсор

mov IS_CAPS, 1

lea DX, C_OFF

jmp MESS_OUT

CapsLock_On:

; CapsLock включен

mov CAPS, 1

Scr_far:

; смотрим ScrollLock

mov CL, AL

and CL, 10h

jnz ScrollLock_On

; ScrollLock выключен

; смотрим, не был ли он включен до этого

mov CH, SCROLL

and CH, CH

jnz ScrollLock_On_Before

; нет, не был

jmp Num_far

ScrollLock_On_Before:

; выводим сообщения и выходим

lea DX, S_OFF

jmp MESS_OUT

ScrollLock_On:

; ScrollLock включен

mov SCROLL, 1

Num_far:

; смотрим NumLock

mov CL, AL

and CL, 20h

jnz NumLock_On

; NumLock выключен

; смотрим, не был ли он включен до этого

mov CH, NUM

and CH, CH

jnz NUmLock_On_Before

; нет, не был

jmp Check_far

NumLock_On_Before:

; выводим сообщение и выходим

lea DX, N_OFF

jmp MESS_OUT

NumLock_On:

; NumLock включен

mov NUM, 1

Check_far:

jmp Check_Cycle

MESS_OUT:

; выводим строку

call message_out

mov CL, IS_CAPS

and CL, CL

jz exit

; устанавливаем курсор

mov AX, 0004h

mov CX, XX

mov DX, YY

int 33h

lea DX, CursorMoved

call message_out

exit:

mov ax, 4c00h ; завершение программы c кодом выхода 00

int 21h

; вывод сообщения

message_out PROC

mov AH, 09h

int 21h

ret

ENDP

; состояние клавиши CapsLock

CAPS db 0

; состояние клавиши NumsLock

NUM db 0

; состояние клавиши ScrollLock

SCROLL db 0

; был выключен именно NumLock

IS_CAPS db 0

; сообщения

C_OFF db 'CapsLock OFF', 13, 10, '$'

N_OFF db 'NumLock OFF', 13, 10, '$'

S_OFF db 'ScrollLock OFF', 13, 10, '$'

CursorMoved db 'Mouse cursor moved', 13, 10, '$'

XX dw 8

YY dw 25

end start

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

Размещено на Allbest.ru


Подобные документы

  • Сущность и предназначение последовательных интерфейсов. Формат асинхронной и синхронной посылки. Функциональные возможности и схема соединения по интерфейсу RS-232C. Назначение сигналов интерфейса. Понятие, конфигурирование и использование СОМ-портов.

    контрольная работа [175,2 K], добавлен 09.11.2010

  • Ядро микроконтроллеров AVR семейства Mega. Временные характеристики ЖК-дисплея. Подключение модуля HD44780. Список управляющих комбинаций битов регистра IR, выполняемые команды. Приём данных по интерфейсу RS 232. Назначение выводов 9-контактного разъема.

    курсовая работа [1,2 M], добавлен 10.01.2015

  • Особенности подключения принтера по интерфейсу Centronics в PC. Назначение его сигналов. Расширения параллельного порта. Оконечные цепи линий интерфейса IEEE 1284. Запись и чтение данных в регистры Control, Status и Data. Внутреннее устройство LPT порта.

    реферат [220,7 K], добавлен 28.04.2010

  • Классификация стандартных интерфейсов по структуре обмена информации, порядку ее передачи, архитектуре построения, природе сигнала, назначению. Радиальная структура на примере ИВК-8. Пример применения магистрального интерфейса на примере локальной ИВС.

    лекция [24,1 K], добавлен 28.10.2011

  • Общие сведения о протоколе передачи данных FTP. Технические процессы осуществления соединения с помощью протокола FTP. Программное обеспечение для осуществления соединения с помощью протокола FTP. Некоторые проблемы FTP-серверов. Команды FTP протокола.

    реферат [766,6 K], добавлен 07.11.2008

  • Системы сбора и передачи информации. Обоснование выбора кода, способа передачи и синхронизации. Выбор длины посылки, формата кодового перехода. Расчет помехоустойчивости и времени запаздывания. Разработка структурной схемы передающего устройства.

    курсовая работа [412,8 K], добавлен 24.06.2013

  • Совокупность программных и аппаратных средств, обеспечивающих взаимодействие пользователя с компьютером. Классификация интерфейсов, текстовый режим работы видеоадаптера. Функции текстового режима. Реализация пользовательского интерфейса в BORLAND C++.

    лабораторная работа [405,1 K], добавлен 06.07.2009

  • Общая характеристика информационных систем, предназначенных для передачи, преобразования и хранения информации. Изучение форм представления детерминированных сигналов. Энтропия сложных сообщений. Рассмотрение основных элементов вычислительных машин.

    лекция [1,5 M], добавлен 13.04.2014

  • Проектирование устройства для приема 8-разрядного параллельного кода данных из микропроцессорной системы по локальной компьютерной шине ISA и их передачи во внешнее устройство по последовательному интерфейсу с заданной скоростью и анализом готовности.

    контрольная работа [185,6 K], добавлен 19.11.2010

  • Изучение нейро-компьютерных интерфейсов - физических интерфейсов приёма или передачи сигналов между живыми нейронами биологического организма (например, мозгом животного) с одной стороны, и электронным устройством (например, компьютером) с другой стороны.

    контрольная работа [374,2 K], добавлен 25.11.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.