Dariusz Walencik mikrokontrolery4(2)

background image

Katowice dn. 16.V.2010 r

Sprawozdanie z ćwiczenia laboratoryjnego pt.

MIKROKONTROLERY – cz. 4

Sekcja laboratoryjna:

1.

Dariusz Walencik – odpowiedzialny

2.

Bartosz Stołtny

3.

Robert Tasak

background image

1. Opis teoretyczny:

Wyświetlacz siedmio segmentowy sterowany jest za pomocą 2 buforów –

porty wyjściowe podłączone do szyny:

a)

Bufor wyboru wskaźnika: dane wpisane do tego bufora określają, który składnik
ma być aktywny w danym momencie. Stosowane SA tutaj kody 1z8 czyli każdy
bit decyduje indywidualnie o świeceniu konkretnego wskaźnika. Typowo wybrany
będzie faktycznie tylko 1 z 7 wskaźników. Ustawienie 1 na poszczególnym bicie
powoduje świecenie odpowiedniego wskaźnika. Bit 0 decyduje o świeceniu
wskaźnika 1, bit 1 o świeceniu 2-go itd. Bit 6 decyduje o świeceniu diod, które
zostały podłączone jako wskaźnik 7.

Tablica 1: Wskaźniki przypisane konkretnym bitom.

b)

Bufor danych wskaźnika: bajt umieszczony w tym buforze odpowiada za
wskazanie, które segmenty wyświetlacza będą zapalone w wybranym wskaźniku.
Jedynka umieszczona na konkretnym bicie powoduje świecenie odpowiedniego
segmentu lub diody święcącej zgodnie z opisem:

Tablica 2: Bity odpowiadające segmentom wskaźnika.

Bufor to obszar pamięci służący do przechowywania danych do komunikacji pomiędzy
dwoma systemami, np. bufor karty sieciowej przechowuje pakiety, które mają zostać

wysłane, a bufor karty graficznej – to co ma zostać wyświetlone na ekranie. Bufory
umożliwiają asynchroniczną komunikację między systemami.

background image

Urządzenia wyjściowe w systemie komputerowym służą do przekazania

informacji wynikających z działania systemu komputerowego do świata zewnętrznego. I
znów patrząc na nasz poczciwy PC-et od razu wiemy że będzie to np. monitor lub drukarka.
W systemach zbudowanych w oparciu o mikrokontroler używa się nieco prostsze urządzenia
wyjściowe takie jak np. wyświetlacze LED lub LCD, diody LED, tzw. "buzzery",
przekaźniki, silniki itp. W komputerach osobistych sygnałami wyjściowymi są najczęściej
informacje wyświetlane na monitorze czy drukowane na papierze, a w systemach, w których
pracuje mikrokontroler są to najczęściej sygnały cyfrowe, które sterują pracą różnych
urządzenia elektrycznych.

Porty mikrokontrolera 8051 mogą być portami wejściowymi jak i wyjściowymi

– są one dwukierunkowe. Są to jednak porty pseudo-dwukierunkowe. Jeżeli pełnią rolę
wyjściowych to należy w nie wpisywać odpowiednie dane – poszczególnie linie ustawiane są
w stan 0 lub 1. Jeżeli linie te mają spełniać funkcję wejściową to należy ustawić je w stan 1.

2. Część praktyczna – programowanie:

a) program 1 – zapalenie 2 segmentów w każdej 3 sekcji wyświetlacza :
Program na celu zapalenie 2 segmentów wyświetlacza 7segmentowego w 3 sekcjach,
musimy wpierw zapisać do akumulatora wybór 3 sekcji, następnie wartość A zapisać do
bufora, a następnie wskazać na wybór sekcji a i b. Na końcu musi nastąpić odblokowanie
wyświetlacza 7segmentowego.

Efekt zaobserwowany na wyświetlaczu:

Kod programu:

Opis działania poszczególnych

poleceń:

L00

MOV DPTR, #FF30H

MOV A, #07H

MOVX @DPTR, A

MOV DPTR, #FF38H

Wstawienie etykiety

zapisanie do rejestru DPTR adresu wyboru

bufora sekcji

zapisanie do akumulatora 0000 0111

(wybór sekcji 1,2,3)

zapisanie A do bufora wyboru sekcji

(adres bufora wyboru sekcji znajduje się

w rejestrze DPTR)

zapisanie do rejestru DPTR adresu bufora

wyboru segmentu

background image

MOV A, #03H

MOV @DPTR, A

CLR P1.6

LJMP L00

END

zapisanie do akumulatora 0000 0011

(wybór segmentu. a i b)

zapisanie A do bufora wyboru segmentu

(adres bufor wyboru sekcji znajduje się w

rejestrze DPTR)

odblokowanie wyświetlania całego

wyświetlacza 7-segm.

Skok do etykiety, wykonanie pętli.

Koniec programu, jednak z powodu

wstawienia pętli koniec programu należy

wywołać ręcznie poprzez polecenie RESET

RAM

background image

Schemat blokowy programu:

zapisanie do rejestru DPTR adresu wyboru

bufora sekcji

