Проекты с использованием контроллера Arduino



Download 12,28 Mb.
Pdf ko'rish
bet73/215
Sana22.02.2022
Hajmi12,28 Mb.
#109180
1   ...   69   70   71   72   73   74   75   76   ...   215
Bog'liq
Petin V A - Proekty s ispolzovaniem kontrollera Arduino Elektronika 2014


Глава 9. Подключение клавиатуры и мыши 
127 
#define DOWN 0x72 // курсор вниз на 1 строку 
#define PGUP 0x7D // 
#define PGDOWN 0x7A // 
#define END 0x69 // курсор в конец строки 
#define HOME 0x6C // курсор в начало строки 
#define NUM5 0x73 // пустая клавиша цифровой панели 
#define BACKSPACE 0x66 // удалить предыдущий символ 
#define DELETE 0x71 // удалить символ из текущей позиции 
#define INSERT 0x70 // включить/выключить режим Insert 
При нажатии обычных клавиш их визуальное представление будет выводиться
в текущую позицию дисплея с заменой текущего символа (режим Insert) или со 
сдвигом курсора вправо. Линию 
Clock
клавиатуры подсоединим к 
pin3
и запустим 
обработчик прерывания 1 для отслеживания момента передачи данных с клавиату-
ры. Схема подключения клавиатуры и дисплея представлена на рис. 9.4. 
Рис. 9.4. Схема подключения 
В функции начальной установки необходимо инициализировать клавиатуру и дис-
плей и запустить обработчик прерывания по событию начала отправки кода с кла-
виатуры. Содержимое функции 
setup()
представлено в листинге 9.2. 


128 
Часть III. Практическое применение Arduino 
Листинг 9.2 
void setup() 

Serial.begin(9600); 
Serial.println("start-ok"); 
// инициализация клавиатуры 
kbd_init(); 
Serial.println("keyboard-ok"); 
// инициализация дисплея 
lcd.begin(16, 4); 
// Начальное сообщение 
lcd.clear(); 
lcd.print("Редактор текста"); 
lcd.cursor(); 
delay(5000); 
lcd.clear(); 
// ожидание передачи от клавиатуры по прерыванию 1 
attachInterrupt(1, get_char, FALLING); 

Коды, поступающие с клавиатуры PS/2, не соответствуют кодам ASCII. Если от-
сечь все служебные коды, из клавиатуры выдаются коды в интервале 
0 — 0x7f
. Для 
перевода поступающих кодов в коды ASCII создадим массив размером 1024 байта. 
Массив памяти условно разделен на 8 блоков. Карта распределения памяти в мас-
сиве для разных режимов приведена в табл. 9.1. Код нажатия неслужебной клавиши 
клавиатуры будет являться адресом нахождения соответствующего кода ASCII для 
нажатой клавиши. Отпускание клавиши отсечем программно. Переключение между 
языками станем осуществлять по нажатии клавиши . В скетче предусмотрим 
возможность перехода и по нажатии клавиши  — этот вариант более
удобен, т. к. при этом будет осуществляться индикация на светодиоде Scroll кла-
виатуры выбранного языка. Выбор нужного символа для режима Num_Lock будем 
подготавливать программно. 
Таблица 9.1. Карта распределения памяти
для перевода кодов клавиатуры в коды ASCII 
Адреса Eng/Rus 
Caps_Lock 
Shift 
0 — 0x7f 
Eng 1 0 
0x80 — 0xff 
Eng 1 1 
0x100 — 0x17f 
Eng 1 0 
0x180 — 0x1ff 
Eng 1 1 
0x200 — 0x21f 
Rus 0 0 
0x280 — 0x2ff 
Rus 0 1 


Download 12,28 Mb.

Do'stlaringiz bilan baham:
1   ...   69   70   71   72   73   74   75   76   ...   215




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish