9323


LABORATORIUM PODSTAW SYSTEMÓW MIKROPROCESOROWYCH

Imię i Nazwisko: Piotr Jurek & Tadeusz Klukowski

Grupa: ED 5.1

Data wyk. ćwicz. 5.10.98

12.10.98

Numer ćwiczenia

1 i 2

Temat ćwiczenia: Linie wejść i wyjść mikrokontrolera.

Porty mikrokontrolera.

Ocena:

1.W ćwiczeniu nr1 mieliśmy za zadanie zapoznać się ze sposobami sterowania urządzeniami podłączonymi bezpośrednio do portów mikrokontrolera.

W zadaniu nr 1 tego ćwiczenia zapoznaliśmy się z wprowadzeniem programu przy użyciu komputera, poznaniu jego podstawowych komend i obserwowaliśmy zmiany jakie nastąpiły w listingu programu po jego asemblacji.

Wykonanie zadania:

Po asemblacji programu listing został poszerzony o następujące pozycje:

  1. numerację kolejnych linii

  2. adresy rozkazów

  3. kody rozkazów zapisane szesnastkowo

Zadaniem programu było zerowanie linii 7 w porcie P1 ,co powodowało zapalenie diody testowej.

0x08 graphic
Schemat algorytmu programu:

Celem zadania nr2 było wprowadzenie programu przy użyciu klawiatury systemu DSM-51.

Najważniejsze różnice ,które pojawiły się podczas tworzenia programu źródłowego w wewnętrznym edytorze DSM−51 to:

W zadaniu nr3 uruchamialiśmy program w trybie krokowym przy użyciu komputera.

W trybie krokowym mogliśmy obserwować działanie programu, z jednoczesnym śledzeniem zawartości pamięci i rejestrów mikrokontrolera.

0x08 graphic
Zastosowanie symbolu LED, który jest przyporządkowany dla wartości P1.7 ( dzięki dyrektywie EQU) polepszyło przejrzystość programu.

Schemat algorytmu programu w zadaniu nr3:

Wykorzystując podprogram DELAY_100MS można zastosować opóźnienie od 100ms do 25,5s w przypadku, gdy akumulator zawiera wartości 1 oraz 25,6s, gdy akumulator zawiera wartość 0. Dzieje się tak ponieważ akumulator jest rejestrem 8 bitowym i może zawierać wartości od 0 do 255.

Zadanie nr4 polegało na modyfikacji i analizie przykładowego programu. Działanie programu opierało się na jednoczesnym mruganiu diody i włączaniu brzęczyka. Celem rozkazu CPL wykorzystanego w programie była negacja wartość bitu. W przeciwieństwie do rozkazów CLR i SETB, gdzie z góry znany jest wynik ich działania wynik działania rozkazu CPL zależy od stanu danego bitu przed wykonaniem rozkazu. Wartość tego bitu jest negowana, tzn. 0→1, 1→0.

Schemat algorytmu wykorzystanego w zadaniu programu:

0x08 graphic

Poniżej przedstawiony został listing programu zmodyfikowanego na przykładzie zadania nr4. Jego działanie sprowadza się do tego, że świecenie diody TEST odbywa się na przemian z sygnałem z BUZZERA i jej stan trwa dwukrotnie dłużej niż włączenie brzęczyka.

LED EQU P1.7 ;Dioda TEST podłączona do P1.7

BUZZER EQU P1.5 ;Brzęczyk podłączony doP1.5

LJMP START

ORG 100H

START:

CLR BUZZER ;Włącz brzęczyk

LOOP: ;Pętla sterowań diody i brzęczyka

CPL LED ;Zapal diodę

CPL BUZZER ;Wyłącz brzęczyk

MOV A,#20 ;Czekaj czas 20∗100ms

LCALL DELAY_100MS ;Program z EPROMu

CPL LED ;Zgaś diodę

CPL BUZZER ;Włącz brzęczyk

MOV A,#10 ;Czekaj czas 10∗100ms

LCALL DELAY_100MS ;Program z EPROMu

LJMP LOOP ;Powtórz