zapisanie do akumulatora 0000 0111 zapisanie
do rejestru DPTR adresu wyboru bufora sekcji

zapisanie A do bufora wyboru

sekcji

zapisanie do rejestru DPTR adresu

bufora wyboru segmentu

zapisanie do akumulatora

0000 0011

zapisanie A do bufora wyboru

segmentu

odblokowanie wyświetlania

całego wyświetlacza 7-

segm.

Koniec

(po RESET RAM)

START

Etykieta L00

background image

b) program 2 – włącznik trzech 0:

Program ten jest modyfikacją programu 1, powoduje on zapalanie się trzech 0 czyli
6segmentów każdej z 3 sekcji wyświetlacza. Po naciśnięciu klawisza 0 na
wyświetlaczu zostają wyświetlone trzy zera.

Efekt zaobserwowany na wyświetlaczu:

Kod programu:

Opis działania poszczególnych

poleceń:

MOV R0, #30H

MOV A, #3FH

MOV @R0, A

LCALL W_KEY

ADD A,#30H

MOV R1, A

L00

MOV DPTR, #FF30H

MOV A, #07H

MOVX @DPTR, A

MOV DPTR, #FF38H

MOV A, @R1

wpisanie do rejestru R0 wartości 30H

zapisanie do rejestru R1 wartości 0011 1111

kod(0)

zapisanie do komórki pamięci o adresie
zwrotnym w rejestrze R0 zawartości
akumulatora

pobranie numeru klawisza z klawiatury do

akumulatora

dodanie do akumulatora wartości 30H

zapisanie akumulatora w rejestrze R1

Wstawienie etykiety

zapisanie do rejestru DPTR adresu wyboru

bufora sekcji

zapisanie do akumulatora 0000 0111

(wybór sekcji 1,2,3)

zapisanie A do bufora wyboru sekcji

(adres bufora wyboru sekcji znajduje się

w rejestrze DPTR)

zapisanie do rejestru DPTR adresu bufora

wyboru segmentu

zapisanie do akumulatora

background image

MOV @DPTR, A

CLR P1.6

LJMP L00

END

zapisanie A do bufora wyboru segmentu

(adres bufor wyboru sekcji znajduje się w

rejestrze DPTR)

odblokowanie wyświetlania całego

wyświetlacza 7-segm.

Skok do etykiety, wykonanie pętli.

Koniec programu, jednak z powodu

wstawienia pętli koniec programu należy

wywołać ręcznie poprzez polecenie RESET

RAM

Schemat blokowy programu:

START

wpisanie do rejestru R0

wartości 30H

zapisanie do rejestru R1

wartości 0011 1111

zapisanie do komórki pamięci o
adresie zwrotnym w rejestrze R0
zawartości akumulatora

dodanie do akumulatora

wartości 30H

Pobranie numeru
klawisza z klawiatury

zapisanie akumulatora w

rejestrze R1

Etykieta L00

zapisanie do rejestru DPTR adresu wyboru

bufora sekcji

zapisanie do akumulatora 0000 0111 zapisanie
do rejestru DPTR adresu wyboru bufora sekcji

zapisanie A do bufora wyboru

sekcji

zapisanie do rejestru DPTR adresu

bufora wyboru segmentu

zapisanie do akumulatora

0000 0011

zapisanie A do bufora wyboru

segmentu

odblokowanie

wyświetlania całego

wyświetlacza 7-segm.

Koniec

(po RESET RAM)

background image

c) program 3: Jest to zmodyfikowany program 2-gi wzbogacony o funkcję wyświetlania

2 segmentów w 3sekcjach wyświetlacza po naciśnięciu klawisza 1.
Efekty na wyświetlaczu:
0:

1:

Przed wszystkimi komendami użytymi w programie 2-gim, należy wpisać następujące
polecenia:

Kod programu:

Opis działania poszczególnych

poleceń:

MOV R0, #31H

MOV A, #06H

MOV @R0, A

wpisanie do rejestru R0 wartości 31H

(adres pamięci wewnętrznej)

zapisanie do rejestru R1 wartości 0000
0110 (wartość 1)

zapisanie do komórki pamięci o adresie

zawartym w rejestrze R0 zawartości
akumulatora

Schemat blokowy:

START

wpisanie do rejestru R0

wartości 31H

zapisanie do rejestru R1
wartości 0000 0110

zapisanie do komórki pamięci o
adresie zawartym w rejestrze R0
zawartości akumulatora

zapisanie do rejestru R1

wartości 0011 1111

zapisanie do komórki pamięci o
adresie zwrotnym w rejestrze R0
zawartości akumulatora

Pobranie numeru
klawisza z klawiatury

dodanie do akumulatora

wartości 30H

wpisanie do rejestru R0

wartości 30H

zapisanie akumulatora w

rejestrze R1

Etykieta L00

zapisanie do rejestru DPTR adresu wyboru

bufora sekcji

zapisanie do akumulatora 0000 0111 zapisanie
do rejestru DPTR adresu wyboru bufora sekcji

zapisanie A do bufora wyboru

sekcji

zapisanie do rejestru DPTR adresu

bufora wyboru segmentu

