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:
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++){}
}