politechnika lubelska

LABORATORIUM podstaw technik mikroprocesorowych

Imię i nazwisko:

Błaszczuk, Łukasz

Data:

24.01.2005

Grupa:

ED. 5.1

Rok. Akad.

2004/05

Temat : Sterowanie w czasie rzeczywistym.

Cel programu:

Celem programu jest aby opóźnienie zadane z klawiatury poprzez klawisze 1-7, co odpowiada określonemu czasowi opóźnienia, odmierzane było w Timerze 0.

Fragment programu z miejscem dokonania zmian:

;********* Ustawienie TIMER˘w *********

;TIMER 0

T0_G EQU 0 ;GATE

T0_C EQU 0 ;COUNTER/-TIMER

T0_M EQU 1 ;MODE (0..3)

TIM0 EQU T0_M+T0_C*4+T0_G*8

;TIMER 1

T1_G EQU 0 ;GATE

T1_C EQU 0 ;COUNTER/-TIMER

T1_M EQU 0 ;MODE (0..3)

TIM1 EQU T1_M+T1_C*4+T1_G*8

TMOD_SET EQU TIM0+TIM1*16

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

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

LJMP START

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

ORG 0100H

START:

LCALL INICJALIZACJA ;ustawienia początkowe (R7 i R6)

MOV TMOD,#TMOD_SET ;timer liczy czas

LOOP:

JNB SIEC,$

MOV TH0,A

MOV TL0,#0

CLR TF0

SETB TR0

WARUNEK:

JNB TF0,WARUNEK

CLR BRAMKA ;impuls włączający tyrystor

MOV A,#10

DJNZ ACC,$

SETB BRAMKA

LCALL KLAWIATURA ;sprawdza/czyta nowa wart. opóźnienia

;numer klawisza do A ;stan początkowy timera do R7 i R6

MOV B,#4

MUL AB

MOV R4,A

MOV A,#255

CLR C

SUBB A,R4

SJMP LOOP

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

;END

Objaśnienia zaznaczonych fragmentów:

Pętla LOOP: posłużyła nam do wpisania ustawień początkowych Timera 0, oraz włączenia odliczania.

Pętla WARUNEK: , która jest pętlą pustą, ma za zadanie oczekiwać na przepełnienie TF0.

Następny fragment programu, przelicza wartości otrzymane z klawiatury na czas opóźnienia (przycisk 1 - 1ms, przycisk 2 - 2ms, itp., aż do przycisku 7).

Wnioski:

Program po uruchomieniu zapala żarówkę. Wciśnięcie klawisza od 1 do 7 powoduje zmianę natężenia świecenia się żarówki, przy czym przycisk 1 powoduje najjaśniejsze świecenie żarówki, a przycisk 7 najciemniejsze.