vkeyboard Wirtualna klawiatura AVT 5183 PROJEKTY

Podobne dokumenty
Politechnika Wrocławska

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Touch button module. Moduł przycisku dotykowy z podświetleniem LED

Kod produktu: MP01611

Programator ZL2PRG jest uniwersalnym programatorem ISP dla mikrokontrolerów, o budowie zbliżonej do STK200/300 (produkowany przez firmę Kanda).

Wbudowane układy komunikacyjne cz. 1 Wykład 10

ZL8AVR. Płyta bazowa dla modułów dipavr

Instrukcja obsługi elektronicznego licznika typu 524. Model 524. Licznik sumujący i wskaźnik pozycji typu Opis. 1. Opis

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d.

Uniwersalna klawiatura ELITE z wyświetlaczem LCD

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Rys. 1. Schemat ideowy karty przekaźników. AVT 5250 Karta przekaźników z interfejsem Ethernet

Instytut Teleinformatyki

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

KAmodRPiADCDAC. Moduł przetwornika A/C i C/A dla komputerów RaspberryPi i RaspberryPi+

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

Komunikacja w mikrokontrolerach Laboratorium

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Wstęp Architektura... 13

KA-NUCLEO-UniExp. Wielofunkcyjny ekspander dla NUCLEO i Arduino z Bluetooth, MEMS 3DoF, LED-RGB i czujnikiem temperatury

TWRS-21 TABLICOWY WYŚWIETLACZ CYFROWY DOKUMENTACJA TECHNICZNO-RUCHOWA. Wrocław, listopad 1999 r.

ZL9AVR. Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019)

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

dv-2ps INSTRUKCJA OBSŁUGI

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

DTR PICIO v Przeznaczenie. 2. Gabaryty. 3. Układ złącz

Model: OR-ZS-802 (OR-ZS-SB-102) ZAMEK SZYFROWY Z CZYTNIKIEM KART I BRELOKÓW ZBLIŻENIOWYCH ID. Instrukcja montażu i programowania

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Kod produktu: MP01611-ZK

Instytut Teleinformatyki

rh-s4l4 Czterokrotny nadajnik dotykowy systemu F&Home RADIO.

E-TRONIX Sterownik Uniwersalny SU 1.2

2.1 Porównanie procesorów

Uniwersalny system automatyki budynkowej w oparciu o. moduł sterujący SAB i moduły wykonawcze MWD. Praca autonomiczna Moduł sterujący SAB...

STHR-6610 Naścienny przetwornik temperatury i wilgotności

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

ZL1MSP430 Zestaw startowy dla mikrokontrolerów MSP430F11xx/11xxA ZL1MSP430

. Polski. Dekoder rozjazdów GEODec C1O. DEKODER ROZJAZDÓW ROCO GeoLine. GEODec C1O. Instrukcja obsługi, programowania i budowy dekodera

ZL9ARM płytka bazowa dla modułów diparm z mikrokontrolerami LPC213x/214x

UW-DAL-MAN v2 Dotyczy urządzeń z wersją firmware UW-DAL v5 lub nowszą.

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

Mikrokontrolery AVR techniczne aspekty programowania

Moduł komunikacyjny Modbus RTU w standardzie RS-485 do ciepłomierza SonoMeter 31 i przelicznika energii Infocal 9

Listing_ $crystal = deklaracja

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Montaż i uruchomienie

ZAMEK KODOWY 100 KODÓW REF. 6991

A-100WP ELEKTRONICZNY WANDALOODPORNY ZEWNĘTRZNY ZAMEK SZYFROWY DO MONTAŻU NADTYNKOWEGO

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

INSTRUKCJA OBSŁUGI. Przekaźnik czasowy ETM ELEKTROTECH Dzierżoniów. 1. Zastosowanie

STHR-2810, 2811, 2812 Przetwornik temperatury i wilgotności z czujnikiem Sensirion

SiMod-X-(A1) Przetwornik parametrów powietrza z interfejsem RS485 (MODBUS RTU) oraz wyjściem analogowym (dotyczy wersji -A1)

CDIRO-360 Karta wejść binarnych i wyjść przekaźnikowych Instrukcja obsługi

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH. PROCESORY OSADZONE kod kursu: ETD 7211 SEMESTR ZIMOWY 2017

Komunikacja w mikrokontrolerach Laboratorium

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