0x08 graphic
Schemat algorytmu programu:

2.Celem ćwiczenia nr2 było zapoznanie się ze sposobami sterowania portami mikrokontrolera 8051.

W zadaniu nr1 tego ćwiczenia wpisywaliśmy dane do portu. W programie przy wpisywaniu danych korzystaliśmy z komendy MOV, która ładowała daną do portu P1 ustawiając poszczególne linie portu w stan 1 lub 0.

Podczas obserwacji pracy krokowej naszego programu dostępna była jednocześnie zawartość pamięci i rejestrów mikrokontrolera. Obserwując rejestry w pracy krokowej mogliśmy śledzić jak zmieniają się wartości bitów portów mikroprocesora i zawartość akumulatora. W zależności od zmiany konkretnej linii portu mogliśmy określić, którymi urządzeniami steruje dany port i dana linia w tym porcie.

W zadaniu nr2 zajęliśmy się zerowaniem i ustawianiem linii portów przy pomocy logicznych operacji na parach bitów.

  1. W tym przykładzie użyliśmy rozkazu ANL, który jest wykonywany zgodnie z funkcją logiczną AND. Komenda ta powoduje wyzerowanie linii 7, natomiast pozostałe linie portu pozostawi bez zmian i nie trzeba wiedzieć, jak były one ustawione jej wykonaniem. Rozkaz ANL może tylko wyzerować wybrane bity, nie może ustawić bitu na jeden jeżeli poprzednio był on zerem.

  2. Rozkaz ORL, który pojawił się w przykładzie, jest wykonywany zgodnie z funkcją logiczną OR. Ustawia on określone bity na wartość jeden bez względu na to, co było w rejestrze wcześniej. Rozkazy ANL i ORL umieszczone w pętli LOOP powodowały mruganie diody.

  3. Rozkaz XRL wykonywany jest na parze bitów zgodnie z funkcją OR. Może on zastąpić oba wymienione wyżej rozkazy.

Sterowanie z wykorzystaniem rozkazów działających na cały port posiada tą zaletę , że zmiany na poszczególnych liniach następują praktycznie równocześnie. Przy sterowaniu poszczególnymi liniami zmiany te następują kolejno. Można to obserwować podczas pracy programu w trybie krokowym.

Program włączający i wyłączający jednocześnie diodę świecącą LED (linia 7 portu P1) i brzęczyk (linia 5 portu P1) :

MASK EQU 10100000B ;Maska do zmiany stanu linii 5 i 7 w porcie P1

LJMP START

ORG 100H

START:

LOOP: ;Pętla zmiany stanu

XRL P1,#MASK ;Negacja linie portu P1 zgodnie z maską MASK

MOV A,#10 ;Czekaj czas 1s

LCALL DELAY_100MS ;Podprogram z EPROMu

LJMP LOOP ;Powtórz

Po przekształceniu powyższego programu uzyskaliśmy nowy program powodujący ,że świecenie diody i włączenie brzęczka odbywało się na zmianę:

MASK EQU 10100000B ;Maska do zmiany stanu linii 5 i 7 w porcie P1

LED EQU 01111111B ;Maska włączenia diody

LJMP START

ORG 100H

START:

ANL P1,#LED ;Włączenie diody

LOOP: ;Pętla zmiany stanu

XRL P1,#MASK ;Negacja zgodnie z maską portu P1

MOV A,#10 ;Opóźnienie 1s

LCALL DELAY_100MS

LJMP LOOP ;Powtórz

Schemat algorytmu programu:

0x08 graphic

Aby stan portu xx001x1 zmienić na stan xx10x0x1 można wykorzystać następujące rozkaz:

XRL P1,00100100B

lub

ANL P1,11111011B

ORL P1,00100000B

Na koniec można dodać, że na cztery istniejące porty dwa z nich: P0 i P2 pełnią rolę układów we/wy, które umożliwiają zapis hak i odczyt danych.

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic



Wyszukiwarka

Podobne podstrony:
9323
9323
9323
9323
9323

więcej podobnych podstron