МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра САПР
Звіт
з лабораторної роботи № 10
“Програмування портів клавіатури мікропроцесора
Intel 8086 (80286)”
Виконала:
студентка гр. КН 3
Львів 2003
МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра САПР
Звіт
з лабораторної роботи № 10
“Програмування портів клавіатури мікропроцесора
Intel 8086 (80286)”
Виконав:
студент гр. КН-37
Данчук Є.С.
Перевірив:
Герус В.А.
Львів 2003
МЕТА РОБОТИ
Вивчити основні шляхи програмування портів клавіатури на ЕОМ з мікропроцесором Intel 8086(80286).
ТЕОРЕТИЧНІ ВІДОМОСТІ
Одним з найважливіших пристроїв персонального комп'ютера є клавіатура, яка призначена для інтерфейсу між користувачем та комп'ютером. На даний час існує три основні типи клавіатур. Це - клавіатура для комп'ютерів ШМ PC/XT, яка містить 84 клавіші та 101-клавішна клавіатура для IBM PC/AT. Деякі клавіатури містять перемикач режиму роботи (XT/AT). Як контролер виступає процесор Intel 8042, який призначений для обміну між клавіатурою та CPU.
Усі горизонтальні лінії матриці підключені через резистор до джерела живлення +5В. Контролер клавіатури містить два порти - вхідний і вихідний. Вхідний порт підключений до горизонтальних ліній матриці (ХО-Х4), а вихідний - до вертикальних (YO-Y4)
Принцип роботи даного пристрою полягає в тому, що контролер почергово на вертикальних лініях встановлює значення логічного нуля. Потім він почергово опитує горизонтальні лінії. У випадку, коли натиснутих клавіш не має, рівень напруги на всіх горизонтальних лініях буде відповідати логічній 1 (всі ці лінії підключені до джерела живлення +5V через резистори). У випадку, коли натиснута клавіша - на відповідній горизонтальній лінії буде логічний нуль. На наступному кроці визначається ASCII- код натиснутої клавіші.
Для роботи з клавіатурою використовують порти з адресами 60Н та 61Н. Порт 60Н при читанні містить скан-код останньої натисненої клавіші.
IN AL, 60Н
Для встановлення характеристик автоповтору в порт 60Н необхідно записати код команди, а потім байт, що визначає характеристики режиму.
Період автоповтору визначає кількість посилок скан-коду, генерованих процесором клавіатури за одну секунду. Можна використовувати не лише ті значення, які наведені в таблиці, але й проміжні (наприклад, 9 або 16Н).
При керуванні світлодіодама використовують команду OEDH. Потім в порт 60Н необхідно записати байт, що має наступний формат:
Використання портів при роботі з клавіатурою є дуже громіздкою роботою для програміста, тому зручніше використати вже готові процедури і функції BIOS(Basic Input/Output System – Базова Система Вводу/Виводу), які розміщені в постійному запам'ятовуючому пристрої комп'ютера.
Для вводу з клавіатури використовують переривання BIOS INT 16Н та переривання DOS INT 21Н.
MOV AH, номер функції
int 16h
Функція 00h - означає чекати до того часу, поки користувач не натисне клавішу. В результаті, у регістрі AL, отримаємо код ASCII символу, а якщо в AL нуль, то в АН - розширений код ASCII.
Функція 0lh - перевіряє готовність символу на ввід та виводить його, якщо він готовий. Контроль організований по значенню прапорця нуля, якщо клавішу натиснули, то ZF=0. В іншому випадку - ZF=1, тобто клавішу не натискали і черга порожня (ця функція не забирає символ з черги, а тільки перевіряє наявність)
Функція 02h - читає статус Shift – клавіш. У результаті, в регістрі АL міститься статус клавіатури.
Коли користувач натискає на клавішу, то автоматично викликається апаратне переривання BIOS. Далі клавіша розпізнається і її код записується в так звану чергу (буфер клавіатури). Буфер клавіатури - спеціальна ділянка пам'яті відведена під збереження кодів натиснених клавіш. Саме з буфера клавіатури (по черзі) зчитуються ASCII- коди клавіш, коли ми викликаємо функцію BIOS INT 16h (AH=00h). Прочитаний символ з буфера стирається.
ЗАВДАННЯ
КОД ПРОГРАМИ