Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Konstrukcje i Technologie w Aparaturze Elektronicznej Ćwiczenie nr 4 Temat: Sterowanie sekwencyjne wyświetlaczem LED połączone z obsługą klawiatury matrycowej. Opracował: dr inż. A. Holiczer Białystok, 2013 1
I. Wprowadzenie Niezależnie od tego jaki projektujemy system mikroprocesorowy, w większości przypadków wymagana jest jakakolwiek jego komunikacja z użytkownikiem. Jedną z najbardziej popularnych metod jest zastosowanie wyświetlacza oraz klawiatury. Bardzo często stosowaną w systemach przemysłowych metodą jest użycie wyświetlaczy LED, które przy zastosowaniu odpowiednich filtrów optycznych zapewniają dużą czytelność i bardzo dobry współczynnik kontrastu. Ich podstawową wadą jest możliwość wyświetlania bardzo ograniczonej liczby znaków (w przypadku wyświetlaczy 7-segmentowych) oraz duży pobór prądu, co eliminuje je z zastosowań zasilanych bateryjnie. Celem ćwiczenia jest opracowanie algorytmów sterowania wyświetlaczami LED pracującymi w układzie sekwencycjnym. W załączniku A do niniejszej instrukcji zamieszczono schemat ideowy zestawu. Elementy W1 - W4 są połączone tak, aby pracować w trybie multipleksowanym. Wyświetlanie sekwencyjne polega na wyborze i aktywacji tylko jednego wyświetlacza 7-segmentowego w danej chwili czasu. Wybory konkretnego wyświetlacza dokonujemy za pomocą tranzystorów T2 - T5, natomiast wzorzec wyświetlanych segmentów jest doprowadzany z systemu procesorowego na złącze JP24. Wybór kolumn (JP28) jest dokonywany przy pomocy zanegowanego kodu pierścieniowego o 4 bitach długości ("wędrujące" zero). Algorytm wyświetlania (przy użyciu przerwania od licznika/timer'a) jest zatem następujący: za pomocą portu procesora odczytać stan klawiatury JP23.W1..4, wygasić wszystkie wyświetlacze JP28 = 0b1111 (tzw. blanking), odczytać z tablicy zawartość konkretnego wyświetlacza i wystawić go na port procesora (JP24), aktywować odpowiedni wyświetlacz (np. JP28 = 0b1101) oraz kolumnę klawiatury JP23.K1..4 za pomocą tego samego portu wyjściowego, wyjść z przerwania. II. Program ćwiczeń 1. Odpowiednio skonfigurować porty WE/WY. 2. Stworzyć w pamięci FLASH tabelę, w której zostanie zakodowany wzorzec cyfr 0..9 w kodzie 7- segmentowym (zwrócić szczególną uwagę na polaryzację stanów wyjściowych). 3. Przy użyciu TIMER0 skonfigurować przerwanie reagujące na przepełnienie licznika (dobrać odpowiedni prescaler), tak aby uniknąć efektu migotania. 4. Stworzyć zmienną znakową (unsigned char) z dyrektywą volatile jako wektor o rozmiarze 4 elementów i nazwie LED. 5. Opracować algorytm obsługi przerwania. Uwaga! Do przechowywania informacji o aktualnie aktywowanym wyświetlaczu należy użyć zmiennej z dyrektywą static. 6. W ramach sprawdzenia poprawności wykonanego zadania umieścić na wyświetlaczu datę wykonywania ćwiczenia. 7. Do istniejącego programu obsługi przerwania dodać podprogram obsługi klawiatury, tak aby system w przyszłości reagował na wszystkie klawisze. 8. Napisać program, który będzie testował klawisze. Na wyświetlaczu ma się pojawiać napis "K-X", gdzie X oznaczać będzie aktualnie naciśnięty przycisk. III. Zawartość sprawozdania Sprawozdanie powinno zawierać: listingi wykorzystywane podczas realizacji poszczególnych zadań, zdjęcia potwierdzające poprawność działania programu, 2
spostrzeżenia i wnioski nasuwające się w trakcie oraz po przeprowadzeniu ćwiczenia. IV. Wymagania BHP W trakcie realizacji programu ćwiczenia należy przestrzegać zasad omówionych we wstępie do ćwiczeń, zawartych w: Regulaminie porządkowym w laboratorium oraz w Instrukcji obsługi urządzeń elektronicznych znajdujących się w laboratorium z uwzględnieniem przepisów BHP. Regulamin i instrukcja są dostępne w pomieszczeniu laboratoryjnym w widocznym miejscu. 3
Załącznik A. Schemat ideowy zestawu ZL3AVR (www.btc.pl). 4
Załącznik B. Schemat montażowy zestawu ZL3AVR (www.btc.pl). 5