Instrukcja MM-717 Tarnów 2010

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Instytut Teleinformatyki

TRD-MINI COMBO. Uniwersalny moduł czytnika transponderów UNIQUE - wersja OEM. Podstawowe cechy :

1SEK / KP DANE TECHNICZNE MONITOR PANEL ZEWNĘTRZNY. DC 24V Pobór prądu. Zasilanie. 40mA w spoczynku, podczas pracy 160mA Materiał

ZL4PIC uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC (v.1.0) Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Firma DAGON Leszno ul. Jackowskiego 24 tel Produkt serii DAGON Lighting

Kod produktu: MP01105T

Dalmierze firmy SHARP na przykładzie 2D120XJ100F

Zestaw Startowy EvB. Więcej informacji na stronie:

Karta katalogowa JAZZ OPLC JZ20-R31

Instrukcja obsługi Zasilacz regulowany WINNERS XL4015 USB

STEROWNIK LAMP LED MS-1 Konwerter sygnału 0-10V. Agropian System

TDWA-21 TABLICOWY DWUPRZEWODOWY WYŚWIETLACZ SYGNAŁÓW ANALOGOWYCH DOKUMENTACJA TECHNICZNO-RUCHOWA. Wrocław, listopad 1999 r.

Programowanie mikrokontrolerów. 8 listopada 2007

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Terminal TR01. Terminal jest przeznaczony do montażu naściennego w czystych i suchych pomieszczeniach.

Moduł komunikacyjny Modbus RTU do ciepłomierza SonoMeter 30

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168

JAZZ OPLC JZ20-R10 i JZ20-R16

PRUS. projekt dokumentacja końcowa

STR-6610-D Naścienny przetwornik temperatury z czujnikiem Dallas

CDI-360 Karta wejść binarnych Instrukcja obsługi

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

Tester samochodowych sond lambda

2. Architektura mikrokontrolerów PIC16F8x... 13

Programator procesorów rodziny AVR AVR-T910

AKTUATOR DO SYSTEMU DUO Q

INDU-22. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie. masownica próżniowa

APPLICATION OF ADUC MICROCONTROLLER MANUFACTURED BY ANALOG DEVICES FOR PRECISION TENSOMETER MEASUREMENT

Instrukcja integracji urządzenia na magistrali Modbus RTU. wersja 1.1

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

DEKODER FUNKCJI SPECJALNYCH

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

_PL_ PA16000D INSTRUKCJA OBSŁUGI

MAGISTRALA MODBUS W SIŁOWNIKU XSM Opis sterowania

Politechnika Wrocławska, Katedra Inżynierii Biomedycznej Systemy Pomiarowo-Diagnostyczne, laboratorium

Karta katalogowa JAZZ OPLC JZ20-T40/JZ20-J-T wejść cyfrowych, 2 wejścia analogowe/cyfrowe, 2 wejścia analogowe. 20 wyjść tranzystorowych

Przemysłowy odtwarzacz plików MP3

Transkrypt:

