Mikroprocesory, 1,2', Politechnika Lubelska


Politechnika Lubelska

Laboratorium podstaw systemów mikroprocesorowych

w Lublinie

Ćwiczenie nr 1,2

Nazwisko:

Garbacz

Kuźma

Imię:

Tomasz

Jacek

Semestr

V

Grupa

ED 5.3

Rok akademicki

1997/98

Temat ćwiczenia:

Linie wejść i wyjść mikrokontrolera

Data wykonania

17.10.97

Ocena:

1. Cel ćwiczenia :

Zapoznanie się ze sposobami sterowania urządzeniami podłączonymi bezpośrednio do portów mikrokontrolera.

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

;LEKCJA 1 - LINIE WEJŚĆ/WYJŚĆ MIKROKONTROLERA

;PRZYKŁAD 4 - MRUGANIE DIODY - OPÓŹNIENIA CZASOWE

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

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

LJMP START

ORG 100H

START:

LOOP: ;Nagłówek pętli mrugania diody TEST

CLR LED ;Zerowanie linii P1.7 powodujące zapalenie diody

MOV A,#10 ;Wprowadzenie do akumulatora wartości 10

LCALL DELAY_100MS ;Wywołanie podprogramu z EPROMu odpowiedzialnego za opóźnienie

SETB LED ;Ustawienie linii P1.7 powodujące gaśnięcie diody

MOV A,#10 ; Wprowadzenie do akumulatora wartości 10

LCALL DELAY_100MS ;Wywołanie podprogramu z EPROMu odpowiedzialnego za opóźnienie

LJMP LOOP ;Skok do początku programu

