Linie wejść i wyjść mikrokontrolera v2.doc

(70 KB) Pobierz
Laboratorium Techniki Mikroprocesorowej

Laboratorium Techniki Mikroprocesorowej.

 

 

Iwaniuk Paweł

Szatanek Michał

Grupa 1.

 

Ćwiczenie nr 1.

 

Temat:

                            Linie wejść / wyjść mikrokontrolera.

 

 

WSTĘP.

 

              Celem ćwiczenia jest zapoznanie się ze sposobami sterowania portami mikrokontrolera 8051. Przećwiczone zostanie wykorzystanie rozkazów adresujących cały port, a nie tylko poszczególne linie wejść / wyjść.

Układ 8051 zawie­ra cztery 8-bitowe porty PO, Pl, P2, P3. Wszystkie te porty mogą być adresowane jako całe bajty lub jako poszczególne ich bity. Jeżeli program jest umieszczony                      w zewnętrznej pamięci EPROM ( tak jak w systemie DSM-51 ) lub jeżeli z innych powodów została zorganizowana zewnętrzna szyna mikrokontrolera, to do bezpośredniego sterowania pozostaje tylko port Pl i 6 linii portu P3. W wykonywanym ćwiczeniu mamy do dyspozycji port P1.

Port mikrokontrolera 8051 ma 8 linii, co odpowiada 8 końcówkom mikroprocesora, do których można podłączyć urządzenia zewnętrzne. Do portu można wpisać l bajt informacji, czyli               8 bitów. Sterowanie urządzeń zewnętrz­nych odbywa się poprzez wpisanie odpowiednio na poszczególne bity stanu niskiego - 0 lub wysokiego - l ( po sygnale RESET wszystkie bity                   w portach są w stanie 1 ). Wpisany stan utrzymuje się aż do następnej operacji zapisu.

Najprostsze urządzenia zewnętrzne, które mogą być podłączone do portu mikrokon­trolera, to dioda świecąca ( ang. LED - Light Emitting Diode ), lub tzw. brzęczyk. W systemie DSM-51 do linii 7 w porcie Pl podłączona jest dioda świecąca TEST, która służy do zobrazo­wania działania najprostszych programów. Jeśli linia jest w stanie 0, to dioda świeci się, a gdy jest w stanie l to nie świeci się ( po sygnale RESET dioda nie świeci się ). Natomiast brzęczyk podłączony jest do linii              5 portu P1. Działa on analogicznie, jak dioda TEST, tzn. jeśli linia jest w stanie 0 to brzęczyk działa,             a gdy linia jest w stanie 1, to brzęczyk jest wyłączony  ( po sygnale RESET brzęczyk jest wyłączony ).

 

 

 

ZADANIE NR 1.

Wpisywanie danych do portu.

 

              Kod źródłowy programu do zadania znajduje się w pliku o nazwie l02_p1.asm. Zawartość pliku  przedstawiona jest poniżej:

 

;****************************************

;LEKCJA   2 - PORTY MIKROKONTROLERA
;PRZYKLAD l              - ZAPIS DO PORTU

;****************************************

 

;Dioda TEST podłączona do linii 7 w porcie Pl
LED_ON              EQU   01111111B

 

LJMP START

ORG  100H

START:

 

MOV P1,#LED_ON                                          ; wpisz 0 na bit 7 portu Pl

; wpisz 1-ki na bity 0 .. 6

; czyli zapal diodę TEST

 

LJMP $                                                        ;pozostań w pętli

 

1.1.      W pierwszej kolejności należy wykonać proces asemblacji programu. Wykonuje się to poleceniem:

 

DSM51ASS l02_p1.asm

 

W wyniku działania programu powstają następujące zbiory:

              l02_p1.hex -  zbiór zawierający kod wynikowy w formacie Intel HEX.

              l02_p1.lst   -  listing programu.

 

Postać listingu programu ( fragment bez nagłówka ) przedstawiona jest poniżej:

 

 

     7        007F      LED_ON              EQU 01111111B

     8                               

     9  0000: 02 01 00                LJMP START

    10  0100:                         ORG 100H

    11                 

    12  0100:           START:

    13  0100: 75 90 7F                MOV P1,#LED_ON

    14                 

    15  0103: 02 01 03                LJMP $

1.2.      Następnie należy uruchomić program w trybie pracy krokowej. W tym celu należy uruchomić program DSM-51, załadować program i wybrać opcję MONITOR w zakładce DSM-51. Kolejne kroki programu wykonuje się poprzez naciśnięcie SPACJI.

 

Poniżej znajduje się tabela ilustrująca zawartość licznika rozkazów (nr linii programu), stany logiczne linii portu P1 oraz rezultaty działania w kolejnych krokach wykonywania programu.

 

Krok

PC – licznik rozkazów

Zawartość portu P1

Komentarz

1

0000h

FFh

Dioda nie świeci

2

0100h

FFh

Dioda nie świeci

3

0103h

7Fh

Dioda świeci

4

0103h

7Fh

Dioda  świeci – program zakończony

 

1.3.      Program można zmodyfikować tak, aby jednocześnie z zapaleniem diody TEST załączał się również brzęczyk. W tym celu wystarczy oprócz ustawienia 7 bitu portu P1 w stan niski ustawić również bit 5 w stan niski.

 

Kod źródłowy tak zmodyfikowanego programu będzie miał postać:

 

;****************************************

;LEKCJA   2 - PORTY MIKROKONTROLERA
;PRZYKLAD 1A              - ZAPIS DO PORTU

;****************************************

 

;Dioda TEST podłączona do linii 7 w porcie Pl

;Brzęczyk jest podłączony do linii 5 w porcie Pl
LED_BRZ              EQU   01011111B

 

LJMP START

ORG  100H

START:

 

MOV P1,#LED_BRZ              ; wpisz 0 na bity 5 i 7 portu Pl

; wpisz 1-ki na bity 0..4 i 6

; czyli zapal diodę TEST i załącz     

;                                                                         brzęczyk

 

LJMP $                                          ;pozostań w pętli

 

 

 

Poniżej znajduje się tabela ilustrująca zawartość licznika rozkazów (nr linii programu), stany logiczne linii portu P1 oraz rezultaty działania w kolejnych krokach wykonywania programu.

 

Krok

PC – licznik rozkazów

Zawartość portu P1

Komentarz

1

0000h

FFh

Dioda nie świeci

2

0100h

FFh

Dioda nie świeci

3

0103h

5Fh

Dioda świeci, brzęczyk włączony

4

0103h

...

Zgłoś jeśli naruszono regulamin