Tutaj zaczniemy od opracowania procedur obsługi klawiatury matrycowej, zwykle pisanych w języku C dla systemów wbudowanych (dalej określonego w skrócie jako język C). Do projektu użyjemy ośmiobitowego mikrokontrolera AT89S52 (program zadziała równie dobrze z każdym innym MCU rodziny C51), który jest łatwo dostępny i którego architektura jest znana wielu z nas.
Najpierw zaimplementujemy sterownik urządzenia do skanowania klawiszy, działający w trybie odpytywania i zobaczymy jak go wstępnie przetestować bez użycia wyświetlacza ciekłokrystalicznego (LCD).
Następnie zbadamy aspekty konwersji tego sterownika do wersji wykorzystującej zewnętrzne asynchroniczne przerwanie mikrokontrolera, w tym przypadku INT0 i przedstawimy szczegóły jego implementacji w języku C oraz testowania go w symulatorze programowym. Zaleca się przeprowadzanie dalszych czynności w środowisku IDE μVision, w wersji 5, firmy Keil z kompilatorem skrośnym C51 (obsługującym starszą rodzinę mikrokontrolerów C51), zainstalowanym na komputerze PC z systemem Windows 10 wraz z oprogramowaniem symulacyjnym, takim jak Proteus 7.7 lub nowszy, w celu weryfikacji stworzonego kodu.
Red. EdW: Do symulacji wymagana jest pełna wersja oprogramowania Proteus. Bezpłatna wersja demonstracyjna pozwala tylko na symulację projektów dołączonych do niej i nie umożliwia zapisu własnych projektów. Pokazane schematy są wystarczające dla symulatora Proteus ale nie do realizacji rzeczywistego układu z mikrokontrolerem.
Projekt składa się z czterech części, w których program źródłowy (plik ‘App.C’) każdej z nich (Projekt1 do Projekt4), jest napisany w języku C dla systemów wbudowanych. Kod szesnastkowy wygenerowany przez IDE μVision służy do symulacji i weryfikacji projektu za pomocą oprogramowania Proteus.
Zanim zagłębimy się w szczegóły techniczne, musimy poznać najpierw uzasadnienie potrzeby konwersji z trybu odpytywania na przerwaniowy.