Program obrazuje nam, iż w systemie istnieje możliwość definiowania swoich zmiennych - LED (etykiecie tej przypisany jest bit #7 portu 1).

Zawarta w listingu instrukcja DELAY_100MS, będąca podprogramem zawartym w pamięci EPROM, pozwala na wprowadzenie opóźnienia w granicach (1 - 256)* 100ms.

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

;LEKCJA 1 - LINIE WEJŚĆ/WYJŚĆ MIKROKONTROLERA

;PRZYKŁAD 6 - STEROWANIE DIODY I BRZĘCZYKA

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

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

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

LJMP START

ORG 100H

START:

LOOP: ;Pętla mrugania diody

;i sterowania brzęczyka

CPL LED ;zapal/zgaś diodę TEST

CPL BUZZER ;włącz/wyłącz brzęczyk

MOV A,#10 ;czekaj czas 10*100ms=1s

LCALL DELAY_100MS ;podprogram z EPROMu

LJMP LOOP ;powtórz

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

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

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

LJMP START

ORG 100H

START:

LOOP: ;Pętla mrugania diody

;i sterowania brzęczyka

CPL LED

MOV A,#20 ; Wprowadzenie do akumulatora wartości 20

LCALL DELAY_100MS ; Wywołanie podprogramu z EPROMu odpowiedzialnego za opóźnienie

CPL LED ;Negacja P1.7

CPL BUZZER ; Negacja P1.5

MOV A,#10 ; Wprowadzenie do akumulatora wartości 10

LCALL DELAY_100MS ; Wywołanie podprogramu z EPROMu odpowiedzialnego zaopóźnienie

CPL BUZZER ; Negacja P1.5

LJMP LOOP ;Skok do początku programu

Użyta w programie instrukcja CPL służy do negacji określonego bitu.

Powyższy program powoduje świecenie diody na przemian z działaniem brzęczyka, przy czym czas działania diody jest dwukrotnie dłuższy od czasu brzęczyka.

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

;LEKCJA 2 - PORTY MIKROKONTROLERA

;PRZYKŁAD 3 - ZEROWANIE/USTAWIANIE LINII W PORCIE

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

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

LED_ON EQU 01111111B

LED_OFF EQU 10000000B

LJMP START

ORG 100H

START:

LOOP: ; Nagłówek pętli mrugania diody TEST

ANL P1,#LED_ON ;Zerowanie linii 7 portu P1 (włączenie diody TEST)

ORL P1,#LED_OFF ;Ustawienie linii 7 portu P1(wyłączenie diody TEST)

LJMP LOOP ;Skok do początku programu

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

;LEKCJA 2 - PORTY MIKROKONTROLERA

;PRZYKŁAD 4 - ZMIANA STANU LINII W PORCIE

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

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

LED_MASK EQU 10000000B ;Maska do zmiany

;stanu linii 7

LJMP START

ORG 100H

START:

LOOP: ;Nagłówek pętli mrugania diody

XRL P1,#LED_MASK ;Negacja linii 7 portu 1 (wączanie/wyłączenie diody TEST)

MOV A,#10 ;Wprowadzenie do akumulatora wartości 10

LCALL DELAY_100MS ; Wywołanie podprogramu z EPROMu (opóźnienie czasowe)

LJMP LOOP ;Skok do początku programu

W programach wykorzystano maski, które odpowiedzialne są za ustawienie odpowiednich bitów w porcie, jak również całego portu. Jedną z zalet takiego programowania jest możliwość dokonywania modyfikacji programu bez głębszej ingerencji w listing - wystarczy zmienić odpowiednie bity w masce.

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

;LEKCJA 1 - LINIE WEJŚĆ/WYJŚĆ MIKROKONTROLERA

;PRZYKŁAD 6 - STEROWANIE DIODY I BRZĘCZYKA

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

LED EQU P1.7

LED_BUZ EQU 10100000B ;Maska do zmiany stanu linii 5 i 7

LJMP START

ORG 100H

START:

CLR LED

LOOP: ;Pętla mrugania diody i sterowania brzęczyka

XRL P1,#LED_BUZ ; Negacja linii (0⇒1,1⇒0)

MOV A,#10 ;Czekaj czas 10*100ms=1s

LCALL DELAY_100MS ;Podprogram z EPROMu

XRL P1,#LED_BUZ

MOV A,#20

LCALL DELAY_100MS

LJMP LOOP ;Skok do początku pętli

Powyższy program powoduje świecenie diody na przemian z działaniem brzęczyka, gdzie czas działania diody jest dwukrotnie dłuższy od czasu brzęczyka, a zmiana stanów linii diody i brzęczyka jest dokonywana za pomocą maski LED_BUZ.

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

;LEKCJA 2 - PORTY MIKROKONTROLERA

;PRZYKťAD 4 - ZMIANA STANU LINII W PORCIE

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

ZM EQU 00100100B ; Maska do zmiany stanów linii 2 i 5

MASK EQU 11001111B ; Maska ustawiająca początkowy stan bitów portu

LJMP START

ORG 100H

START:

MOV P1,#MASK ;Ustawienie początkowego stanu portu P1

LCALL LCD_CLR ;Czyszczenie wyświetlacza LCD (podprogram z EPROMu)

MOV A,P1

LCALL WRITE_HEX ; Wyświetlenie zawartości akumulatora

XRL P1,#ZM ;Zmiana stanów linii

MOV A,#' '

LCALL WRITE_DATA ;Wyświetlenie znaku w postaci spacji

MOV A,P1

LCALL WRITE_HEX

LJMP $ ;Pozostanie w pętli

Powyższy program powoduje ustalenie początkowego stanu portu P1, a następnie zostaje zmieniony stan linii 2 i 5 tego portu oraz wyświetlenie zawartości akumulatora przed i po wykonaniu ciągu operacji.



Wyszukiwarka

Podobne podstrony:
Mikroprocesory, MIKROP10, POLITECHNIKA LUBELSKA
Mikroprocesory, MIKROPR3, POLITECHNIKA LUBELSKA
Budowa mikroprocesora, Politechnika Lubelska, Studia, Semestr 6, sprawka 6 sem moje
Laboratorium budowy urządzeń mikrokomputerowych, Sprzęganie urządzeń zewnętrznych i peryferyjnych mi
Labolatorium komputerowych systemów automatyki, Regulatory mikroprocesorowe, Politechnika Lubelska
Labolatorium Urządzeń mikrokomputerowych, Badanie zasilacza ukł. mikroprocesor., Politechnika Lubel
Mikroprocesory, MIKROP4, POLITECHNIKA LUBELSKA
Mikroprocesory, MIKROP3B, POLITECHNIKA LUBELSKA
LAB6MICR, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, MIKROPROCESORY
MICRO7~1, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, MIKROPROCESORY

więcej podobnych podstron