1
~K.
Data wykonania: 02.03.2010
Data oddania: 16.03.2010
Mikronapędy w systemach komputerowych
Laboratorium
Ćwiczenie 1
Komunikacja użytkownika z systemem mikroprocesorowym.
2 FDI Grupa: L-04
Cel ćwiczenia
Celem ćwiczenia było napisanie programu do obsługi wyświetlacza LCD z poziomu klawiatury z wykorzystaniem
biblioteki
lcd.h
w trzech kolejnych etapach:
1)
poprawnie interpretować wciśnięty klawisz i odpowiednio wyświetlać na LCD,
2)
poprawnie interpretować wciśnięte kolejno klawisze i odpowiednio wyświetlać je,
3)
obliczać kod ASCII i wyświetlać odpowiednią liczbę z połączenia wcześniej wpisanych cyfr.
Kod programu
#include
<reg515.sfr>
#include
<lcd.h>
unsigned
char
x;
unsigned int
i, liczba=0;
void
main(
void
){
init();
// inicjalizacja wy
ś
wietlacza LCD
put_instr(0x01);
// kasuje dane wy
ś
wietlacza i ustawia kursor pod adres 0
put_instr(0x0e);
// wł
ą
czenie całego wy
ś
wietlacza i kursora oraz wył
ą
czenie mrugania
// kursora
while
(1) {
x = get_char();
// sprawdzenie stanu poł
ą
cze
ń
i zwrócenie okre
ś
lonego znaku
// przypisanego odpowiednim klawiszom i przypisanie go do zmiennej x
if
(x !=
'\0'
){
// sprawdzenie, czy został wci
ś
ni
ę
ty jaki
ś
klawisz
if
((x !=
'e'
) && (x !=
'b'
) && (x !=
'd'
) && (x !=
'p'
) && (x !=
'l'
)
&& (x !=
'g'
)){
// sprawdzenie, czy został wci
ś
ni
ę
ty klawisz odpowiadaj
ą
cy cyfrze
put_char((
int
)x);
// wypisanie znaku w miejscu wskazanym przez kursor
for
(i=0; i<10000;i++);
// opó
ź
nienie pozwalaj
ą
ce wykona
ć
si
ę
wcze
ś
niej wywołanej
// funkcji
liczba=liczba*10+((
int
)x-48);
}
else
if
(x ==
'e'
){
// sprawdzenie, czy został wci
ś
ni
ę
ty enter
put_instr(0x01);
// asuje dane wy
ś
wietlacza i ustawia kursor pod adres 0
put_char(liczba);
// wpisanie zawarto
ś
ci zmiennej liczba na ekran
2
for
(i=0; i<10000;i++);
}
}
}
}
Wnioski
Niniejsze program wymagał kosmetycznych poprawek w stosunku do tego napisanego w laboratorium. Wadą
aplikacji jest ignorowanie wszystkich przycisków poza cyframi i enterem. Opcjonalne jest dopisanie kodu, który
porawnie interpretowałby przycisk backspace.
Przy pisaniu programu w oparciu o bibliotekę
lcd.h
trzeba zwrócić szczególną uwagę na to, by rozkazy
sterownika HD44780 wyświetlacza LCD były podawane w systemie szestnastkowym oraz szczegółowo zapoznać
się z typami zwracanymi przez funkcje z których korzystamy.
We wszystkich programach należało zastosować pętlę for do opóźnienia pracy programu aby sterownik
wyświetlacza zdążył wykonać zadane mu wcześniej polecenia.