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:
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:
#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;
}
}
}
}
}