1440


LABORATORIUM PODSTAW TECHNIKI MIKROPROCESOROWEJ

Imię i Nazwisko Gajdziński Radosław

Czopek Michał

Grupa ED 5.3

Data wyk. Ćwicz

Numer ćwiczenia

1 i 2

Temat ćwiczenia:

1.Linie wejść i wyjść mikrokontrolera

2.Porty mikrokontrolera

Ocena

1.Celem ćwiczeń nr1 było zapoznanie się ze sposobami sterowania urządzeniami podłączonymi bezpośrednio do portów mikrokontrolera.

Zadanie nr 1 w ćwiczeniu nr1 polegało na wprowadzeniu programu przy użyciu komputera, zapoznaniu się z podstawowymi komendami i obserwacji zmian jakie nastąpiły w listingu programu po jego asemblacji.

Wykonanie zadania:

Po asemblacji programu listing został uzupełniony o :

  1. numerację kolejnych linii

  2. adresy rozkazów

  3. kody rozkazów zapisane szesnastkowo

Algorytm wykonywanego programu (program miał na celu zerowanie linii a tym samym zapalanie diody testowej)

0x08 graphic

Zadanie nr2 polegało na wprowadzeniu programu przy użyciu klawiatury systemu DSM-51.

Kod źródłowy różni się nieco od kodu wprowadzanego do komputera z uwagi na to, że nie możemy mni. wpisać komentarza oraz nie musimy umieszczać programu od adresu 100H gdyż zastaje on tam umieszczony automatycznie.

Zadanie nr3 polegało na uruchomieniu programu w trybie krokowym przy użyciu komputera.

W trybie krokowym mogliśmy badać działanie programu, obserwując jednocześnie zawartość pamięci i rejestrów mikrokontrolera.

Dzięki zastosowaniu dyrektywy EQU można było nadać symbolowi LED (oznaczenie diody świecącej) takiej samej wartości, jak P1.7 co znacznie polepszyło czytelność programu.

Poniżej przedstawiony jest algorytm przykładowego programu użytego w zadaniu nr3.

0x08 graphic

Przy wykorzystaniu podprogramu DELAY_100MS można zastosować opóźnienie od 100ms do 25,5s gdy akumulator zawiera wartości od 1 do 255 i 25,6 s 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. Analizowany program powodował mruganie diody i jednoczesne włączanie brzęczyka. W programie użyto rozkazu CPL który neguje wartość bitu. Różni on się tym od rozkazów CLR i SETB, że nie możne przewidzieć wyniku jego działania jeżeli nie znało się wartości bitu przed wykonaniem rozkazu.

0x08 graphic
Poniżej znajduje się algorytm użytego w zadaniu programu.

Poniżej znajduje się algorytm i listing programu zbliżonego do tego, który został użyty w zadaniu nr4 z tą jednak różnicą, że świecenie diody TEST odbywało się na przemian z sygnałem z BUZZERA i jej stan trwał dwukrotnie dłużej niż włączenie brzęczka

LED EQU P1.7

BUZZER EQU P1.5

LJMP START

ORG 100H

START:

CLR BUZZER

LOOP:

CPL LED

CPL BUZZER

MOV A,#20

LCALL DELAY_100MS

CPL LED

CPL BUZZER

MOV A,#10

LCALL DELAY_100MS

LJMP LOOP

Algorytm programu:

0x08 graphic

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

Zadanie nr1 tego ćwiczenia obejmowało wpisywanie danych do portu. Przy pisaniu programu do wpisywania danych korzystaliśmy z rozkazu MOV ( MOV ładował daną do portu P1 ).

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

W zadaniu nr2 badaliśmy zerowanie i ustawianie linii portów przy pomocy logicznych operacji na parach bitów.

W przykładzie a) naszego zadania nr2 użyliśmy rozkazu ANL, który jest wykonywany zgodnie z funkcją logiczną AND. Rozkaz ten powoduje wyzerowanie linii 7, natomiast pozostałe linie portu pozostaną nie zmienione i nie trzeba wiedzieć jak były ustawione przed wykonaniem tego rozkazu. Rozkaz ANL może tylko wyzerować wybrane bity, nie może ustawić bitu na jeden jeżeli poprzednio był on zerem. W przykładzie b) obok rozkazu ANL pojawia się rozkaz ORL, który jest wykonywany zgodnie z funkcją logiczną OR. Ustawia on określone bity na wartość jeden bez względu co było w rejestrze wcześniej. Rozkazy ANL i ORL zostały umieszczone w pętli LOOP co powodowało mruganie diody. Oba wyżej wymienione rozkazy można zamienić jednym XRL i on też odpowiednio użyty będzie powodował mruganie diody. I tak też stało się w przypadku c). Rozkaz XRL wykonywany jest na parze bitów zgodnie z funkcją OR. Sterowanie z wykorzystaniem rozkazów działających na cały port jest może mniej czytelne niż sterowanie rozkazami działającymi na poszczególne linie, ale ma ono swoje zalety: można wykonywać zmianę stanów dwóch linii w jednym rozkazie i może ona nastąpić ona jednocześnie a nie kolejno po sobie. W krokowego wykonywania przykładów można zaobserwować przede wszystkim zmiany rejestrów portów i zmiany rejestrów akumulatora. Zmian wartości na liniach do których dołączone są brzęczyk i dioda jest efektem zmiany jakie nastąpiły w rejestrach portów.

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

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

LJMP START

ORG 100H

START:

LOOP: ; pętla

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

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

LCALL DELAY_100MS

LJMP LOOP ; od początku

Zmodyfikowaliśmy powyższy program tak, że świecenie diody odbywało się na przemian z włączeniem brzęczka.

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

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

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

LCALL DELAY_100MS

LJMP LOOP ; od początku

Schemat algorytmu programu:

0x08 graphic

Pkt 3 zadania nr3.

Aby stan portu xx00x1x1zmienić na stan xx10x0x1można użyć następujących rozkazów :

XRL P1,00100100B

lub

ANL P1,11111011B

ORL P1,00100000B

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic



Wyszukiwarka

Podobne podstrony:
1440
1440
dzu2005nr172poz1439 i 1440
Brother HL 1230, 1440, 1450, 1470n Parts Manual
1440 hipotezy wytrzymalosciowe
9 roz 1440 1444
1440
Koronacja Warnenczyka 1440
1440
1440
1440
1440
1440
J Tęgowski Stosunki wielkiego księcia Utewskiego Zygmunta Kiejstutawica z książętami mazowieckimi (
Wkrętarka PSR 1440
1440

więcej podobnych podstron