mazurkiewicz,PODSTAWY TECHNIK MIKROPROCESOROWYCH,SYSTEM PRZERWAŃ, przerwania od timerów liczników, przerwania zewnętrzne

PODSTAWY TECHNIK MIKROPROCESOROWYCH


Temat: SYSTEM PRZERWAŃ, przerwania od timerów/liczników, przerwania zewnętrzne.



Zadania do wykonania

Zadanie 1.

Program zapalania i gaszenia diody LED co zadany odcinek czasu τ, przy czym odcinek czasu τ odmierzany jest przez licznik T0/T1 zaś program wykorzystuje system przerwań.

Zadanie 2.

Program pomiaru okresu (częstotliwości) przebiegu periodycznego z generatora NE555 zestawu ZD-537.

Zadanie 3.

Programy wykorzystujące przerwania od źródeł zewnętrznych, np. pomiar czasu pomiędzy kolejnymi naciśnięciami klawiszy na porcie P3.


REALIZACJA ZADAŃ

Ad.1.


$nomod51

$include(reg517.inc)


CSEG AT 0000h


JMP START


ORG 0Bh ; adres przerwania T0

MOV TH0, #03Ch ; wartości początkowe

MOV TL0, #0AFh

DJNZ ACC, LOOP

CPL P1.0 ; zapalenie i zgaszenie diody

MOV A, #10


LOOP:

RETI ;powrót


ORG 100h


START:

MOV TMOD,#00000001b ; rejestr TMOD

MOV TH0, #03Ch ; wartości poczatkowe

MOV TL0, #0AFh

MOV A,#10 ; czas=0,5[s]


SETB TR0 ; start T0

SETB EAL ; odblokowanie systemu przerwań

SETB ET0 ; przerwanie T0


SJMP $


END


Ad.2.


$NOMOD51

$INCLUDE(reg517.inc)


CSEG AT 0000h


TH0_SET EQU 256-180

TL0_SET EQU 0

ON1 EQU 130 ;zapalenie P1.0

OFF1 EQU 10 ;zgaszenie P1.0

ON2 EQU 30 ;zapalenia P1.1

OFF2 EQU 40 ;zgaszenie P1.1

ON3 EQU 60 ;zapalenie P1.2

OFF3 EQU 90 ;zgaszenie P1.2


LJMP START


ORG 0BH ; adres procedury T0

MOV TH0, #TH0_SET ; wartości początkowe TH

DEC R0

MOV A, R0

LCALL LED1 ; obsługa P1.0

DEC R1

MOV A, R1

LCALL LED2 ; obsługa P1.1

DEC R2

MOV A, R2

LCALL LED3 ; obsługa P1.2

RETI ; powrót z przerwania


LED1: ; obsługa P1.0

JNZ K

CPL P1.0 ; negacja P1.0

JB P1.0, LED_ON1

MOV R0, #ON1 ; czas zapalenia P1.0

LJMP K

LED_ON1:

MOV R0, #OFF1 ; czas zgaszenia P1.0

K:

RET


LED2: ; obsługa P1.1

JNZ K2

CPL P1.1 ; negacja P1.1

JB P1.1, LED_ON2

MOV R1, #ON2 ; czas zapalenia P1.1

LJMP K2

LED_ON2:

MOV R1, #OFF2 ; czas zgaszenia P1.1

K2:

RET


LED3: ; obsługa P1.2

JNZ K3

CPL P1.2 ; negacja P1.2

JB P1.2, LED_ON3

MOV R2, #ON3 ; czas zapalenia P1.2

LJMP K3

LED_ON3:

MOV R2, #OFF3 ; czas zgaszenia P1.2

K3:

RET


START:

CPL P1.0 ; negacja P1.0

CPL P1.1 ; negacja P1.1

CPL P1.2 ; negacja P1.2

MOV R0, #ON1 ; wysłanie do rejestru okresów świecenia diod

MOV R1, #ON2

MOV R2, #ON3

MOV TMOD, #00000001b ; ustawienie rejestru TMOD

MOV TH0, #TH0_SET ; wartości początkowe

MOV TL0, #TL0_SET

SETB TR0 ; start T0

SETB EAL ; odblokowanie systemu przerwań

SETB ET0 ; przerwanie T0

SJMP $


END




Ad.3.


Biblioteka inicjacji wyświetlacza LCD.


#define INITDISP 0x38

#define LCDON 0x0e

#define CLEAR 0x01


LCDcntrlWR MACRO X

MOV DPTR,#LCDcontl

MOV A, X

MOVX @DPTR,A

ENDM

CharWz MACRO

PUSH ACC

CALL busy

MOV DPTR,#LCDdataWR

POP ACC

MOVX @DPTR,A

ENDM

LCD_INIT:

LCDcntrlWR #INITDISP

LCDcntrlWR #CLEAR

LCDcntrlWR #LCDON

RET

Int_PUT:

PUSH ACC

MOV B,#10

DIV AB

MOV B,#10

DIV AB