vkeyboard Dodatkowe materiały na CD Wirtualna klawiatura To, co rzuca się w oczy jako pierwsza cecha użytkowa urządzenia, to tak zwany interfejs użytkownika. Najczęściej składają się na niego wyświetlacz, klawiatura, pokrętła i manipulatory. Proponujemy wykonanie klawiatury dotykowej, która znacząco podniesie walory użytkowe każdego urządzenia elektronicznego. Konstrukcja jest nowoczesna, uniwersalna i estetyczna. Dzięki swojej uniwersalności klawiatura będzie doskonałym uzupełnieniem każdego projektu. Rekomendacje: Projekt rekomendujemy wszystkim konstruktorom elektronikom. AVT 5183 PODSTAWOWE PARAMETRY Ustawienia Fuse-bitów: CKSEL3..0: 0100, SUT1..0: 01 Napięcie zasilania: 5 VDC Prąd obciążenia: 30 ma Adres sprzętowy I 2 C: 55 Hex. Maksymalna częstotliwość sygnału SCL magistrali I 2 C: 400 khz Liczba przycisków: 40 Żyjemy w czasach lawinowego rozwoju mikrokontrolerów i, co za tym idzie, znacznego ich rozpowszechnienia. Nawet stosunkowo proste urządzenia elektroniczne wyposażane są w rozbudowane i efektowne interfejsy obsługi użytkownika, nierzadko z użyciem kolorowych wyświetlaczy graficznych LCD, zintegrowanych z panelem dotykowym. Te ostatnie dają ogromne możliwości kształtowania sposobu współpracy urządzenia z użytkownikiem, ponieważ liczba dostępnych opcji ograniczona jest jedynie inwencją programisty i jego doświadczeniem w tworzeniu przejrzystych elementów graficznego interfejsu użytkownika (GUI). Niestety, tego typu rozwiązania są jeszcze stosunkowo drogie, więc zasadność ich stosowania wynika zazwyczaj ze stopnia skomplikowania układu docelowego, jak i oczekiwanej elastyczności po stronie użytkownika. Nic nie stoi jednak na W ofercie AVT: AVT 5183A płytka drukowana PROJEKTY POKREWNE wymienione artykuły są w całości dostępne na CD Tytuł artykułu Nr EP/EdW Kit Klawiatura z interfejsem PS/2 EP 9/2006 AVT-946 Klawiatura do mikrokontrolera EdW 8/2003 AVT-2673 Klawiatura multimedialna do PC EP 11/2001 AVT-1328 16-stykowa klawiatura z interfejsem RS232 EP 4/2000 AVT-1265 przeszkodzie, aby wykorzystać potencjał paneli dotykowych, konstruując uniwersalną i efektowną klawiaturę przeznaczoną do zastosowań w systemach mikroprocesorowych, bez konieczności użycia drogich wyświetlaczy graficznych. Schemat takiego rozwiązania przedstawiono na rysunku rys. 1. Przedstawiony układ to prosty system mikroprocesorowy, który do obsługi panela dotykowego wykorzystuje wbudowany w mikrokontroler ATmega8, 10-bitowy przetwornik analogowo-cyfrowy oraz jego multiplekser wejściowy (ADC0 ADC3). Grupa diod LED w układzie typowej matrycy o wymiarach 5 8 sygnalizuje naciśnięcie wirtualnego przycisku. Wysłanie kodu przycisku do docelowego systemu mikroprocesorowego zrealizowano za pomocą interfejsu I 2 C (TWI Atmel). Wyjście oznaczone jako INT (PORTB.5) można użyć do wyzwolenia przerwania w systemie nadrzędnym, po wciśnięciu klawisza. Więcej uwagi poświęćmy panelowi dotykowemu, który jest rozwiązaniem ciekawym, ale stosunkowo mało znanym. W prezentowanym układzie zastosowano typowy, rezystancyjny panel dotykowy o czterech wyprowadzeniach (X+, X-, Y+, Y-), dostępnych na taśmie do złącza ZIF (raster 1 mm). W pewnym uproszczeniu, taki panel można przedstawić jako dwie, rozdzielone dielektrykiem folie rezystancyjne (o stałym współczynniku rezystancji w funkcji powierzchni), z wyprowadzeniami dla osi X (X+ i X-) oraz osi Y (Y+ i Y-). Pod wpływem siły nacisku folie łączą się w miejscu dotyku, a cały układ staje się typowym dzielnik rezystancyjnym. Odczyt 46 ELEKTRONIKA PRAKTYCZNA 4/2009

