Laboratorium 1 sterowanie diodami

background image

Laboratorium 1 – sterowanie diodami

1. Programowanie portów układu MSP 430

2.1 Porty MSP340F149


Układ MSP340F149, zamontowany na płytce rozwojowej EasyWeb2 zawiera 6 8-

bitowych portów, mogących pracować w trybie wejściowym i wyjściowym. Porty te oznacza
się odpowiednio P1 – P6. Porty P1 i P2 umożliwiają dodatkowo pracę w systemie przerwań.

[msp430f149.pdf]

W mikrokontrolerze MSP430 wszystkie porty są zmapowane w przestrzeni adresowej
procesora, a dostęp do poszczególnych rejestrów wszystkich portów odbywa się poprzez
odwołanie się do wybranego adresu portu.

Każdemu z 6 portów układu MSP przyporządkowane są 4 rejestry:

Port Px selection

PxSEL

Port Px direction

PxDIR

Port Px output

PxOUT

Port Px input

PxIN

x= 1..6

Ponadto porty P1 i P2 posiadają rejestry odpowiedzialne za pracę z przerwaniami:

Port Px interrupt enable

PxIE

Port Px interrupt-edge select

PxIES

Port Px interrupt flag

PxIFG

x= 1..2


Przyporządkowanie adresów do poszczególnych portów ilustruje tabela:

PORT

REJESTR

NAZWA

ADRES

background image

[msp430f149.pdf]

Pełny zakres rejestrów urządzeń wejścia wyjścia można znaleźć w dokumentacji producenta
mikrokontrolera MSP430F149.

2.2. Uzyskiwanie dost

ę

pu do portów


Wszystkie 6 portów MSP430 jest zmapowanych na 8-bitowe rejestry dostępne pod
określonym adresem w pamięci. Rozpatrzmy port P1. Dla portu P1 trzy podstawowe rejestry
są dostępne pod następującymi adresami

P1IN 20 jest zmapowany na adres 20 szesnastkowo,
P1OUT jest zmapowany na adres 21 szesnastkowo,
P1DIR jest zmapowany na adres 22 szesnastkowo.

Rejestr P1DIR wskazuje na kierunek działania portu dla poszczególnych bitów i
przyporządkowanych do nich pinów układu. Piny oznacza się kolejno od P1.0 do P1.7. Jeżeli
pojedynczy bit rejestru ustawimy na 0, odpowiadający pin pracuje jako układ wejściowy, jeśli
1, odpowiadający pin pracuje jako układ wyjściowy.

Chcąc ustawić pin P1.1 do pracy jako wejście, bit 1 rejestru P1DIR ustawiamy na 1, w
przeciwnym wypadku na 0.

Port P6

Port P6 selection

P6SEL

037h

Port P6 direction

P6DIR

036h

Port P6 output

P6OUT

035h

Port P6 input

P6IN

034h

Port P5

Port P5 selection

P5SEL

033h

Port P5 direction

P5DIR

032h

Port P5 output

P5OUT

031h

Port P5 input

P5IN

030h

Port P4

Port P4 selection

P4SEL

01Fh

Port P4 direction

P4DIR

01Eh

Port P4 output

P4OUT

01Dh

Port P4 input

P4IN

01Ch

Port P3

Port P3 selection

P3SEL

01Bh

Port P3 direction

P3DIR

01Ah

Port P3 output

P3OUT

019h

Port P3 input

P3IN

018h

Port P2

Port P2 selection

P2SEL

02Eh

Port P2 interrupt enable

P2IE

02Dh

Port P2 interrupt-edge select

P2IES

02Ch

Port P2 interrupt flag

P2IFG

02Bh

Port P2 direction

P2DIR

02Ah

Port P2 output

P2OUT

029h

Port P2 input

P2IN

028h

Port P1

Port P1 selection

P1SEL

026h

Port P1 interrupt enable

P1IE

025h

Port P1 interrupt-edge select

P1IES

024h

Port P1 interrupt flag

P1IFG

023h

Port P1 direction

P1DIR

022h

Port P1 output

P1OUT

021h

Port P1 input

P1IN

020h

background image

[http://eleceng.dit.ie/frank/msp430/]

Jeśli podłączmy do Portu P1.0 klawisz, a do portu P1.1 diodę LED, w rejestrze P1DIR tryb
pracy poru P1.1 ustawiamy na wejściowy (1), a P1.0 na wyjściowy (0)
W języku

c

taka operacja może wyglądać następująco:

typedef unsigned char byte;
#define P1DIR *((byte *)0x22)

P1DIR |= 0x02; // Ustawienie bitu P1.1 na 1 (tryb wyj

ś

ciowy)

P1DIR &= ~0x01; // Ustawienie bitu P1.0 na 0 (tryb wej

ś

ciowy)


Operacja „

|=”

jest funkcją bitowego

or

wykonanego na zawartości rejestru P1DIR. Operacja

ta, w odróżnieniu od przypisania „=” nie zmienia stanu innych bitów.

Operacja

P1DIR |= 0x02

Bit

P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0

P1DIR

0

1

0

1

0

1

0

1

0x02

0

0

0

0

0

0

1

0

P1DIR |= 0x02

0

1

0

1

0

1

1

1

Operacja

P1DIR = 0x02

Bit

P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0

P1DIR

0

1

0

1

0

1

0

1

0x02

0

0

0

0

0

0

1

0

P1DIR = 0x02

0

0

0

0

0

0

1

1


Operacja „

&=”

jest funkcją bitowego

and

wykonanego na zawartości rejestru P1DIR.

Operacja ta, także nie zmienia stanu innych bitów.

