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.