Politechnika Rzeszowska im. Ignacego Łukaszewicza

Urządzenia elektryczne w systemach komputerowych

Rok studiów: II FD

Grupa laboratoryjna: L09

Numer ćwiczenia: 1

Temat ćwiczenia:

Komunikacja użytkownika z systemem mikroprocesorowym

Wykonali:

Ralf Sawa

Dawid Smyka

Mateusz Słabicki

Data wykonania ćwiczenia:

12.13.2009

Kod źródłowy programu napisanego na laboratorium:

0x08 graphic

Celem laboratorium było sporządzenie programu do prostego obliczenia kodu ASCII i wyświetlenia odpowiedniego znaku z połączenia wpisanych cyfr.

Program sporządzony podczas zajęć laboratoryjnych okazał się działać poprawnie, bez żadnych zastrzeżeń. Podany tu kod nie zawiera żadnych zmian w stosunku do wersji, którą przedstawiliśmy na końcu zajęć.

Mankamentem tego programu jest argument funkcji czekaj, ponieważ czasem może nie spełnić swojej funkcji opóźniającej przy zbyt niskiej liczbie, aktualne ustawienie (20k pętli) wydaje się być optymalne.

#include <reg515.sfr>

#include <lcd.h>

unsigned char x; // zmienna do komunikacji z wyswietlaczem

int liczba; // zmienna do obliczen

void czekaj(unsigned int n); //deklaracja funkcji realizujacej przerwe w wykonywaniu kodu

int main()

{

init(); // funkcja inicjalizacji wyswietlacza LCD

liczba = 0;

while(1)

{

x = get_char();

if((x >= 48) && (x <= 57)) // warunek sprawdzajacy czy na klawiaturze wcisnieto cyfre

{

liczba = 10 * liczba + (x - 48);

put_char(x); // wyswietlenie wcisnietego znaku na ekranie wyswietlacza

}

if(x == 'e') // warunek sprawdzajacy czy na klawiaturze wcisnieto Enter

{

put_instr(0x01); // rozkaz do sterownika wyswietlacza,

//kasujacy dane z niego i ustawiajacy kursor pod adres 0

czekaj(20000); // opoznienie pozwalajace na wykonanie sie poprzedniego rozkazu

put_char(liczba); // wpisanie zawartosci zmiennej liczba na ekran

liczba = 0;

}

czekaj(20000);

}

return 0;

}

void czekaj(unsigned int n)

{

int i;

for(i = 0; i < n; i++){}

}