background image

 

~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  

background image

 

 

 

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.