Wirtualna klawiatura Rys. 1. Schemat klawiatury położenia możliwy jest po spolaryzowaniu jednej z osi i odczycie napięcia na jednym z zacisków drugiej osi, a następnie odwróceniu sytuacji i ponownym odczycie realizowanym dla osi niespolaryzowanej. W naszym przypadku, do polaryzacji obu osi, czyli warstw folii rezystancyjnej, użyto portów GPIO z ustawionymi przeciwnymi stanami logicznymi. Odczyt poziomu napięcia z osi niespolaryzowanej realizuje 10-bitowy przetwornik analogowo-cyfrowy pracujący w trybie pojedynczego pomiaru. Pomiar wykonywany jest naprzemiennie dla każdej z osi dzięki wykorzystaniu alternatywnych funkcji portu C mikrokontrolera. W przypadku tego typu polaryzacji należy pamiętać, aby nie przekroczyć maksymalnego prądu poszczególnych wyprowadzeń portu. Trzeba mieć również na uwadze zalecenie producenta, aby w czasie pomiaru realizowanego przez przetwornik ADC, nie dokonywać zmiany stanów portu PORTC. Przetwornik ADC przed pierwszym użyciem musi być skonfigurowany i włączony, co sprowadza się do ustawienia odpowiednich rejestrów konfiguracyjnych. Na list. 1 przedstawiono przykładową procedurę napisaną w języku Bascom AVR, odpowiedzialną za pomiar położenia dla stosowanego panelu dotykowego. Przedstawiony układ vkeyboard zaprojektowano do pracy w dwóch dostępnych trybach: tryb QWERTY (pole konfiguracyjne QWER- TY zwarte). Uproszczona klawiatura typu QWERTY z układem wirtualnych przyci- WYKAZ ELEMENTÓW Rezystory (1206, SMD): R1 R5: 220 V R6, R7: 4,7 kv Kondensatory (1206, SMD): C1 C3: 100 nf Półprzewodniki IC1: ATmega8 (TQFP32) D1 D40: dioda LED SMD1206 czerwona Inne L1: dławik 10 mh CON: gniazdo męskie kątowe 5-pin (NSL25-5W) SP1: buzzer piezoelektryczny KPX-G1205B PANEL: panel dotykowy do wyświetlaczy 240 128 typu LCD-AG-TP-240128N-PBF ZIF: złącze typu ZIF do montażu powierzchniowego (raster 1 mm, 4-pin, styki po stronie wyprowadzeń lutowniczych SMD!) Rys. 2. Układ klawiatury w trybie QWERTY (może on posłużyć do wykonania szablonu klawiatury w tym przypadku otrzymany wydruk należy wyciąć wzdłuż przerywanej linii) Na CD karty katalogowe i noty aplikacyjne elementów ELEKTRONIKA oznaczonych na PRAKTYCZNA Wykazie Elementów 4/2009kolorem czerwonym 47

