Rzeszów 04.03.2010

Mikronapędy w systemach komputerowych

Laboratorium 1:


Komunikacja użytkownika z systemem mikroprocesorowym

Artur Charchut
Gr. L02, 2FD

1. Wstęp

Celem laboratorium było napisanie programu w języku C, który wyświetlał znak
o podanym przez użytkownika kodzie ASCII.

2. Program napisany na zajęciach:

0x08 graphic

3. Wniosek:

Przedstawiony program działa poprawnie tylko po wpisaniu pierwszego kodu ASCII
i wciśnięciu klawisza ENTER. Przy każdym następnym wprowadzeniu liczby i próbie wypisania znaku, wyświetla się znak inny niż znak o podanym kodzie ASCII. Spowodowane jest to niedopatrzeniem przy pisaniu programu. Zabrakło „wyzerowania” zmiennej przechowującej kod ASCII znaku który chcemy wyświetlić (liczba = 0;).

4. Poprawiony kod programu:

0x08 graphic

#include <reg515.sfr>

#include <lcd.h>

void main()

{

int znak;

int poprz;

int i;

int liczba=0;

init();

znak = get_char();

while(1)

{

poprz=znak;

znak = get_char();

if(znak !='\0' && poprz == '\0' && znak!='g' && znak!='l' &&

znak!='p' && znak!='d')

{

if(znak != 'e')

{

put_char(znak);

for(i=0;i<20000;i++);

liczba=liczba*10;

liczba=liczba+znak-48;

}

else

{

if (znak=='e')

put_char(liczba);

}

}

}

}

#include <reg515.sfr>

#include <lcd.h>

void main()

{

int znak;

int poprz;

int i;

int liczba=0;

init();

znak = get_char();

while(1)

{

poprz=znak;

znak = get_char();

if(znak !='\0' && poprz == '\0' && znak!='g' && znak!='l' &&

znak!='p' && znak!='d')

{

if(znak != 'e')

{

put_char(znak);

for(i=0;i<20000;i++);

liczba=liczba*10;

liczba=liczba+znak-48;

}

else

{

if (znak=='e')

{

put_char(liczba);

liczba = 0;

}

}

}

}

}