sprawozdanie swb ŁK

Wojskowa Akademia Techniczna w Warszawie

Instytut Teleinformatyki i Automatyki

Systemy Wbudowane

Laboratorium 4-5:

Autor: Prowadzący:

  1. Łukasz Komosa. 1. mgr inż. J. Turczyn

Grupa: I0X3S1.

Data wykonania ćwiczenia: 18.04.2012r.

Schemat podłączenia:

Kod programu pierwszego:

#include <REGX52.H>

data unsigned char LiczB1 = 0;

void IntSrv_Int0(void) interrupt 0

{

EA = 0;

LiczB1++;

if (LiczB1 == 32) //pisz od nowej linii po CR LF

{

TI = 0;

SBUF = 0x0d; //SBUF = '\r' - wyslij CR

while (TI == 0) {;}; //czekaj az bajt zostanie wyslany - TxBufEmpty Interrupt TI=1

TI = 0;

SBUF = 0x0a; //SBUF = '\n' - wyslij LF

while (TI == 0) {;}; //jw

LiczB1 = 0;

}

SBUF = 0x30 + LiczB1; //dziala bez czekania jak w 20 i 23 bo klikanie B1 jest wolne

EA = 1;

}

void InitInt0(void)

{

TH1 = TL1 = 0xFD; //ustaw timer T1 dla 9600b/s

SCON = 0x40; //tryb1 portu S: tr. asynchr., 8b danych, mozna zmieniac predkosc transmisji

TMOD = 0x20; //tryb 2 timera T1: T1 8bitowy z autoreload po przepelnieniu

TCON = 0x41; //TR1=1 - Enable T1; IT0=1 - INT0 aktywne zboczem

EX0 = 1; //Enable INT0

EA = 1; //Enable All Interrupts

}

void main(void)

{

InitInt0();

for (;;)

{

P1 = LiczB1; //wyswietl na wyswietlaczu wartosc licznika

}

}

Kod program drugiego:

#include <REGX52.H>

data unsigned char LiczB1 = 0, Odb=0, LiczS=0;

void IntSrv_Int0(void) interrupt 0

{

LiczB1++;

if (LiczB1 == 32) //pisz od nowej linii po CR LF

{

TI = 0;

SBUF = 0x0d; //SBUF = '\r' - wyslij CR

while (TI == 0) {;}; //czekaj az bajt zostanie wyslany - TxBufEmpty Interrupt TI=1

TI = 0;

SBUF = 0x0a; //SBUF = '\n' - wyslij LF

while (TI == 0) {;}; //jw

LiczB1 = 0;

}

SBUF = 0x30 + LiczB1; //dziala bez czekania jak w 20 i 23 bo klikanie B1 jest wolne

EA = 1;

}

void IntSrv_Serial(void) interrupt 4

{

EA = 0;

TI=0;

Odb=SBUF;

RI=0;

EA=1;

}

void InitInt0_4(void)

{

TH1 = TL1 = 0xFD; //ustaw timer T1 dla 9600b/s

SCON = 0x50; //tryb1 portu S: tr. asynchr., 8b danych, mozna zmieniac predkosc transmisji

TMOD = 0x20; //tryb 2 timera T1: T1 8bitowy z autoreload po przepelnieniu

TCON = 0x41; //TR1=1 - Enable T1; IT0=1 - INT0 aktywne zboczem

EX0 = 1; //Enable INT0

ES=1;

EA = 1; //Enable All Interrupts

}

void main(void)

{

P2=0x00;

InitInt0_4();

for (;;)

{

P1 = Odb; //wyswietl na wyswietlaczu wartosc licznika

}

}

Drugi program miał za zadanie wyświetlanie na terminalu wpisywanych przez nas znaków oraz przekazywanie ich odpowiedników w postaci kodów ASCII do licznika.

Realizacje tego zadania przedstawia poniższy zrzut ekranu wykonany na laboratorium.

Na ilustracji widzimy, że w terminalu został wpisany znak („litera a”). Następnie kod ASCII wpisanego przez nas znaku jest wyświetlany na liczniku.

Wnioski:

Podczas ćwiczeń laboratoryjnych z przedmiotu systemy wbudowane mieliśmy za zadanie zaprojektować układ, dzięki któremu za pomocą terminala oraz licznika mogliśmy odczytać kody ASCII wprowadzanych przez nas znaków z klawiatury. Ściślej ujmując zadanie polegało na zaprojektowaniu schematu składającego się z mikrokontrolera 8051, licznika, terminala umożlwiającego wyświetlanie wprowadzanych przez nas znaków oraz napisanie programu, który pozwoli nam odczytać kody wprowadzanych znaków. Zadanie udało nam się zrealizować pomyślnie, ponieważ po sprawdzeniu okazało się, że nasz program w pełni realizuje zamierzony przez nas cel.


Wyszukiwarka

Podobne podstrony:
sprawozdanie swb DK
sprawozdanie swb DK
2 definicje i sprawozdawczośćid 19489 ppt
PROCES PLANOWANIA BADANIA SPRAWOZDAN FINANSOWYC H
W 11 Sprawozdania
Wymogi, cechy i zadania sprawozdawczośći finansowej
Analiza sprawozdan finansowych w BGZ SA
W3 Sprawozdawczosc
1 Sprawozdanie techniczne
Karta sprawozdania cw 10
eksploracja lab03, Lista sprawozdaniowych bazy danych
2 sprawozdanie szczawianyid 208 Nieznany (2)
Fragmenty przykładowych sprawozdań
Lab 6 PMI Hartownosc Sprawozdan Nieznany
Mikrokontrolery Grodzki Sprawoz Nieznany
biochemia sprawozdanie O (1)
Chemia fizyczna sprawozdanie (6 1) id 112219

więcej podobnych podstron