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 1
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.
2