318


LABORATORIUM PODSTAW TECHNIKI MIKROPROCESOROWEJ

Imię i Nazwisko Krzysztof Kwiatek

Andrzej Kidaj

Grupa ED 5.1

Data wyk. ćwicz

1998.10.05

1998.10.12

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 xx001x1zmienić 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:
23 299 318 Optimizing Microstructure for High Toughness Cold Work Steels
318
MPLP 318;319 17.07.;29.07.2011
281 318
Księga 1. Proces, ART 318 KPC, 2007
1 (318)
plik (318)
NHV 100 200 3 2900 to ta id 318 Nieznany
4 zarzadzanie jakoscia test 2009 2010 318
bmw 318
Marody M Wymiary życia społecznego s 419 437, 318 341
318 SC DS400 C MERCEDES S KLASSE A 06 XX
318
318 choroby genetyczne czlowiek Nieznany
AMRLC E 318 (2)
318
318 i 319, Uczelnia, Administracja publiczna, Jan Boć 'Administracja publiczna'
318
318 wstęp teoretyczny 15
SHSBC 318 ARC BREAKS AND THE COMM CYCLE

więcej podobnych podstron