~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 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