20.03.2013
Mikronapędy w systemach komputerowych
Laboratorium 1:
Komunikacja użytkownika z systemem mikroprocesorowym
Krzysztof Wroński
Marcin Zalepa
L16
1. Wstęp
Celem laboratorium jest napisanie programu w języku C, który wyświetla cyfry
naciskane z klawiatury do momentu naciśnięcia „Enter”. Następnie zapamiętuje wpisaną liczbę do zmiennej.
2. Program napisany na zajęciach:
3. Wniosek:
Przedstawiony program nie działa poprawnie po wciśnięciu pierwszego klawisza. Spowodowane jest to wyświetlaniem w pętli tego samego znaku za każdym razem. Podczas naciśnięcia innego klawisza, pętla wyświetla inną liczbę. Klawisz ENTER przerywa działanie pętli. Brakuje zapisania liczby do zmiennej oraz warunku zapobiegającemu wyświetlaniu liczby za każdym razem wykonania pętli.
4. Poprawiony kod programu:
#include<lcd.h>
void main()
{
unsigned int liczba=0;
unsigned int i=0;
unsigned char znak;
unsigned int pomocnicza=0,pomocnicza1=1;
lcd_init();
out_instr(00000001);
while(1)
{
znak = get_kb();
if((znak >= '0') && (znak <= '9'))
{
if(pomocnicza == 1)
{
out_char(znak);
pomocnicza = '0';
}
}
if(znak == 'e')
{
pomocnicza = 1;
}
if(get_kb() == '\0')
pomocnicza1 = 1;
}
}
#include<lcd.h>
void main()
{
unsigned char znak;
unsigned int liczba=0;
unsigned int i;
unsigned int pomocnicza=0,pomocnicza1=1;
lcd_init();
while(1)
{
znak = get_kb();
if(znak >= '0' && znak <= '9' && pomocnicza1 == 1)
{
if(pomocnicza == 1)
{
out_instr(0x01);
pomocnicza = 0;
}
out_char(znak);
pomocnicza1 = 0;
liczba = liczba*10 + (znak-'0');
for(i=0;i<20000;i++);
}
if(znak == 'e')
{
pomocnicza = 1;
}
if(get_kb() == '\0')
pomocnicza1 = 1;
}
}