ORL A,#00110000b

CALL WzChar

MOV A,B

ORL A,#00110000b

CALL WzChar

POP ACC

PUSH ACC

MOV B,#10

DIV AB

MOV A,B

ORL A,#00110000b

CALL WyChar

POP ACC

RET

WzChar:

CharWz

RET

LCDClear:

LCDcntrlWR #CLEAR

RET



Program właściwy.


$nomod51

$include(reg517.inc)

$include (lcd.inc)


ORG 0

LJMP PROG ; skok PROG

ORG 0Bh

LJMP PRZER ; skok PRZER

ORG 30h


PRZER:

INC B

RETI


PROG:

CALL initLCD ;start LCD

CALL LCDclear ;czyszczenie LCD

ORL TMOD,#09 ; tryb pracy T0

SETB EAL ;odblokowanie systemu przerwań

SETB ET0 ;przerwanie od T0


POM:

MOV R0,#20h


CLR A ; czyszczenie akumulatora

MOV TL0,A

MOV TH0,A

MOV B,A

JB P3.3,$ ; obsługa startu(przycisku) stopera

SETB TR0 ; start timera

JB P3.2,$ ; obsługa stopu(przycisk) stopera

CLR TR0 ; stop timera

MOV @R0,TL0

INC R0

MOV @R0,TH0

INC R0

MOV @R0,B ; przekodowanie wyniku do wyświetlenia

MOV A,B

MOV B,#15

DIV AB

CALL putInt ; zawiadomienie procedury wyświetlenia

LJMP POM ; skok do POM


END

WNIOSKI


Programy ze względy na nieobecność na zajęciach zostały wykonane przez nas samodzielnie w domu. Do sprawdzenie poprawności został wykorzystany symulator, który jednak nie oddaje fizycznego kontaktu z zestawem doświadczalnym. Programy w dużej mierze bazowały na programach wykonanych na laboratoriach 5 dotyczących timerów i liczników. Te, które zostały zamieszczone w niniejszym sprawozdaniu, są ich rozszerzeniem o wykorzystanie systemu przerwań. Dodatkowo w zadaniu 3 wykorzystana została, podobnie jak w laboratorium 5, biblioteka inicjalizacji i wyświetlania znaku na ekranie LCD, która została wykonana podczas wcześniejszych zajęć. W celu zastosowania w programach systemu przerwań zostały użyte instrukcje SetB EAL, aby zostały one odblokowane, oraz SetB ETx w celu zezwolenia na przyjęcie przerwania od timera. W programie 3 napotkane zostały problemy z wyświetleniem prawidłowego wyniku działania, co w tym wypadku nasuwa wątpliwości, gdyż podobny program wykonany na poprzednich zajęciach działał, na symulatorze, prawidłowo.










Wyszukiwarka

Podobne podstrony:
mazurkiewicz,PODSTAWY TECHNIK MIKROPROCESOROWYCH, porty równoległe obsługa klawiatury matrycowej zes
mazurkiewicz,PODSTAWY TECHNIK MIKROPROCESOROWYCH, TIMERY LICZNIKI, obsługa w trybie przeglądania
mazurkiewicz,Technika Cyfrowa, system przerwań procesora
Technika Mikroprocesorowa, sajewski-przerwania
mazurkiewicz,Podstawy techniki cyfrowej i mikroprocesorowej I, opracowanie zagadnień
PODSTAWY TECHNIK MIKROPROCESOROWYCH, Studia Pwr INF, Semestr IV, PTM
Podstawy techniki mikroprocesor Nieznany
zadania egzaminacyjne dzienne (PTM), elektro, 1, Podstawy Techniki Mikroprocesorowej
80C51 pytania i odpowiedzi, elektro, 1, Podstawy Techniki Mikroprocesorowej
zadania egzaminacyjne zaoczne 2006 07 (PTM), elektro, 1, Podstawy Techniki Mikroprocesorowej
Egzamin z PTC podst kombinacyjne, elektro, 1, Podstawy Techniki Mikroprocesorowej
Podstawy techniki mikroprocesorowej, rozdzial 2 i 3
TECHNIKA CYFROWA - sprawko lab 1, Studia, PWR, 4 semestr, Podstawy techniki mikroprocesorowej, labor
PODSTAWY TECHNIK MIKROPROCESOROWYCH, Studia Pwr INF, Semestr IV, PTM
Egzamin z PTC Nisko, elektro, 1, Podstawy Techniki Mikroprocesorowej
egzamin z TC 2, elektro, 1, Podstawy Techniki Mikroprocesorowej
TECHNIKA CYFROWA - sprawko lab 4, Studia, PWR, 4 semestr, Podstawy techniki mikroprocesorowej, labor
TECHNIKA CYFROWA - sprawko lab 5, Studia, PWR, 4 semestr, Podstawy techniki mikroprocesorowej, labor
Układ sterowania fazowego na mikroprocesorze, elektro, 1, Podstawy Techniki Mikroprocesorowej

więcej podobnych podstron