11693

Програмування клавіатури

Лабораторная работа

Информатика, кибернетика и программирование

ЛАБОРАТОРНА РОБОТА №10. Тема: Програмування клавіатури. Ціль: Навчитися управляти перериваннями клавіатури. Теоретичні відомості Порти для роботи з к...

Украинкский

2013-04-10

44 KB

1 чел.

ЛАБОРАТОРНА РОБОТА №10.

Тема:  Програмування клавіатури.

Ціль:  Навчитися управляти перериваннями клавіатури. 

                                               

                                                Теоретичні відомості

 

Порти для роботи з клавіатурою

Для роботи з клавіатурою типу PC/XT використовуються порти з адресами 60h і 61h.

Порт 60h при читанні містить скан-код останньої натиснутої клавіші.

Порт 61h управляє не лише клавіатурою, але і іншими пристроями комп'ютера, наприклад, роботою вбудованого динаміка. Цей порт доступний як для читання, так і для запису. Для нас важливий самий старший біт цього порту. Якщо в старший біт порту 61h записати значення 1, клавіатура буде заблокована, якщо 0 - розблокована.

Оскільки порт 61h управляє не лише клавіатурою, при зміні утримуваного старшого біта необхідно зберегти стан інших бітів цього порту. Для цього можна спочатку виконати читання утримуваного порту в регістр, змінити стан старшого біта, потім виконати запис нового значення в порт:

         .........

               in      al, 61h

               or      al, 80h

               out     61h, al

         .........

Апаратне переривання клавіатури

Клавіатура підключена до лінії переривання IRQ1. Цій лінії відповідає переривання INT 09h.

Клавіатурне переривання обслуговується модулями BIOS. Драйвери клавіатури і резидентні програми можуть організовувати додаткову обробку переривання INT 09h. Для цього може бути використаний ланцюжок обробників переривання. У першій книзі першого тому ми наводили приклади розширення обробника переривання INT 09h.

Як працює стандартний обробник клавіатурного переривання, що входить до складу BIOS?

Цей обробник виконує наступні дії:

  •  читає з порту 60h скан-код натиснутої клавіші;
  •  записує вичислене по скан-коду значення ASCII -кода натиснутої клавіші в спеціальний буфер клавіатури, розташований в області даних BIOS;
  •  встановлює в 1 біт 7 порту 61h, дозволяючи подальшу роботу клавіатури;
  •  повертає цей біт в початковий стан;
  •  записує в порт 20h значення 20h для правильного завершення обробки апаратного переривання.

Читання символу з очікуванням

Функція 00h виконує читання коду символу з буфера клавіатури, якщо він там є. Якщо буфер клавіатури порожній, програма переводиться в стан очікування до тих пір, поки не буде натиснута яка-небудь клавіша. Скан-код і ASCII -код натиснутої клавіші передаються програмі.

Приведемо формат виклику функції :

На вході:       AH = 00h

       

На виході:      AL = ASCII -код символу або 0, якщо AH містить

                               розширений ASCII -код символу;

                               AH = скан-код або розширений ASCII -код

                               символу, якщо AL=0;

Приведемо таблицю скан-кодов для клавіатури:

----------T----------T------------T-------------T---------------¬

¦01   Esc ¦12   E    ¦23   H      ¦34   . >     ¦45   NumLock   ¦

¦02   1 ! ¦13   R    ¦24   J      ¦35   / ?     ¦46   ScrollLock¦

¦03   2 @ ¦14   T    ¦25   K      ¦36 Shft(прав)¦47   Home [7]  ¦

¦04   3 # ¦15   Y    ¦26   L      ¦37   * PrtSc ¦48   Up   [8]  ¦

¦05   4 $ ¦16   U    ¦27   ; :    ¦38   Alt     ¦49   PgUp [9]  ¦

¦06   5 % ¦17   I    ¦28   " '    ¦39   Пробел  ¦4a   K -       ¦