List. 1. Listing przykładowej procedury odpowiedzialnej za pomiar położenia Konfiguracja przetwornika ADC Config Adc = Single, Prescaler = 128, Reference = Avcc Procedura pomiarowa umieszczona w pętli Do Loop Polaryzacja osi Y - ustawienie odpowiednich stanów logicznych i kierunków portów Reset PORTC.1 Set PORTC.3 Set DDRC.1 Set DDRC.3 Ustawienie portów osi X jako porty wejściowe (jeden z rezystorem podciągającym, drugi Hi-Z) Set PORTC.0 Reset PORTC.2 Reset DDRC.0 Reset DDRC.2 Waitms 5 Cordx = Getadc(2) Ustawienie portów osi Y jako porty wejściowe (jeden z rezystorem podciągającym, drugi Hi-Z) Reset DDRC.1 Reset DDRC.3 Reset PORTC.3 Set PORTC.1 Polaryzacja osi X - ustawienie odpowiednich stanów logicznych i kierunków portów Reset PORTC.0 Set PORTC.2 Set DDRC.0 Set DDRC.2 Waitms 5 Cordy = Getadc(3) Cordx = 1024 - Cordx Cordy = 1024 - Cordy sków pokazanych na rysunku rys. 2 (rysunek ten może także stanowić gotowy szablon do wydrukowania i wykorzystania przy konstruowaniu urządzenia). W trybie tym odczytane kody klawiszy (dostępne za pośrednictwem interfejsu I 2 C) zgodne są z kodami ASCII poszczególnych znaków (tylko duże litery), za wyjątkiem klawiszy strzałek, którym przyporządkowano kolejno kody 0x00 0x03, ponieważ standard ASCII nie przewiduje standardowych kodów dla tych klawiszy. tryb użytkownika (pole konfiguracyjne QWERTY rozwarte). Specyficzna klawiatura użytkownika z kodami klawiszy pokazanymi na rysunku rys. 3. Należy zaznaczyć, że w trybie użytkownika nie wszystkie dostępne klawisze muszą być aktywne. Nie będą one podświetlane w przypadku naciśnięcia. Konfiguracji dokonuje się za pomocą specjalnej procedury konfiguracyjnej, którą opisano dalej. Ten tryb pracy zaimplementowano po to, aby stworzyć możliwość wykonania różnych klawiatur. Stosownie do potrzeb docelowego systemu mikroprocesorowego, który nie musi korzystać ze wszystkich dostępnych opcji. Daje to możliwość względnie dowolnego kształtowania rozmieszczenia poszczególnych przycisków klawiatury oraz jej wyglądu. Odstęp czasu pomiędzy poszczególnymi odczytami stanu klawiatury jest równy 300 ms i niezależny od wybranego trybu pracy układu. Każde naciśnięcie aktywnego klawisza (w trybie QWERTY wszystkie klawisze są aktywne), Rys. 3. Układ klawiatury w trybie USER z zaznaczeniem kodów wszystkich dostepnych klawiszy sygnalizowane jest dodatkowo krótkim sygnałem dźwiękowym emitowanym przez wbudowany buzzer piezoelektryczny. Jak wspomniano wcześniej, niniejszy układ zaprojektowano jako element większego systemu mikroprocesorowego przeznaczony do współpracy za pośrednictwem magistrali I 2 C. Do realizacji tych założeń projektowych wykorzystano wbudowany w mikrokontroler Atmega8 interfejs TWI, pracujący w trybie nadajnika Slave (Slave Transmiter). Adres układu ustawiono programowo na wartość 0x55, z dodatkowym ósmym bitem kierunku transmisji (R/W) ustawionym w stan logicznej jedynki (żądanie odczytu z układu Slave). Należy tym samym zaznaczyć, iż klawiatura nie obsługuje trybu wywołania ogólnego magistrali I 2 C (tzw. General Call) jak i pozostałych trybów pracy magistrali (np. żądanie zapisu). Typową ramkę transmisji po stronie układu docelowego przedstawiono na rysunku rys. 4 zaś procedurę obsługi magistrali I 2 C (korzystającą z przerwania układu TWI) napisaną w języku Bascom Basic na list. 2. Dedykowany system mikroprocesorowy, może w sposób ciągły monitorować stan klawiatury poprzez cykliczne odpytywanie jej przy użyciu opisanej ramki transmisji (przy braku naciśnięcia lub naciśnięciu nieaktywnego klawisza wysyłany jest kod 0xFF) lub też, co bardziej wskazane, może korzystać z dodatkowego wyprowadzenia INT przeznaczonego do zgłoszenia systemowi docelowemu faktu naciśnięcia aktywnego przycisku. Stan tego wyprowadzenia zmienia się z logicznej jedynki na logiczne zero, w momencie naciśnięcia aktywnego przycisku i jest utrzymywany do czasu odczytania klawiatury przez system docelowy. Przeznaczeniem tego dodatkowego wyprowadzenia INT było odciążenie systemu docelowego z potrzeby ciągłego sprawdzania stanu klawiatury. Przy implementacji programu obsługi nie przewidziano specjalnego bufora typu FIFO, co znaczy, iż nieodczytane dane zostaną nadpisane przez dane bieżące. Montaż Obwód drukowany układu vkeyboard zaprojektowano jako dwustronny, z montażem mieszanym elementów typu SMD i tradycyjnych po obu stronach płytki drukowanej (od góry montowane są jedynie diody LED oraz rezystory R6 i R7). Wygląd płytki drukowanej przedstawiono na rysunku rys. 5. Konstrukcja przewiduje umocowanie na niej panela dotykowego (zaznaczono odpowiednie miejsca klejenia elementów), co powinno zostać wykonane przy użyciu specjalnie przygotowanego elementu mocującego (tzw. łoża), przyklejonego do obwodu drukowanego od strony elementów. Poglądowy rysunek procesu przygotowania wspomnianego elementu mocującego z zaznaczeniem wymiarów poszczególnych elementów składowych przeznaczonych do klejenia, pokazano na rysunku rys. 6. 48 ELEKTRONIKA PRAKTYCZNA 4/2009