background image

Bit

P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0

P1DIR

0

1

0

1

0

1

0

1

0x01

0

0

0

0

0

0

0

1

~0x01

1

1

1

1

1

1

1

0

P1DIR &= ~0x01

0

1

0

1

0

1

0

0



[http://eleceng.dit.ie/frank/msp430/]



Jeżeli w układzie z rysunku xx2 chcemy kontrolować stan klawisza przyłączonego do pinu b0
portu P1, konieczne jest odczytanie stanu portu P1.0. Jeśli naciśnięcie klawisza ma sterować
zapaleniem diody przyłączonej do pinu b1 portu P1, należy na port P1.1 wysłać odpowiedni
sygnał. Aby załączyć diodę, bit 1 portu P1 musi być ustawiony na 0, wyłączenie uzyskamy
ustawiając ten bit na 1. Podobnie odczytany stan bitu portu P1.1 równy 0 informuje o
wciśniętym klawiszu, a stan bitu równy 1 mówi, że klawisz nie jest wciśnięty.

Program, zapalający diodę w zależności od stanu klawisza może wyglądać następująco:

typedef unsigned char byte;
#define P1IN *((byte *)0x20)
#define P1OUT *((byte *)0x21)
#define P1DIR *((byte *)0x22)
// Definicje dotycz

ą

ce Watchdog timer

#define WDTCL *((short *)0x120)
#define WDTHOLD 0x0080
#define WDTPW 0x5a00

void main(void)
{

background image

WDTCTL = WDTPW + WDTHOLD; // Zatrzymanie watchdog timera
P1DIR |= 0x02; // Ustawienie bitu P1.1 na 1 (tryb wyj

ś

ciowy)

P1DIR &= ~0x01; // Ustawienie bitu P1.0 na 0 (tryb wej

ś

ciowy)


while( 1==1 )
{
if( (P1IN & 0x01) != 0) { // Odczcytanie stanu bitu P1.0

// je

ś

li klawisz był naci

ś

ni

ę

ty ...

P1OUT = P1OUT | 0x02;

// zga

ś

diod

ę

} else {
P1OUT = P1OUT & 0xfd; // zapal diod

ę

}
}
}

2.3. Poł

ą

czenia portów w układzie EasyWeb2

W układzie EasyWeb2 mamy do dyspozycji 4 klawisze, podłączone do portów P4.4 –

P4.7 oraz 3 diody LED:

Dioda status, podłączona do portu P2.1

Dioda przyłączona równolegle z przekaźnikiem 1, podłączona do portu P1.5 (REL1)

Dioda przyłączona równolegle z przekaźnikiem 2, podłączona do portu P1.6 (REL2)

background image

Potrzebne definicje portów P1, P2 i P4 można przygotować bazując na opisie w tabeli 1 lub
dołączając zdefiniowany przez twórców plik nagłówkowy o nazwie msp430x14x.h

#include msp430x14x.h

2.4. Zadania

1.

Zdefiniuj funkcje służące do zapalania wybranej diody i do gaszenia wybranej diody.

2.

Zdefiniuj funkcje służące do cyklicznego zapalania i gaszenia wybranej diody z
określonym interwałem czasowym. Opóźnienie dobierz doświadczalnie poprzez
odpowiednią liczbę iteracji pustej pętli for.

3.

Napisz dla układu EasyWeb2 program, który za pomocą trzech klawiszy będzie
kontrolował zapalanie i gaszenie trzech diod.

4.

Napisz dla układu EasyWeb2 program, działający w 2 trybach: konfiguracji i pracy.

Klawisz 1 wybiera tryb działania (konfiguracja, praca)

W trybie konfiguracji:

2 klawisz wybiera aktywną diodę (jedna z trzech)
3 klawisz wybiera tryb pracy aktywnej diody (włączona, wyłączona,
bistabilna, astabilna, cykliczne zapalanie )

W trybie pracy

2 klawisz aktywuje 1 diodę

3 klawisz aktywuje 2 diodę

4 klawisz aktywuje 3 diodę

background image


Wyszukiwarka

Podobne podstrony:
(LABORATORIUM 022 Sterownik GE 226 Fanuc 90 30)
Laboratorium 01, Mechatronika WAT, Semest IV, Teoria sterowania, Laboratorium, Skrypty
Obrabiarki sterowane numery, SPRAWOZDANIE Z ˙WICZE˙ LABORATORYJNYCH
JAUT6~1, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, AUTOMATYKA LABORATORIUM, AUT
AUTOMAT2, Laboratorium automatyki i sterowania
TS laborka ściąga, Elektrotechnika, Teoria Sterowania, laboratorium
sprawko Ziegler-Nikols, Mechatronika WAT, Semest IV, Teoria sterowania, Laboratorium, Sprawka, Obser
Sterowanie proporcjonalne, studja, 5 semestr, Laboratorium napędów hydraulicznych i pneumatycznych
Laboratorium 02, Mechatronika WAT, Semest IV, Teoria sterowania, Laboratorium, Skrypty
TS Spraw, Mechatronika WAT, Semest IV, Teoria sterowania, Laboratorium, Sprawka, Obserwator stanu
Regulacja impulsowa, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, TEO
sterowanie - projekt 2 -2, Edukacja, studia, Semestr V, Sterowanie Analogowe, Laboratorium
SRK Laborki pytaniaG (1), Szkoła, Semestr 6, Kierowanie i Sterowanie Ruchem Kolejowym, Kierowanie i
Laboratorium Techniki Mikroprocesorowej Układy transmisji równoległej sterowanie światłami

więcej podobnych podstron