zapisanie do akumulatora

0000 0011

zapisanie A do bufora wyboru

segmentu

odblokowanie wyświetlania

całego wyświetlacza 7-

segm

.

Koniec

(po RESET RAM)

background image

d) program 4: Jest to kolejna modyfikacja programu 3 umożliwiająca dodatkowo

wyświetlenie trzech 2 po naciśnięciu klawisza numer 2. Jest to wyświetlanie 5
segmentów w 3 sekcjach.

Przed wszystkimi komendami użytymi w programie 3-gim, należy wpisać następujące
polecenia:

Kod programu:

Opis działania poszczególnych

poleceń:

MOV R0, #32H

MOV A, #5BH

MOV @R0, A

wpisanie do rejestru R0 wartości 32H

(adres pamięci wewnętrznej)

zapisanie do rejestru R1 wartości 0101

1011 (kod cyfry 2)

zapisanie do komórki pamięci o adresie

zawartym w rejestrze R0 zawartości
akumulatora

Efekty na wyświetlaczu po wybraniu klawisza:

0:

1:

2:

background image

Schemat blokowy:

START

wpisanie do rejestru R0

wartości 32H

zapisanie do rejestru R1

wartości 0101 1011

wpisanie do rejestru R0

wartości 31H

zapisanie do rejestru R1
wartości 0000 0110

zapisanie do komórki pamięci o
adresie zawartym w rejestrze R0
zawartości akumulatora

zapisanie do komórki pamięci o
adresie zawartym w rejestrze R0
zawartości akumulatora

wpisanie do rejestru R0

wartości 30H

zapisanie do rejestru R1

wartości 0011 1111

zapisanie do komórki pamięci o
adresie zwrotnym w rejestrze R0
zawartości akumulatora

Pobranie numeru
klawisza z klawiatury

dodanie do akumulatora

wartości 30H

zapisanie akumulatora w

rejestrze R1

zapisanie do rejestru DPTR adresu wyboru

bufora sekcji

Etykieta L00

zapisanie do akumulatora 0000 0111 zapisanie
do rejestru DPTR adresu wyboru bufora sekcji

zapisanie A do bufora wyboru

sekcji

zapisanie do rejestru DPTR adresu

bufora wyboru segmentu

zapisanie do akumulatora

0000 0011

zapisanie A do bufora wyboru

segmentu

odblokowanie wyświetlania

całego wyświetlacza 7-

segm

.

Koniec

(po RESET RAM)

background image

3. Wnioski:

- program I: odpowiadający za wyświetlenie 2 segmentów w 3 sekcjach wyświetlacza może
służyć nam np.: jako tester segmentów wyświetlacza – każdemu segmentowi przypisany jest
bowiem odpowiedni wskaźnik, przez co wiemy, którego segmentu zapalenia możemy się
spodziewać
- program II - wyświetlacz trzech 0: może zostać wykorzystany jako stan początkowy w
stoperach cyfrowych – bowiem odliczanie zaczyna się od 0s. Mamy z nim do czynienia
również podczas gdy zegar cyfrowy wskazuje godzinę 0:00. Program ten jednak działa w
pętli, aż do przerwania go przez użytkownika.
- program III oraz IV: programy te służą wyświetlaniu danej cyfry w trzech sekcjach, po
wyborze odpowiedniego klawisza, konstruując kolejne programy na ich bazie, widzimy, że
możemy wpływać na wyświetlanie poszczególnych cyfr programując odpowiednią cyfrę –
poprzez zapisanie jej do rejestru w postaci heksadecymalnej, rozwiązanie to może być
stosowane podczas programowanie różnego rodzaju wyświetlaczy ledowych –
wykorzystywanych jako ekrany informacyjne, reklamowe, a także jako zegary cyfrowe
- wykonane przez nas ćwiczenie obrazuje nam, że wyświetlacz siedmiosegmentowy pozwala
na graficzne przedstawienie wyniku operacji
- przechowując dane w buforze mamy możliwość komunikacji pomiędzy dwoma systemami


Wyszukiwarka

Podobne podstrony:
Dariusz Walencik mikrokontroleryI poprawa
Dariusz Walencik termodynamika
Dariusz Walencik przerzutniki
Dariusz Walencik ukladydiodowe
Dariusz Walencik przerzutniki poprawa
Dariusz Walencik ukladydiodowe poprawa
Bootloader dla mikrokontrolerów AVR
02 Mikroklimat
Mikrokontrolery Grodzki Sprawoz Nieznany
evboard, Płytka testowa dla mikrokontrolerów AT89S oraz AVR
Konfiguracja pamięci mikrokontrolera 8051 dla programów napisanych w języku C
Mikroklimat TEST nr 2, inż. BHP, V semestr
mim, studia Polibuda Informatyka, III semestr, mikroprocesory i mikrokontrolery (mim)
sprawozdanie mikroklimat i pomiary jego parametrów w środowisku górniczym
Mikroklimat kalkulatory
Mikrokontrolery F Marecki id 30 Nieznany
mikrokomputer 5
Mikrokomputer edukacyjny z 8051 cz 2

więcej podobnych podstron