Wirtualna klawiatura S sygnał Start magistrali I 2 C P sygnał Stop magistrali I2C ACK potwierdzenie adresu po stronie odbiornika NCK brak potwierdzenia po stronie Master a (klawiatura nie kontynuuje transmisji) Rys. 4. Ramka transmisji danych I 2 C Elementy te należy wyciąć z dowolnego, sztywnego materiału o grubości 3 mm (w projekcie wykorzystano pleksi). Oczywiście montaż mechaniczny elementów mocujących (przyklejenie łoża do płytki) powinien zostać wykonany dopiero po zmontowaniu urządzenia. Następnie należy przygotować odpowiednie przegrody izolacyjne (np. wykonane z tektury lub także z pleksi), które odseparują strumienie świetlne poszczególnych diod LED pozwalając im tym samym podświetlać jedynie pola przypisanych im klawiszy. Po umieszczeniu przegród izolacyjnych (zaznaczono odpowiednie miejsca), w wykonanym wcześniej łożu umieszczamy rysunek naszej klawiatury (wcześniej przygotowany wydruk), a następnie panel dotykowy, który zabezpieczamy przed przypadkowym wypadnięciem. Panel posiada specjalną, dwustronną taśmę klejącą umieszczona na obrzeżach. Sam panel dotykowy podłączamy do układu vkeyboard korzystając z dedykowanego złącza ZIF umieszczonego na stronie BOTTOM obwodu drukowanego. Tak przygotowany moduł możemy w prosty sposób przykręcić do panelu obsługi urządzenia docelowego, korzystając z otworów umieszczonych w płytce drukowanej klawiatury. ELEKTRONIKA PRAKTYCZNA 4/2009 Rys. 5. Schemat montażowy Konfiguracja Konfiguracja urządzenia jest niezbędna w przypadku jego pracy w trybie użytkownika i potrzebie aktywacji/dezaktywacji poszczególnych klawiszy. Konfigurację taką możemy przeprowadzić jedynie w trybie użytkownika (pole konfiguracyjne QWERTY rozwarte). Proces wywołujemy przez przytrzymanie klawisza o kodzie 0 (lewy, dolny róg klawiatury) w trakcie włączania urządzenia. Uruchomienie i opuszczenie procedury konfiguracyjnej sygnalizowane jest trzykrotnym sygnałem wbudowanego buzzera. Po wejściu do procedury konfiguracyjnej mamy możliwość zmiany stanu aktywności każdego z klawiszy. Zmiany tej dokonujemy przez każdorazowe naciśnięcie wybranego przycisku, co sygnalizowane jest jego podświetleniem oraz dźwiękiem buzzera. Dwa sygnały dźwiękowe oznaczają dezaktywację klawisza zaś jeden sygnał dźwiękowy, jego aktywację. Procedurę konfiguracji opuszczamy wybierając klawisz o kodzie 0, tak jak przy wejściu do procesu konfiguracji. Informacje konfiguracyjne zostają zapisane 49

List. 2 Procedura obsługi przerwania TWI Procedura obsługi przerwania od TWI I2c_check: Odczytujemy bieżący status operacji korzystając z rejestru TWCR oraz maskując 3 ostatnie, nieważne dla nas bity Status = TWSR And &B11111000 Status = &HA8 - Odebrano własny adres w trybie odczytu i potwierdzono go ACK Status = &HC0 - Wysłano daną do układu Master i odebrano NACK If Status = &HA8 Then Slave odebrał swój adres w trybie odczytu, potwierdził go ACK i wyśle do układu Master daną - zmienną Code nie żądając potwierdzenia po stronie układu Master - NACK TWDR = Code BEZ żądania ACK Reset TWCR.TWEA End If If Status = &HC0 Then Slave wysłał właśnie daną do układu Master nie żądając potwierdzenia (NACK) co właśnie nastąpiło. Przeszedł jednak tym samym w tryb pasywny, co znaczy, że nie odpowiadałby na swój adres przy kolejnych adresowaniach - ustawiamy jego aktywność korzystając z bitu potwierdzenia TWEA. Set TWCR.TWEA Kasujemy sprzętową flagę żądania przerwania dla układu zewnętrznego(int) jako, że dana została właśnie wysłana Set PORTB.5 Czyścimy zmienną Code Code = 255 End If Czyścimy flagę zgłoszenia przerwania (wpisując 1), aby umożliwić dalsze działanie interfejsu TWI. Do tego czasu sygnał zegarowy SCL jest ściągany do logicznego zera TWCR.TWINT = 1 Return Rys. 6. Element mocujący w nieulotnej pamięci EEPROM mikrokontrolera. Uważny Czytelnik zauważy, iż wybrany sposób opuszczenia procedury konfiguracyjnej powoduje każdorazową zmianę stanu aktywności przycisku o kodzie 0 jednak, co oczywiste, aby powrócić do żądanego stanu jego aktywności należy ponownie uruchomić a następnie opuścić procedurę konfiguracji. Robert Wołgajew 50 ELEKTRONIKA PRAKTYCZNA 4/2009