LAB_05_KLAWIATURA.pdf

(367 KB) Pobierz
P
OLITECHNIKA
P
OZNAŃSKA
I
NSTYTUT
A
UTOMATYKI I
I
NŻYNIERII
I
NFORMATYCZNEJ
Z
AKŁAD
S
TEROWANIA I
E
LEKTRONIKI
P
RZEMYSŁOWEJ
K
LAWIATURA NUMERYCZNA
S
YSTEMY
M
IKROPROCESOROWE
M
ATERIAŁY DO ZAJĘĆ LABORATORYJNYCH
DR INŻ
. D
OMINIK
Ł
UCZAK
D
OMINIK
.L
UCZAK
@
PUT
.
POZNAN
.
PL
L
ABORATORIUM
S
YSTEMY
M
IKROPROCESOROWE
P
OLITECHNIKA
P
OZNAŃSKA
, I
NSTYTUT
A
UTOMATYKI
I I
NŻYNIERII
I
NFORMATYCZNEJ
Z
AKŁAD
S
TEROWANIA
I E
LEKTRONIKI
P
RZEMYSŁOWEJ
2/6
I.
C
EL
Celem zajęć jest zapoznanie się z działaniem klawiatury numerycznej oraz nabycie umiejętności
programistycznych pozwalających na jej programową obsługę.
II.
P
OLECENIA KOŃCOWE
Dokończ zadania nie zrealizowane w trakcie zajęć. Przygotuj raport z przeprowadzonych zajęć. Jeden raport
może być przygotowany przez maksymalnie 2 osoby. W projekcie zamieść:
1.
2.
3.
4.
Opis rozwiązania problemu oraz jego implementację.
Fotografie ilustrujące poprawne działanie programu.
Opis działania własnych programów. Udokumentuj przeprowadzenie testów funkcjonalnych.
Ważne instrukcje programu należy zaopatrzyć stosownym komentarzem. Wszystkie
przygotowane funkcje oraz zmienne globalne należy zaopatrzyć komentarzem zgodnym z
składnią generatora dokumentacji (Doxygen).
Jako załącznik dołącz spakowane kody programów. Dla każdego zadania przygotuj osobny projekt. Raport
należy przygotować i przekazać do kolejnego spotkania. Raporty przekazywane później nie będą oceniane.
Na ocenę raportu będą miały wpływ następujące elementy (łącznie 5 punktów):
1. spełnienie wymogów redakcyjnych (1p),
2. wykonanie, udokumentowanie oraz opis wykonanych zadań (2p),
3. zastosowanie prawidłowego warsztatu programistycznego (2p).
III.
a)
P
RZYGOTOWANIE DO ZAJĘĆ
Z
APOZNANIE Z PRZEPISAMI
BHP
Wszystkie informacje dotyczące instrukcji BHP laboratorium są zamieszczone w sali laboratoryjnej oraz u
prowadzącego zajęcia. Wszystkie nieścisłości należy wyjaśnić z prowadzącym laboratorium. Wymagane jest
zaznajomienie i zastosowanie do regulaminu.
Na zajęcia należy przyjść przygotowanym zgodnie z tematem zajęć. Obowiązuje również materiał ze
wszystkich odbytych zajęć.
L
ABORATORIUM
S
YSTEMY
M
IKROPROCESOROWE
P
OLITECHNIKA
P
OZNAŃSKA
, I
NSTYTUT
A
UTOMATYKI
I I
NŻYNIERII
I
NFORMATYCZNEJ
Z
AKŁAD
S
TEROWANIA
I E
LEKTRONIKI
P
RZEMYSŁOWEJ
3/6
b)
P
RZYDATNE SCHEMATY
Rys. 1 Schemat podłączenia klawiatury numerycznej do uP
c)
A
NALIZA UKŁADU
Model działania przycisku (pominięte zostały rezystory). Rysunki 2 oraz 3 przedstawiają odpowiednio stan
linii wejściowej mikrokontrolera gdy przycisk jest w stanie: spoczynku lub użycia.
+5 V
uP
Rys. 2 Przycisk nie wciśnięty stan wysoki na wejściu uP
L
ABORATORIUM
S
YSTEMY
M
IKROPROCESOROWE
P
OLITECHNIKA
P
OZNAŃSKA
, I
NSTYTUT
A
UTOMATYKI
I I
NŻYNIERII
I
NFORMATYCZNEJ
Z
AKŁAD
S
TEROWANIA
I E
LEKTRONIKI
P
RZEMYSŁOWEJ
4/6
+5 V
uP
Rys. 3 Przycisk wciśnięty stan niski na wejściu uP
+5 V
1
uP
2
Rys. 4 Jeden przycisk klawiatury podłączony do uP
Rysunek 4 przedstawia schemat podłączenia jednego przycisku z klawiatury do mikrokontrolera. Linia 2
umożliwia wybór („aktywację”) danej kolumny klawiatury. Należy zwrócić uwagę, że ustawienie linii 2 w
stan wysoki „neutralizuje” przycisk. Wciśnięty lub podniesiony przycisk nie zmienia stanu na linii 1, w
podanym przypadku wejście mikrokontrolera zawsze będzie ustawione na 1. Tabela 1 przedstawia znaki
umieszczone na klawiaturze z podziałem na wiersze oraz kolumny.
Tab. 1 Klawisze klawiatury
1
4
7
#
2
5
8
0
3
6
9
*
L
ABORATORIUM
S
YSTEMY
M
IKROPROCESOROWE
P
OLITECHNIKA
P
OZNAŃSKA
, I
NSTYTUT
A
UTOMATYKI
I I
NŻYNIERII
I
NFORMATYCZNEJ
Z
AKŁAD
S
TEROWANIA
I E
LEKTRONIKI
P
RZEMYSŁOWEJ
5/6
IV.
a)
S
CENARIUSZ DO ZAJĘĆ
Ś
RODKI DYDAKTYCZNE
zestaw edukacyjny ADuC831.
Sprzętowe:
Programowe:
środowisko programistyczne języka C (Keil uVision).
b)
P
RZEBIEG ZAJĘĆ
1. Przygotuj projekt zawierający trzy pliki:
a. main.c – przeznaczony na program główny,
b. Klawiatura.c – przeznaczony na definicje funkcji obsługujących klawiaturę,
c. Klawiatura.h - przeznaczony na deklaracje funkcji obsługujących klawiaturę.
2. Skopiuj plik ADuC831.h do swojego projektu. Dodaj zabezpieczenie przed redefinicją:
#ifndef ADUC831_H
#define ADUC831_H
//kod pliku ADuC831.h
#endif
3. Napisz funkcję inicjalizującą klawiaturę.
a. Utwórz makra obsługujące linie wierszy oraz kolumn podłączonych do mikrokontrolera
zastosuj oznaczenia W1, W2, W3, W4 oraz K1, K2, K3.
b. Dokonaj inicjalizacji wejść oraz wyjść.
4. Pobieranie jednego znaku z klawiatury. Napisz funkcję
char klawiatura(void).
Poprawność działania
funkcji przedstaw na wyświetlaczu LCD.
a. Funkcja musi posiadać cechy funkcji
char getchar (void)
b. Funkcja czeka na znak.
c. Znak ma pojawić się na LCD dopiero po puszczeniu przycisku klawiatury.
5. Pobieranie ciągu znaków z klawiatury. Napisz funkcję pobierającą ciąg znaków
char* gets_klawiatura ( char * str );
a. Zamień znak # na znak zatwierdzenia wprowadzania danych.
b. Sformatuj wczytany ciąg znaków wykorzystując funkcję
sscanf.
c. Wykonaj operacje matematyczną podaną przez prowadzącego (np. a+b).
d. Wynik zaprezentuj na LCD zgodnie z zleconym formatowaniem.
6. Pobieranie ciągu znaków z klawiatury wraz z formatowaniem danych przy wykorzystaniu
mechanizmów dostępnych w Keil uVision.
a. Napisz funkcję
char _getkey (void)
i. Utwórz plik getkey.c
ii. Zamień znak # na znak zatwierdzenia wprowadzania danych.
b. Pobierz dane - liczba całkowita - z klawiatury przy użyciu
scanf.
i. Wykonaj operacje matematyczną podaną przez prowadzącego (np. a+b).
ii. Wynik zaprezentuj na LCD zgodnie z zleconym formatowaniem.
c. Pobierz dane - liczba zmiennoprzecinkowa - z klawiatury przy użyciu
scanf.
i. Wykonaj operacje matematyczną podaną przez prowadzącego (np. a+b).
ii. Wynik zaprezentuj na LCD zgodnie z zleconym formatowaniem.
7. Pobieranie ciągu znaków z klawiatury wraz z formatowaniem danych. Napisać funkcję
int scanf_klawiatura(const char *format, ...).
Zgłoś jeśli naruszono regulamin