¦07   6 ^ ¦18   O    ¦29   ` ~    ¦3a   CapsLock¦4b   <-   [4]  ¦

¦08   7 & ¦19   P    ¦2a Shft(лев)¦3b   F1      ¦4c        [5]  ¦

¦09   8 * ¦1a   [ {  ¦2b   \ |    ¦3c   F2      ¦4d   ->   [6]  ¦

¦0a   9 ( ¦1b   ] }  ¦2c   Z      ¦3d   F3      ¦4e   K +       ¦

¦0b   0 ) ¦1c   Enter¦2d   X      ¦3e   F4      ¦4f   End  [1]  ¦

¦0c   - _ ¦1d   Ctrl ¦2e   C      ¦3f   F5      ¦50   Dn   [2]  ¦

¦0d   + = ¦1e   A    ¦2f   V      ¦40   F6      ¦51   PgDn [3]  ¦

¦0e   Bksp¦1f   S    ¦30   B      ¦41   F7      ¦52   Ins  [0]  ¦

¦0f   Tab ¦20   D    ¦31   N      ¦42   F8      ¦53   Del  [.]  ¦

¦10   Q   ¦21   F    ¦32   M      ¦43   F9      ¦               ¦

¦11   W   ¦22   G    ¦33   , <    ¦44   F10     ¦               ¦

L---------¦----------¦------------¦-------------¦----------------

Для інших клавіш функція 00h переривань INT 16h повертає розширений ASCII -код:

г--------T--------------T--------------T-------------¬

¦ F1   3b¦ Shift-F1   54¦ Ctrl-F1   5e ¦ Alt-F1   68 ¦

¦ F2   3c¦ Shift-F2   55¦ Ctrl-F2   5f ¦ Alt-F2   69 ¦

¦ F3   3d¦ Shift-F3   56¦ Ctrl-F3   60 ¦ Alt-F3   6a ¦

¦ F4   3e¦ Shift-F4   57¦ Ctrl-F4   61 ¦ Alt-F4   6b ¦

¦ F5   3f¦ Shift-F5   58¦ Ctrl-F5   62 ¦ Alt-F5   6c ¦

¦ F6   40¦ Shift-F6   59¦ Ctrl-F6   63 ¦ Alt-F6   6d ¦

¦ F7   41¦ Shift-F7   5a¦ Ctrl-F7   64 ¦ Alt-F7   6e ¦

¦ F8   42¦ Shift-F8   5b¦ Ctrl-F8   65 ¦ Alt-F8   6f ¦

¦ F9   43¦ Shift-F9   5c¦ Ctrl-F9   66 ¦ Alt-F9   70 ¦

¦ F10  44¦ Shift-F10  5d¦ Ctrl-F10  67 ¦ Alt-F10  71 ¦

L--------¦--------------¦--------------¦--------------

г----------T----------T-------------T-------------¬

¦ Alt-A  1e¦ Alt-P  19¦ Alt-3     7a¦ Down  Dn  50¦

¦ Alt-B  30¦ Alt-Q  10¦ Alt-4     7b¦ Left  <-  4b¦

¦ Alt-C  2e¦ Alt-R  13¦ Alt-5     7c¦ Right ->  4d¦

¦ Alt-D  20¦ Alt-S  1f¦ Alt-6     7d¦ Up    Up  48¦

¦ Alt-E  12¦ Alt-T  14¦ Alt-7     7e¦ End       4f¦

¦ Alt-F  21¦ Alt-U  16¦ Alt-8     7f¦ Home      47¦

¦ Alt-G  22¦ Alt-V  2f¦ Alt-9     80¦ PgDn      51¦

¦ Alt-H  23¦ Alt-W  11¦ Alt--     82¦ PgUp      49¦

¦ Alt-I  17¦ Alt-X  2d¦ Alt-=     83¦             ¦

¦ Alt-J  24¦ Alt-Y  15¦             ¦ ^Left     73¦

¦ Alt-K  25¦ Alt-Z  2c¦             ¦ ^Right    74¦

¦ Alt-L  26¦          ¦ Shift-Tab 0f¦ ^End      75¦

¦ Alt-M  32¦ Alt-0  81¦ Ins       52¦ ^Home     77¦

¦ Alt-N  31¦ Alt-1  78¦ Del       53¦ ^PgDn     76¦

¦ Alt-O  18¦ Alt-2  79¦ ^PrtSc    72¦ ^PgUp     84¦

L----------¦----------¦-------------¦--------------

                                              

Індивідуальне завдання.

  Написати власний обробник переривання клавіатури. Забезпечити прочитування символу з буфера клавіатури і видачу його ASC II - кода і скан- кода.


 

А также другие работы, которые могут Вас заинтересовать

43013. Способы изготовления и монтажа строительных конструкций 1.73 MB
  Стропильные фермы изготавливаются из прокатных профилей: верхний и нижний пояса из широкополочных тавров, решетка из уголков таврового сечения. Стержни в узлах приваривают полуавтоматом в среде СО2. На монтаж ферма поступает из нескольких отправочных марок. Монтажный стык осуществляется на сварке.
43014. Рентабельность производства продукции сельского хозяйства и пути ее роста на примере ООО «Алексеевское» Горьковского района Омской области 464 KB
  Для определения эффективности использования всех вложений в основные и оборотные фонды применяют рентабельность производственных фондов исчисляемая по следующей формуле: Рф = Пб Фосн фоб 1 где Рф рентабельность производственных фондов Пб прибыль балансовая руб. Рс = П : Сп 100 2 где Рс рентабельность продукции П прибыль от реализации продукции руб. Сп полная себестоимость реализованной продукции руб.[2] Следующий показатель рентабельности рентабельность вложений в предприятие...
43015. Технология и организация перевозки грузов морем 745 KB
  Транспортной характеристикой груза называется свойство товара, которое проявляется в процессе транспортировки и определяет этот процесс. В транспортную характеристику груза входят: физико-химические свойства, объемно-массовые показатели, тара, упаковка, режимы хранения, перегрузки и перевозки. Совокупность конкретных качественных и количественных показателей транспортной характеристики груза называется транспортным состоянием груза.
43017. Грузовой план морского судна 681.5 KB
  Решение данных задач обеспечивается грузовым планом судна который является комплексным мероприятиям при максимальной эффективности использования судна. Для этого должны быть решены следующие вопросы: краткое описание внешних условий протекания рейса; определение чистой грузоподъемности и количества поднимаемых грузов; расчет распределенной массы грузовых отсеков и помещений составление плана комплектации грузов и графическое изображение грузового плана;...
43018. Разработка предложений по созданию логистической системы 661 KB
  Поиск, обработка и анализ информации по поставщикам – весьма трудоемкий и долгий процесс. Если организация ищет поставщика для важной в стратегическом плане продукции, то необходимо помнить, что плохой поставщик может вызвать гораздо больше проблем, чем плохие материалы. Окончательный выбор поставщика производится лицом, принимающим решение, и не может быть полностью формализован. Тем не менее, существуют стандартные этапы решения этой задачи.
43019. ИНФОРМАЦИОННАЯ СИСТЕМА ЗООПАРКА 504.5 KB
  В реляционной модели данных основным элементом представления о данных является отношение. Отношение задает информацию об объектах одного типа и хранится в виде таблицы. В столбцах таблицы сосредоточены различные характеристики этих объектов - атрибуты. Атрибут - определенная часть информации о некотором объекте. Строки таблицы предназначены для описания значений всех атрибутов отдельного объекта.
43020. Основы бухгалтерского управленческого учета 274.5 KB
  Менеджеры несут повседневную ответственность за руководство предприятием. Их действия и решения влияют на финансовую стабильность предприятия. Составление планов на будущее и оперативное управление предприятием требуют большого количества разнообразной учетной информации..
43021. Оптимизация загрузки транспортных средств и портовых складов 934.5 KB
  В качестве непосредственных задач курсового проекта необходимо произвести: 1 Оптимальную загрузку железнодорожного подвижного состава с учётом свойств груза. 5 Расчет количества груза на рейс определение максимальной загрузки распределенного веса грузовых помещений. Характеристики заданного судна Ленинская Гвардия Общие характеристики судна Длина наибольшая м 13525 Ширина наибольшая м 1799 Грузоподъемность т 6280 Дедвейт...